//다음과 값이 쿼리문을 날린 다음 디렉토리 전체의 내용을 그리드에
//보여주고자 합니다.
//계속 recordcount의 값이 -1로 나옵니다.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids_ts, TSGrid, DB, DBTables;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
Database1: TDatabase;
Query1: TQuery;
grd: TtsGrid;
Button1: TButton;
Edit1: TEdit;
Table1: TTable;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i :integer;
begin
with Query1 do
begin
close;
sql.Clear;
sql.Add(' select * from ');
sql.Add(' DIRECTORY');
open;
first;
edit1.Text := intTostr(recordCount);//recordcount값을 표시하기 위해
if not eof then
begin
for i :=1 to recordcount do
begin//그리드에 결과 보여주기
grd.Cell[1,i] := FieldByName('BOOK_NUM').AsInteger;
grd.Cell[2,i] := FieldByName('TAG_CODE').AsString;
grd.Cell[3,i] := FieldByName('START_POS').AsString;
grd.Cell[4,i] := FieldByName('END_POS').AsString;
grd.Cell[5,i] := FieldByName('DIRE_NOTE').AsString;
end;
end; //if not eof then
end; //with Query1 do
end;
end.
방법은 SELECT한다음 last한다음에 first를 하면 RecordCount에 값이 제대로 들어가는걸로 기억합니다.