Q&A

  • 디비그리드 연결이 안되여....
* 사용환경 : 델파이5 / Windows 2000

데이터베스로는 mssql을 쓰고있습니다.

db grid에 두테이블을 조인한 쿼리컴포넌트로 데이터를 불러오는데,

콤보박스 세게에 있는, 그러니까 년, 월, 일과 날짜가 같은 내용을 불려오려합니다.



var ls_dt : string; //변수선언

ls_dt := (cmb1.text + '-' + cmb2.text + '-' + cmb3.text) //세개합치고

with query1 do begin

close;

sql.clear;

sql.Add('select * from query1 where EMPDT = strtodatetime(ls_dt)');

open;



이런식으로 했는데 컴파일 에러는 없지만 실행하니 안되는군요.

테이블을 조인해서 그런지 잘 불러와 지지 않습니다.

제가 워낙초보라 질문은 제대로 했는지 모르겠습니다.



2  COMMENTS
  • Profile
    이주선 2001.07.31 03:19
    안녕하세요. 처음시절이 생각나네요..

    우선 Query 콤포넌트중 SQL문장에 특정변수를 선언하여 작업을 하실려면,

    아래의 문장중

    sql.Add('select * from query1 where EMPDT = strtodatetime(:ls_dt)');

    +-- : 입력

    ParamByName('ls_dt').AsString := ls_dt;

    문장을 추가하여 작업을 하시면 됩니다.



    다시금 아래의 문장을 정리하면 다음과 같습니다.



    var ls_dt : string; //변수선언

    ls_dt := (cmb1.text + '-' + cmb2.text + '-' + cmb3.text) //세개합치고

    with query1 do begin

    close;

    sql.clear;

    sql.Add('select * from query1 where EMPDT = strtodatetime(:ls_dt)');

    ParamByName('ls_dt').AsString := ls_dt;

    open;

    end;



    그럼 이만, 항상건강하시고, 행복한 하루보내세요.



    이주선 올림









    초보임다 wrote:

    > * 사용환경 : 델파이5 / Windows 2000

    > 데이터베스로는 mssql을 쓰고있습니다.

    > db grid에 두테이블을 조인한 쿼리컴포넌트로 데이터를 불러오는데,

    > 콤보박스 세게에 있는, 그러니까 년, 월, 일과 날짜가 같은 내용을 불려오려합니다.

    >

    > var ls_dt : string; //변수선언

    > ls_dt := (cmb1.text + '-' + cmb2.text + '-' + cmb3.text) //세개합치고

    > with query1 do begin

    > close;

    > sql.clear;

    > sql.Add('select * from query1 where EMPDT = strtodatetime(ls_dt)');

    > open;

    >

    > 이런식으로 했는데 컴파일 에러는 없지만 실행하니 안되는군요.

    > 테이블을 조인해서 그런지 잘 불러와 지지 않습니다.

    > 제가 워낙초보라 질문은 제대로 했는지 모르겠습니다.

    >

  • Profile
    내가 누굴깡..ㅋㅋㅋ 2001.07.31 18:39
    흠.. 한가지 빠진게 있는거 같아서 이렇게 글 남깁니다..

    다름이 아니라 날짜를 검색할때 말인데염..

    -.-;;

    msSql에서의 날짜나 시간을 검색할시 중요한 사항은

    시간포멧이 :ls_dt와 msSql의 표현이 같은지 확인하여 보심이

    만약 틀리면 컴파일시 에러는 안나도 -.-; 값을 찾을수가 없읍니당..킁킁..

    자세한 내용은 MSsql 날짜 조회관련 도움말 참고



    가령 파라미터(:ls_dt)에 '00-07-30'이라 되있고

    msSQL의 날짜 필드에 '00-07-30 00:00:00'란 값이 있다면 -.-?

    조회가 될까염..?



    그리고 또 한가지 쿼리문에 -.-; 델파이 시간포멧함수가 먹힐까염..? 궁금..?????



    sql.Add('select * from query1 where EMPDT = :ls_db');

    ParamByName('ls_dt').AsString := strtodatetime(ls_dt); -.-; 이거 아닌가염..?





    이주선 wrote:

    > 안녕하세요. 처음시절이 생각나네요..

    > 우선 Query 콤포넌트중 SQL문장에 특정변수를 선언하여 작업을 하실려면,

    > 아래의 문장중

    > sql.Add('select * from query1 where EMPDT = strtodatetime(:ls_dt)');

    > +-- : 입력

    > ParamByName('ls_dt').AsString := ls_dt;

    > 문장을 추가하여 작업을 하시면 됩니다.

    >

    > 다시금 아래의 문장을 정리하면 다음과 같습니다.

    >

    > var ls_dt : string; //변수선언

    > ls_dt := (cmb1.text + '-' + cmb2.text + '-' + cmb3.text) //세개합치고

    > with query1 do begin

    > close;

    > sql.clear;

    > sql.Add('select * from query1 where EMPDT = strtodatetime(:ls_dt)');

    > ParamByName('ls_dt').AsString := ls_dt;

    > open;

    > end;

    >

    > 그럼 이만, 항상건강하시고, 행복한 하루보내세요.

    >

    > 이주선 올림

    >

    >

    >

    >

    > 초보임다 wrote:

    > > * 사용환경 : 델파이5 / Windows 2000

    > > 데이터베스로는 mssql을 쓰고있습니다.

    > > db grid에 두테이블을 조인한 쿼리컴포넌트로 데이터를 불러오는데,

    > > 콤보박스 세게에 있는, 그러니까 년, 월, 일과 날짜가 같은 내용을 불려오려합니다.

    > >

    > > var ls_dt : string; //변수선언

    > > ls_dt := (cmb1.text + '-' + cmb2.text + '-' + cmb3.text) //세개합치고

    > > with query1 do begin

    > > close;

    > > sql.clear;

    > > sql.Add('select * from query1 where EMPDT = strtodatetime(ls_dt)');

    > > open;

    > >

    > > 이런식으로 했는데 컴파일 에러는 없지만 실행하니 안되는군요.

    > > 테이블을 조인해서 그런지 잘 불러와 지지 않습니다.

    > > 제가 워낙초보라 질문은 제대로 했는지 모르겠습니다.

    > >