unit test5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids, ExtCtrls, DBCtrls;
type
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Edit1: TEdit;
Button1: TButton;
DBNavigator1: TDBNavigator;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Query1AfterPost(DataSet: TDataSet);
procedure Query1AfterCancel(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Text:=
'Select * from @TableName where Category like :category';
Query1.SQL.Text:=
StringReplace(Query1.SQL.Text, '@TableName', 'biolife', [rfReplaceAll, rfIgnoreCase]);///디비이름을 바꿀때
Query1.ParamByName('Category').AsString:=Edit1.Text + '%'; //파라미터 전송.
Query1.Open;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Query1.ApplyUpdates; //여태껏 입력햇던것을 한꺼번에적용시킨다.따로 버튼 만들어서
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Query1.CancelUpdates;////따로 버튼 만들어서
end;
procedure TForm1.Query1AfterPost(DataSet: TDataSet);
begin
Query1.ApplyUpdates;
{네비저장시 한번에 저장.. 이유는 TQuery에서 cachedUpdate 를 true로 놓으면 묵시적 transaction이 나지 않는다.계속 transaction 이 나면 다른 사용자가 해당 칼럼을 접속하지 못하기에 그 transaction 의 부하를 줄이기 위해.따로 버튼 만들필요없이 네비에서.
}
end;
procedure TForm1.Query1AfterCancel(DataSet: TDataSet);
begin
Query1.CancelUpdates; /////네비취소시 한번에 취소 따로 버튼 만들필요없이 네비에서
end;
end.
'컴터 > delphi' 카테고리의 다른 글
동적 dll 링크 (0) | 2007.12.10 |
---|---|
dll 만들기 기초 (0) | 2007.12.10 |
BDE > Query(DBTables) 사용시 (0) | 2007.11.29 |
북마크 (0) | 2007.11.28 |