::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-06 21:19:29, Hit : 4370, Vote : 1125
 동적으로 인덱스 만들기

아래 예제는 테스트한 예제입니다
테스트는 DBDEMOS 로 했습니다

동작은 DBGrid의 Title를 클릭하면 그 Title 의 필드로
내림차순 sort를 합니다

동작원리는 폼 생성시 그 테이블에 동적으로 index를 만드는 것입니다
주의할것은 지정한 Table에 있는 모든 필드에 대해 각각 하나씩
index가 생성되므로 table space를 낭비할 수 있으므로
아래 소르를 보시고 특정 필드만 AddIndex하도록 고처서 사용하세요
SQL-based 서버는 테스트 안해봐서 잘 될 지 모르겠습니다...


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables;

type
TForm1 = class(TForm)
   Table1: TTable;
   DataSource1: TDataSource;
   DBGrid1: TDBGrid;
   procedure FormCreate(Sender: TObject);
   procedure DBGrid1TitleClick(Column: TColumn);
private
   { Private declarations }
public
   { Public declarations }
end;

var
Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Table1.Exclusive := True; // Paradox or dBASE table 인 경우만 해당
Table1.Active := True;
for i := 1 to DBGrid1.Columns.Count do
begin
   try
     // table의 인덱스를 동적으로 만든다
     Table1.AddIndex(DBGrid1.Columns[i].FieldName, // index name
                     DBGrid1.Columns[i].FieldName, // index field names
                     [ixDescending]); // 내림차순 순서를 준다
   except // Blob 필드는 except 발생되어 인덱스생성 안됨
     ;
   end;
end;

Table1.Active := False;
Table1.Exclusive := False;
Table1.Active := True;
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
Table1.IndexName := Column.FieldName;
end;

end.






211   [일반/컴포넌트] 각도에 따라 회전한 화살표 그리기  김영대 2003/03/07 4602 1131
210   [데이터베이스] 델파이 에러코드의 설명(?) 구하기  김영대 2003/03/05 4605 1130
209   [일반/컴포넌트] GUID를 자동으로 만들어주는 Hot Key ?  김영대 2003/03/05 3986 1129
208   [일반/컴포넌트] Outlook Express 설치여부 알아내기  김영대 2003/03/07 4886 1128
207   [COM/OLE] 윈도우즈 시작의 "실행" 화면 띄우기  김영대 2003/03/07 3987 1128
206   [일반/컴포넌트] 화면변경시 콤포넌트 위치와 크기를 조정  김영대 2003/03/06 4606 1128
205   [일반/컴포넌트] ListView 내용을 파일로 저장하고 불러오기  김영대 2004/08/05 4630 1127
204   [일반/컴포넌트] 기본 SMTP 서버와 계정 알아내기  김영대 2003/03/30 4483 1127
203   [COM/OLE] Registering *.tlb files without Delphi  김영대 2003/03/06 4891 1127
202   [일반/컴포넌트] Microsoft Internet Explorer의 버전 번호  김영대 2003/03/30 4329 1126
201   [일반/컴포넌트] wild card(*,?)문자와 일치  김영대 2003/03/04 4061 1126
  [데이터베이스] 동적으로 인덱스 만들기  김영대 2003/03/06 4370 1125
199   [일반/컴포넌트] StringGrid 수직 스크롤바의 크기를 임의로 바꾸기  김영대 2003/03/07 5269 1124
198   [데이터베이스] Record Lock 검사  김영대 2003/03/07 4279 1123
197   [일반/컴포넌트] 숫자의 근사치 구하기  김영대 2003/03/07 4167 1121
196   [일반/컴포넌트] Unix-format time 을 TDateTime 로 바꾸기  김영대 2003/03/07 4077 1121
195   [일반/컴포넌트] 제어판의 applet 리스트 (51개)  김영대 2003/03/07 4570 1121
194   [일반/컴포넌트] StringGrid 에 ReadOnly 컬럼두기  김영대 2003/03/05 4753 1121
193   [일반/컴포넌트] Thread in a Timer  김영대 2003/04/07 6975 1120
192   [윈도우즈 API] 입력을 기다리는 풀스크린 콘솔 윈도우 만들어 보기  구창민 2003/03/14 4708 1120
191   [시스템] 윈도우즈에 설치된 프린터 리스트 구하기  김영대 2003/03/07 4240 1120
190   [COM/OLE] IE 에 직접 입력한 URL 목록 구하기  김영대 2004/08/02 4497 1119
189   [일반/컴포넌트] IE(Internet Explorer) toolbar 에 버튼 올리기  김영대 2003/03/07 4256 1119
188   [일반/컴포넌트] StringGrid의 선택된 Cell을 버튼으로 보이기  김영대 2003/03/07 4493 1119
187   [윈도우즈 API] reboot Windows  김영대 2003/03/07 3851 1119
186   [일반/컴포넌트] TList 를 이용한 stack 구조 구현  김영대 2004/07/25 4301 1118
185   [일반/컴포넌트] 폼이 생성되고 종료될때 폼의 이벤트 처리순서  김영대 2003/03/05 4189 1118
184   [데이터베이스] BDE Alias 없이 Database 동적으로 연결하기  신훈재 2003/03/24 5129 1117
183   [윈도우즈 API] 윈도우즈 Telnet 으로 호스트 접속하기  김영대 2003/03/07 4053 1117
182   [일반/컴포넌트] 디렉토리 복사루틴 (하부디렉토리 까지 몽땅)  김영대 2003/03/06 4806 1117
181   [데이터베이스] CD 에 있는 DB 접근하기  김영대 2003/03/07 3850 1116
180   [일반/컴포넌트] Bitmap으로 폼의 배경화면 그리기  김영대 2003/03/05 3981 1116
179   [일반/컴포넌트] 퀵레포트용 대각선 사각형, 그림자 사각형 콤포넌트  김영대 2003/03/05 4845 1115
178   [데이터베이스] DB의 모든 테이블과 테이블의 필드정보 얻기  김영대 2003/03/05 4269 1114
177   [윈도우즈 API] 윈도우즈 종료를 막기/특별한 동작하기  김영대 2003/03/05 4583 1114
176   [일반/컴포넌트] Hex Viewer  김영대 2004/08/04 4360 1113
175   [일반/컴포넌트] ListBox에서 마우스 이동시 아이템을 힌트로 보여주기  김영대 2003/03/27 4135 1113
174   [윈도우즈 API] 마우스 위치의 콘트롤(콤포넌트)을 조사하기  김영대 2003/03/07 4477 1113
173   [데이터베이스] dBase 테이블의 삭제된 레코드 보기  김영대 2003/03/07 4099 1113
172   [일반/컴포넌트] 폼의 title bar에 시간 출력하기  김영대 2003/03/05 3950 1112

[이전 10개] [1]..[11][12][13][14][15][16][17][18][19] 20 ..[25] [다음 10개]
 

Copyright 1999-2021 Zeroboard / skin by zero