Q&A

  • DB작업 중 막히는 부분이 있어서 이렇게 글을 올립니다
안녕 하세요 ..



Paradox 7으로 테이블( 필드 : Id, Name, Pass, Date) 을 생성하고 작업 중에 막히는 부분이 있어서



이렇게 글을 올립니다.



아직 제가 DB, 특히 델파이는 초보라서.. ^^;;



일단.. TTable, TDataSource, DBGrid를 이용해서 DBGrid에 테이블의 레코드 출력은 했습니다.



찾다 보니..



BDE를 사용하지 않고 동적으로 할당하는 방법이 있더라구요.

그래서..



폼 생성시..

table1.Close;
table1.TableName := ExtractFilePath( Application.ExeName ) + 'LogTable.db';
table1.Open;



이렇게 작성을 했습니다. .



만일 제 컴외에서 프로그램을 실행시킬 경우, 그 컴에 BDE가 설치되어 있지 않으면 안된다구 해서요..



파일만 있으면.. 동적으로 테이블을 엑세스 가능한게 더 좋을 듯 해서. 이렇게 했습니다.



실은.. 이 부분도 .. 좀 애매한 부분이구요.. 과연 이렇게 해두 괜찮은지.. 아직 확신이 쓰지 않아서요..





그리고, 테이블에.. 레코드 추가, 수정, 삭제 루틴은 성공 했습니다.



문제는 .. 검색 부분인데요..



TQuery를 이용해서



Query1.Close;
Query1.SQL.Clear;
Query1.SQL.ADD('select Id From LogTable ');

//
Query1.SQL.ADD('WHERE  id like lantia');

또는

Query1.SQL.ADD('Where id = lantia');



이렇게 해봤는데.. 에러가 발생합니다.



invalid field name lantia 라는 에러가 발생을 하네요 ..



제가 뭘 잘못해는지.. 제 실력으로는 알 길이 없어서 이렇게 글을 올립니다.



원래 하고자 하는것은.



Date필드의 검색이였거든요.. 그런데.. 검색 첫 단계 부터 막히니.. 좀.. 막막하네요 ..



오늘을 기준으로  2005-06-10 ~ 2005-06-17 일까지의 레코드 검색 두 부탁드립니다.



그럼 좋은 하루 보내세요 ..



p.s: 아.. 그리고  원래 select id from logtable 이렇게 하면..



id 필드의 레코드만 보여주는게 아닌가요???



이 부분도.. 궁금하네요.. select id를 하던.. select * 를 하던. DBGrid에서는 모든 필드의 레크드를 다 보여주더라구요..
1  COMMENTS
  • Profile
    모영철 2005.06.17 18:18
    먼저 Query1.SQL.ADD('Where id = lantia'); 이렇게 하면

    Where id = lantia 이렇게 들어가서 lantia를 필드로 인식합니다.

    원래는 where id = 'lantia'

    이렇게 들어가게 하시려는 거였죠?

    그럼 이렇게 바꿔주면 될거 같습니다.(흠.. 저게 맞나...)
    Query1.SQL.ADD('Where id = '''lantia''' ');

    그리고 Date 필드는 데이터형이 어떤건지 알아야 하는데요..

    그에 맞게 데이터를 써서 비교연산자 (>=, <=)를 쓰면 됩니다.

    예를 들면 date가 date형이라면 (이런형이 있나..)

    where date >= StrToDateTime('2005-06-10')
    and date <= StrToDateTime('2005-06-17')

    이렇게 하면 될거 같습니다.Date형이 아니라면 StrToDateTime 함수를 빼면 되겠지요..

    "select id를 하던.. select * 를 하던"

    이부분은 희안하네요 그렇지 않을거 같은데 말이죠..BDE를 쓰지 않아서 그런건지..

    아니면 파라독스라서 그런건지...희안하네요...

    TTable에다가 TField를 올려 놓고 TField를 컨트롤 해주면 필드를 제어할수 있는데

    원하시는 답이 아니라..ㅡ,.ㅡ;