1 |
tony |
158 |
object Form1: TForm1
|
2 |
|
|
Left = 414
|
3 |
|
|
Height = 468
|
4 |
|
|
Top = 150
|
5 |
|
|
Width = 830
|
6 |
|
|
BorderStyle = bsSingle
|
7 |
|
|
Caption = 'Identity Column Demo'
|
8 |
|
|
ClientHeight = 468
|
9 |
|
|
ClientWidth = 830
|
10 |
|
|
DefaultMonitor = dmPrimary
|
11 |
|
|
OnCreate = FormCreate
|
12 |
|
|
OnShow = FormShow
|
13 |
|
|
Position = poDefaultSizeOnly
|
14 |
tony |
263 |
LCLVersion = '2.0.0.2'
|
15 |
tony |
158 |
object IBDynamicGrid1: TIBDynamicGrid
|
16 |
|
|
Left = 10
|
17 |
|
|
Height = 301
|
18 |
|
|
Top = 9
|
19 |
|
|
Width = 734
|
20 |
|
|
Color = clWindow
|
21 |
|
|
Columns = <
|
22 |
|
|
item
|
23 |
|
|
ReadOnly = True
|
24 |
|
|
Title.Alignment = taCenter
|
25 |
|
|
Title.Caption = 'KEY'
|
26 |
|
|
Width = 60
|
27 |
|
|
FieldName = 'KEY'
|
28 |
|
|
AutoSizeColumn = False
|
29 |
|
|
InitialSortColumn = False
|
30 |
|
|
DBLookupProperties.ItemHeight = 0
|
31 |
|
|
DBLookupProperties.ItemWidth = 0
|
32 |
|
|
DBLookupProperties.AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
33 |
|
|
end
|
34 |
|
|
item
|
35 |
|
|
Title.Alignment = taCenter
|
36 |
|
|
Title.Caption = 'SOMETEXT'
|
37 |
|
|
Width = 200
|
38 |
|
|
FieldName = 'SOMETEXT'
|
39 |
|
|
AutoSizeColumn = True
|
40 |
|
|
InitialSortColumn = False
|
41 |
|
|
DBLookupProperties.ItemHeight = 0
|
42 |
|
|
DBLookupProperties.ItemWidth = 0
|
43 |
|
|
DBLookupProperties.AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
44 |
|
|
end
|
45 |
|
|
item
|
46 |
|
|
ReadOnly = True
|
47 |
|
|
Title.Alignment = taCenter
|
48 |
|
|
Title.Caption = 'COMPTEXT'
|
49 |
|
|
Width = 200
|
50 |
|
|
FieldName = 'COMPTEXT'
|
51 |
|
|
AutoSizeColumn = True
|
52 |
|
|
InitialSortColumn = False
|
53 |
|
|
DBLookupProperties.ItemHeight = 0
|
54 |
|
|
DBLookupProperties.ItemWidth = 0
|
55 |
|
|
DBLookupProperties.AutoCompleteText = [cbactEnabled, cbactEndOfLineComplete, cbactSearchAscending]
|
56 |
|
|
end>
|
57 |
|
|
DataSource = DataSource1
|
58 |
|
|
Scrollbars = ssAutoVertical
|
59 |
|
|
TabOrder = 0
|
60 |
|
|
ExpandEditorPanelBelowRow = False
|
61 |
|
|
Descending = False
|
62 |
|
|
EditorBorderStyle = bsSingle
|
63 |
|
|
DefaultPositionAtEnd = False
|
64 |
|
|
end
|
65 |
|
|
object Button1: TButton
|
66 |
|
|
Left = 752
|
67 |
|
|
Height = 28
|
68 |
|
|
Top = 8
|
69 |
|
|
Width = 75
|
70 |
|
|
Caption = 'Add'
|
71 |
|
|
OnClick = Button1Click
|
72 |
|
|
TabOrder = 1
|
73 |
|
|
end
|
74 |
|
|
object PostBtn: TButton
|
75 |
|
|
Left = 753
|
76 |
|
|
Height = 28
|
77 |
|
|
Top = 43
|
78 |
|
|
Width = 75
|
79 |
|
|
Caption = 'Post'
|
80 |
|
|
OnClick = PostBtnClick
|
81 |
|
|
TabOrder = 2
|
82 |
|
|
end
|
83 |
|
|
object Label1: TLabel
|
84 |
|
|
Left = 19
|
85 |
|
|
Height = 132
|
86 |
|
|
Top = 324
|
87 |
|
|
Width = 725
|
88 |
|
|
AutoSize = False
|
89 |
|
|
Caption = 'This test requires Firebird 3 or later. It demonstrates the handling of Identity columns and how INSERT RETURNING (or Update Returning) can also be used to efficiently update COMPUTED BY columns on insert/update. '#10#10'The Application will create a simple database in a temporary location using a local Firebird Server when it is first run.'#10#10'Click on "Add" to insert a new row and on "Post" to insert the row into the database - or just move the cursor to a new column. Rows can be edited in situ. Note the only the "SOMETEXT" column is editable.'
|
90 |
|
|
ParentColor = False
|
91 |
|
|
WordWrap = True
|
92 |
|
|
end
|
93 |
|
|
object IBDatabase1: TIBDatabase
|
94 |
tony |
263 |
Connected = True
|
95 |
tony |
158 |
AfterConnect = IBDatabase1AfterConnect
|
96 |
|
|
CreateIfNotExists = True
|
97 |
|
|
AllowStreamedConnected = False
|
98 |
|
|
DatabaseName = '$DATADIR$IDTest.fdb'
|
99 |
|
|
Params.Strings = (
|
100 |
|
|
'user_name=SYSDBA'
|
101 |
|
|
'lc_ctype=UTF8'
|
102 |
|
|
)
|
103 |
|
|
DefaultTransaction = IBTransaction1
|
104 |
|
|
IdleTimer = 0
|
105 |
|
|
TraceFlags = []
|
106 |
|
|
UseDefaultSystemCodePage = False
|
107 |
|
|
OnCreateDatabase = IBDatabase1CreateDatabase
|
108 |
|
|
left = 149
|
109 |
|
|
top = 46
|
110 |
|
|
end
|
111 |
|
|
object IBTransaction1: TIBTransaction
|
112 |
|
|
Active = False
|
113 |
|
|
DefaultDatabase = IBDatabase1
|
114 |
|
|
Params.Strings = (
|
115 |
|
|
'read_committed'
|
116 |
|
|
'rec_version'
|
117 |
|
|
'nowait'
|
118 |
|
|
)
|
119 |
|
|
left = 240
|
120 |
|
|
top = 46
|
121 |
|
|
end
|
122 |
|
|
object IBDataSet1: TIBDataSet
|
123 |
|
|
AllowAutoActivateTransaction = False
|
124 |
|
|
Database = IBDatabase1
|
125 |
|
|
Transaction = IBTransaction1
|
126 |
|
|
BufferChunks = 1000
|
127 |
|
|
CachedUpdates = False
|
128 |
tony |
263 |
EnableStatistics = False
|
129 |
tony |
158 |
DeleteSQL.Strings = (
|
130 |
|
|
'Delete From IDTEST A'
|
131 |
tony |
263 |
'Where A."KEY" = :OLD_KEY'
|
132 |
tony |
158 |
)
|
133 |
|
|
InsertSQL.Strings = (
|
134 |
tony |
263 |
'Insert Into IDTEST (SOMETEXT)'
|
135 |
|
|
'Values(:SOMETEXT)'
|
136 |
|
|
' RETURNING "KEY", COMPTEXT'
|
137 |
tony |
158 |
)
|
138 |
|
|
RefreshSQL.Strings = (
|
139 |
tony |
263 |
'Select A."KEY", A.SOMETEXT, A.COMPTEXT From IDTEST A'
|
140 |
|
|
'Where A."KEY" = :"KEY"'
|
141 |
tony |
158 |
)
|
142 |
|
|
SelectSQL.Strings = (
|
143 |
tony |
263 |
'Select A."KEY", A.SOMETEXT, A.COMPTEXT From IDTEST A'
|
144 |
tony |
158 |
)
|
145 |
|
|
ModifySQL.Strings = (
|
146 |
|
|
'Update IDTEST A Set '
|
147 |
|
|
' A.SOMETEXT = :SOMETEXT'
|
148 |
tony |
263 |
'Where A."KEY" = :OLD_KEY'
|
149 |
|
|
' RETURNING A.COMPTEXT'
|
150 |
tony |
158 |
)
|
151 |
|
|
GeneratorField.ApplyOnEvent = gaeOnNewRecord
|
152 |
|
|
GenerateParamNames = False
|
153 |
tony |
263 |
MasterDetailDelay = 0
|
154 |
tony |
158 |
DataSetCloseAction = dcSaveChanges
|
155 |
|
|
left = 400
|
156 |
|
|
top = 46
|
157 |
|
|
end
|
158 |
|
|
object DataSource1: TDataSource
|
159 |
|
|
DataSet = IBDataSet1
|
160 |
|
|
left = 326
|
161 |
|
|
top = 46
|
162 |
|
|
end
|
163 |
|
|
object ApplicationProperties1: TApplicationProperties
|
164 |
|
|
OnIdle = ApplicationProperties1Idle
|
165 |
|
|
left = 520
|
166 |
|
|
top = 48
|
167 |
|
|
end
|
168 |
|
|
object IBDatabaseInfo1: TIBDatabaseInfo
|
169 |
|
|
Database = IBDatabase1
|
170 |
|
|
left = 155
|
171 |
|
|
top = 114
|
172 |
|
|
end
|
173 |
|
|
end
|