Q&A

  • select 에서 제대로 작동을 안합니다. 제발....처리좀 해주세요
안녕하세요 ^^;

고수님들

다름이 아니라 TQuery를 2개사용해서 하나에서 얻은 쿼리값을 가지고

다른 쿼리에서 반복수행하야 조건해당하는 내용을 얻어내는 것입니다.

그런데 잘 안되네요 도움부탁드립니다.



첫번째 Query2에서 agency_id 내용 전부를 읽어드려

그 읽어드린 id로 순차적으로 반복수행하여

두번째 Query1에서 id에 맞는 내용만 찾아서 GRide 에 뿌려주는

내용입니다.

무엇이 잘못되었는지...도움부탁드립니다.

주석을 달아주시면 감사하겠습니다.

소스는 아래와 같습니다.



procedure TForm1.Button1Click(Sender: TObject);

var

oldBookmark : TBookmark;

begin

Query2.Close;

Query2.Sql.Clear;

Query2.Sql.Add('select * from f_test');

Query2.Open;

vid := Query2.Fields[1].AsString;

oldBookmark := Query2.GetBookmark;



repeat

Query1.Close;

Query1.Sql.Clear;

Query1.Sql.Add('select * from t_agency');

Query1.Sql.Add(' where agency_id=:v_1');

Query1.ParamByName('v_1').asstring := vid;

Query1.Open;

Query2.Next;

until Query2.EOF;

Query2.GotoBookmark(oldBookmark);

Query2.FreeBookmark(oldBookmark);

end;

2  COMMENTS
  • Profile
    이재식 2001.05.10 02:46
    procedure TForm1.Button1Click(Sender: TObject);

    var

    oldBookmark : TBookmark;

    begin

    Query2.Close;

    Query2.Sql.Clear;

    Query2.Sql.Add('select * from f_test');

    Query2.Open;

    vid := Query2.Fields[1].AsString;

    oldBookmark := Query2.GetBookmark;



    repeat



    Query1.Close;

    Query1.Sql.Clear;

    Query1.Sql.Add('select * from t_agency');

    Query1.Sql.Add(' where agency_id=:v_1');

    Query1.ParamByName('v_1').asstring := vid;

    Query1.Open;

    Query2.Next;

    // * vid := Query2.Fields[1].asString ;

    until Query2.EOF;



    Query2.GotoBookmark(oldBookmark);

    Query2.FreeBookmark(oldBookmark);

    end;



    위 부분에 보면 //* 이부분이 있어야 할것 같습니다.



  • Profile
    김아성 2001.05.15 01:07
    답변 고맙습니다. ^^;;

    그런데 그렇게 실행을 하니

    f_test 테이블의 마지막 레코드 값 하나만 리스트에 보여지네요







    이재식 wrote:

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > oldBookmark : TBookmark;

    > begin

    > Query2.Close;

    > Query2.Sql.Clear;

    > Query2.Sql.Add('select * from f_test');

    > Query2.Open;

    > vid := Query2.Fields[1].AsString;

    > oldBookmark := Query2.GetBookmark;

    >

    > repeat

    >

    > Query1.Close;

    > Query1.Sql.Clear;

    > Query1.Sql.Add('select * from t_agency');

    > Query1.Sql.Add(' where agency_id=:v_1');

    > Query1.ParamByName('v_1').asstring := vid;

    > Query1.Open;

    > Query2.Next;

    > // * vid := Query2.Fields[1].asString ;

    > until Query2.EOF;

    >

    > Query2.GotoBookmark(oldBookmark);

    > Query2.FreeBookmark(oldBookmark);

    > end;

    >

    > 위 부분에 보면 //* 이부분이 있어야 할것 같습니다.

    >