Q&A

  • 분류먼저 해주시길 부탁드립니다.
Field

Host ->Integer;

Type ->Integer;

New ->Integer;

DateTime -> TDateTime;

Index

PriIdx ->(Host,Type)

NewIdx ->(New)

DateIdx ->(DateTime)

대충 이런형태의 테이블을 구축했습니다.



1]

여기서 그리드에 디스플레이할때 Host=0 and Type =1

그리고 New로 정렬하고 싶습니다.



2]

Host=0 and Type =1 Ascending(DateIdx)



위의 1과 2의 형태로 Query를 작성하려고 합니다.

어떤식으로 SQL를 만들어야합니까.

그리고 인덱스를 어떤식으로 쭤야합니까.



제 질문이 두서가 없더라도 이해해주시기 바랍니다.

델 왕초보가.





1  COMMENTS
  • Profile
    임형호 2000.03.11 21:31
    최진실 wrote:

    > Field

    > Host ->Integer;

    > Type ->Integer;

    > New ->Integer;

    > DateTime -> TDateTime;

    > Index

    > PriIdx ->(Host,Type)

    > NewIdx ->(New)

    > DateIdx ->(DateTime)

    > 대충 이런형태의 테이블을 구축했습니다.

    >

    > 1]

    > 여기서 그리드에 디스플레이할때 Host=0 and Type =1

    > 그리고 New로 정렬하고 싶습니다.

    >

    > 2]

    > Host=0 and Type =1 Ascending(DateIdx)

    >

    > 위의 1과 2의 형태로 Query를 작성하려고 합니다.

    > 어떤식으로 SQL를 만들어야합니까.

    > 그리고 인덱스를 어떤식으로 쭤야합니까.

    >

    > 델 왕초보가.

    >

    >

    질문의 요지가 Host필드값이 0 이고 Type필드값이 1 인 레코드들을 New필드값으로 정렬을 한다는 말인가요?

    제가 문제 파악을 제대로 했다면...



    with query1 do begin

    close;

    sql.clear;

    sql.add('select * from 연결DB명');

    sql.add('where 검색조건');

    sql.add('order by 정렬할 필드명');

    open;

    end;

    이런식으로 구현하면 됩니다.

    where 다음의 조건문에 Host=0 and Type=1 이라는 조건문을 대입하시면 되고요.

    Order by 다음에 정렬할 필드명이 오니까 New라고 기입해주시면 될것 같습니다.

    Query컴포넌트를 연결하여 SQL의 Order by문으로 정렬을 할 때는 해당 필드가 인덱스로 잡혀있지 않아도 가능합니다.

    물론 table 컴포넌트를 사용할 경우에 정렬을 시킬때는 프라이머리키나 세컨더리인덱스로 잡혀있어야만 정렬할 수 있습니다.