home *** CD-ROM | disk | FTP | other *** search
- {*******************************************************************}
- { }
- { Vita Voom Software }
- { Main.pas unit - Sequences Demo }
- { }
- { Copyright (c) 1998-2003 Vita Voom Software }
- { ALL RIGHTS RESERVED }
- {*******************************************************************}
- { }
- { Please refer to the Readme.txt file for details. }
- { }
-
- unit Main;
-
- interface
-
- uses
- SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
- QDialogs, QStdCtrls, QExtCtrls, QGrids, QDBGrids, DBXpress, FMTBcd,
- Provider, DBClient, DB, SqlExpr;
-
- const
- sqlCreateTable = 'create table sequences_demo(ID serial, name varchar(100), age int2);';
- sqlDeleteTable = 'drop table sequences_demo;';
- sqlPopulate1 = 'insert into sequences_demo values(DEFAULT, )';
-
- type
- TForm1 = class(TForm)
- DBGrid1: TDBGrid;
- Panel1: TPanel;
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- DataSource1: TDataSource;
- SQLConnection: TSQLConnection;
- sdsSequences_Demo: TSQLDataSet;
- cdsSequences_Demo: TClientDataSet;
- dspSequences_Demo: TDataSetProvider;
- cdsSequences_Demoid: TIntegerField;
- cdsSequences_Demoname: TStringField;
- cdsSequences_Demoage: TSmallintField;
- sdsGetID: TSQLDataSet;
- Button5: TButton;
- sdsSequences_Demoid: TIntegerField;
- sdsSequences_Demoname: TStringField;
- sdsSequences_Demoage: TSmallintField;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button4Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- procedure cdsSequences_DemoAfterOpen(DataSet: TDataSet);
- procedure cdsSequences_DemoAfterClose(DataSet: TDataSet);
- procedure dspSequences_DemoBeforeUpdateRecord(Sender: TObject;
- SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
- UpdateKind: TUpdateKind; var Applied: Boolean);
- procedure Button5Click(Sender: TObject);
- private
- { Private declarations }
- public
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.xfm}
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- SQLConnection.ExecuteDirect(sqlCreateTable)
- end;
-
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- SQLConnection.ExecuteDirect(sqlDeleteTable);
- cdsSequences_Demo.Close;
- end;
-
- procedure TForm1.Button4Click(Sender: TObject);
- begin
- ShowMessage('Table "sequences_demo" creation statment:'#13#10#13#10 + sqlCreateTable);
- end;
-
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- cdsSequences_Demo.Active := not cdsSequences_Demo.Active;
- end;
-
- procedure TForm1.cdsSequences_DemoAfterOpen(DataSet: TDataSet);
- begin
- Button3.Caption := 'Close table';
- end;
-
- procedure TForm1.cdsSequences_DemoAfterClose(DataSet: TDataSet);
- begin
- Button3.Caption := 'Open table';
- end;
-
- procedure TForm1.dspSequences_DemoBeforeUpdateRecord(Sender: TObject;
- SourceDS: TDataSet; DeltaDS: TCustomClientDataSet;
- UpdateKind: TUpdateKind; var Applied: Boolean);
- begin
- // Only for insert events...
- if UpdateKind = ukInsert then
- begin
- try
- // Open the SQLDataset component that will retrieve the next sequence ID
- // contents: select nextval('sequences_demo_id_seq');
- sdsGetID.Open;
- // Setting the value manually in the dataset
- DeltaDS.FieldByName('id').NewValue := sdsGetID.Fields[0].AsInteger;
- finally
- sdsGetID.Close;
- end;
- end;
- end;
-
- procedure TForm1.Button5Click(Sender: TObject);
- begin
- cdsSequences_Demo.ApplyUpdates(0)
- end;
-
- end.
-