Q&A

  • Query로 가져온 데이타를 Sort하는방법 좀...
안녕하세요



Query로 가져온 데이타를 정렬하는방법이 없나요



SQL 문에 Order by 문을 쓰고 다시 OPEN하면 시간이 아주 많이 걸림 (방대한자료)



그래서 이미가져온 데이타로 정렬은 할수 없나요.













2  COMMENTS
  • Profile
    박덕신 2001.09.05 19:18
    홍길동 wrote:

    > 안녕하세요

    >

    > Query로 가져온 데이타를 정렬하는방법이 없나요

    >

    > SQL 문에 Order by 문을 쓰고 다시 OPEN하면 시간이 아주 많이 걸림 (방대한자료)

    >

    > 그래서 이미가져온 데이타로 정렬은 할수 없나요.

    >

    >

    >

    > 질문에 대한 답변은 아닌것 같지만....저는 이렇게 해결합니다...

    첫번째로 db를 어떤걸 사용하는지 모르지만...저는 오라클을 사용합니다..

    이건 어쩜 turning에 관한 것일지도 모르지만...오라클에서는 데이터를 정렬하는

    가상을 공간을 제공하는 템프러릴 라는것이 있어서 이곳의 튜닝을 해 줍니다...

    사용하는 데이터베이스가 뭔지 몰라두....이것에 한번 신경을 써 보시는것이 어떤

    지....모르겠군요....



    그리고 혹시 도움이 돌런지는 몰라구.....

    Query1.Sort := 'Name ASC, DateDue DESC'

    이렇게 한번 해 보세요...

    이것은 adoquery에서 사용하는건데 될런지는 모르겠군요....



    아래것은 디비그리드에서 정렬하는겁니다...타이틀 클릭시에.....

    한번 해 보세요...유용하게 쓰일지도 모르겠군요....



    procedure TFA.DBGrid2TitleClick(Column: TColumn);

    var

    Field_sel : Integer;

    begin

    Field_sel := 0;

    if Column.Field.FieldNo > 0 then Field_sel := Column.Field.FieldNo - 3;

    with qr_slipacc_1 do

    begin

    Close;

    Sql.Clear;

    Sql.Add(' SELECT DISTINCT A.SAUP_CODE, ');

    Sql.Add(' A.ACCT_YEAR, A.GOWA_CODE, A.GOWA_NAME ');

    Sql.Add(' FROM SLIPACC_ A ');

    Sql.Add(' WHERE A.SAUP_CODE = '''+ed_saup_code.Text+''' ');

    Sql.Add(' AND A.ACCT_YEAR = '''+copy(g_frst_date, 1, 4)+''' ');

    if DBGrid2.Columns[Field_sel].Title.Color = clYellow then

    begin

    Sql.Add('ORDER BY ' +Column.FieldName+ ' DESC ');

    DBGrid2.Columns[Field_sel].Title.Color := clGreen;

    end

    else

    begin

    Sql.Add('ORDER BY ' +Column.FieldName+ ' ASC ');

    DBGrid2.Columns[Field_sel].Title.Color := clYellow;

    end;

    //SqlShow_(sql);

    Open;

    end;

    end;



    그럼 ....즐코하세요...

    >

    >

  • Profile
    홍길동 2001.09.05 23:25
    답변에 감사드립니다.



    행복한 하루되시길 바랍니다.