본문 바로가기

컴터/delphi

TQuery의 묵시적 transaction 을 줄이기 위해.(cachedUpdate : false => true 로 전환)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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