ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBTransactionEdit.pas
Revision: 19
Committed: Mon Jul 7 13:00:15 2014 UTC (10 years, 5 months ago) by tony
Content type: text/x-pascal
File size: 7537 byte(s)
Log Message:
Committing updates for Release R1-1-0

File Contents

# Content
1 {************************************************************************}
2 { }
3 { Borland Delphi Visual Component Library }
4 { InterBase Express core components }
5 { }
6 { Copyright (c) 1998-2000 Inprise Corporation }
7 { }
8 { InterBase Express is based in part on the product }
9 { Free IB Components, written by Gregory H. Deatz for }
10 { Hoagland, Longo, Moran, Dunst & Doukas Company. }
11 { Free IB Components is used under license. }
12 { }
13 { The contents of this file are subject to the InterBase }
14 { Public License Version 1.0 (the "License"); you may not }
15 { use this file except in compliance with the License. You }
16 { may obtain a copy of the License at http://www.Inprise.com/IPL.html }
17 { Software distributed under the License is distributed on }
18 { an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either }
19 { express or implied. See the License for the specific language }
20 { governing rights and limitations under the License. }
21 { The Original Code was created by InterBase Software Corporation }
22 { and its successors. }
23 { Portions created by Inprise Corporation are Copyright (C) Inprise }
24 { Corporation. All Rights Reserved. }
25 { Contributor(s): Jeff Overcash }
26 { }
27 {************************************************************************}
28
29 unit IBTransactionEdit;
30
31 {$MODE Delphi}
32
33 interface
34
35 uses
36 {Windows,} Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
37 StdCtrls, IBDataBase, IB, ExtCtrls, IBXConst, LResources;
38
39 type
40
41 { TIBTransactionEditForm }
42
43 TIBTransactionEditForm = class(TForm)
44 GroupBox1: TGroupBox;
45 HelpBtn: TButton;
46 Cancelbtn: TButton;
47 OKBtn: TButton;
48 rbOtherButton: TRadioButton;
49 rbSnapShot: TRadioButton;
50 rbReadCommitted: TRadioButton;
51 rbReadOnlyTableStability: TRadioButton;
52 rbReadWriteTableStability: TRadioButton;
53 TransactionParams: TMemo;
54 Panel1: TPanel;
55 Label1: TLabel;
56 procedure OKBtnClick(Sender: TObject);
57 procedure rbSnapShotClick(Sender: TObject);
58 procedure rbReadCommittedClick(Sender: TObject);
59 procedure rbReadOnlyTableStabilityClick(Sender: TObject);
60 procedure rbReadWriteTableStabilityClick(Sender: TObject);
61 procedure FormCreate(Sender: TObject);
62 procedure HelpBtnClick(Sender: TObject);
63 procedure TransactionParamsClick(Sender: TObject);
64 procedure TransactionParamsExit(Sender: TObject);
65
66 private
67 { Private declarations }
68 Transaction: TIBTransaction;
69 function Edit: Boolean;
70 procedure ParseParams;
71 procedure ClearParamSelection;
72
73 public
74 { Public declarations }
75 end;
76
77 var
78 IBTransactionEditForm: TIBTransactionEditForm;
79
80 function EditIBtransaction(Atransaction: TIBtransaction): Boolean;
81
82 implementation
83
84 {$R *.lfm}
85
86 function EditIBtransaction(ATransaction: TIBtransaction): Boolean;
87 begin
88 with TIBtransactionEditForm.Create(Application) do
89 try
90 Transaction := ATransaction;
91 Result := Edit;
92 finally
93 Free;
94 end;
95 end;
96
97 function TIBtransactionEditForm.Edit: Boolean;
98 begin
99 TransactionParams.Lines := Transaction.Params;
100 ParseParams;
101 Result := False;
102 if ShowModal = mrOk then
103 begin
104 Transaction.Params := TransactionParams.Lines;
105 Result := True;
106 end;
107 end;
108
109 type
110 TTransactionParam = (concurrency, read_committed, rec_version, nowait,
111 consistency, read, write);
112 TTransactionParams = set of TTransactionParam;
113
114 procedure TIBTransactionEditForm.ParseParams;
115 var
116 I: Integer;
117 st: string;
118 Value: TTransactionParams;
119
120 begin
121 Value := [];
122 for I := 0 to TransactionParams.Lines.Count - 1 do
123 begin
124 st := LowerCase(Trim(TransactionParams.Lines[I]));
125 if st = '' then
126 continue;
127 if st = 'concurrency' then
128 Include(Value, concurrency)
129 else if st = 'read_committed' then
130 Include(Value, read_committed)
131 else if st = 'rec_version' then
132 Include(Value, rec_version)
133 else if st = 'nowait' then
134 Include(Value, nowait)
135 else if st = 'read' then
136 Include(Value, read)
137 else if st = 'write' then
138 Include(Value, write)
139 else if st = 'consistency' then
140 Include(Value, consistency)
141 else begin
142 Value := [];
143 break;
144 end;
145 end;
146 ClearParamSelection;
147 if Value = [concurrency, nowait] then
148 rbSnapShot.Checked := True
149 else if Value = [read_committed, rec_version, nowait] then
150 rbReadCommitted.Checked := True
151 else if Value = [read, consistency] then
152 rbReadOnlyTableStability.Checked := True
153 else if Value = [write, consistency] then
154 rbReadWriteTableStability.Checked := True
155 else
156 rbOtherButton.Checked := true
157 end;
158
159 procedure TIBTransactionEditForm.ClearParamSelection;
160 begin
161 rbSnapShot.Checked := False;
162 rbReadCommitted.Checked := False;
163 rbReadOnlyTableStability.Checked := False;
164 rbReadWriteTableStability.Checked := False;
165 end;
166
167 procedure TIBTransactionEditForm.OKBtnClick(Sender: TObject);
168 begin
169 ModalResult := mrNone;
170 if Transaction.Active then
171 begin
172 if MessageDlg(SCommitTransaction, mtConfirmation,
173 mbOkCancel, 0) <> mrOk then Exit;
174 Transaction.Rollback;
175 end;
176 ModalResult := mrOk;
177 end;
178
179 procedure TIBTransactionEditForm.FormCreate(Sender: TObject);
180 begin
181 // HelpContext := hcDIBTransactionEdit;
182 end;
183
184 procedure TIBTransactionEditForm.HelpBtnClick(Sender: TObject);
185 begin
186 Application.HelpContext(HelpContext);
187 end;
188
189 procedure TIBTransactionEditForm.rbSnapShotClick(Sender: TObject);
190 begin
191 TransactionParams.clear;
192 TransactionParams.Lines.Add('concurrency'); { do not localize }
193 TransactionParams.Lines.Add('nowait'); { do not localize }
194 end;
195
196 procedure TIBTransactionEditForm.rbReadCommittedClick(Sender: TObject);
197 begin
198 TransactionParams.clear;
199 TransactionParams.Lines.Add('read_committed'); { do not localize }
200 TransactionParams.Lines.Add('rec_version'); { do not localize }
201 TransactionParams.Lines.Add('nowait'); { do not localize }
202 end;
203
204 procedure TIBTransactionEditForm.rbReadOnlyTableStabilityClick(Sender: TObject);
205 begin
206 TransactionParams.clear;
207 TransactionParams.Lines.Add('read'); { do not localize }
208 TransactionParams.Lines.Add('consistency'); { do not localize }
209 end;
210
211 procedure TIBTransactionEditForm.rbReadWriteTableStabilityClick(Sender: TObject);
212 begin
213 TransactionParams.clear;
214 TransactionParams.Lines.Add('write'); { do not localize }
215 TransactionParams.Lines.Add('consistency'); { do not localize }
216 end;
217
218 procedure TIBTransactionEditForm.TransactionParamsClick(Sender: TObject);
219 begin
220 ClearParamSelection;
221 end;
222
223 procedure TIBTransactionEditForm.TransactionParamsExit(Sender: TObject);
224 begin
225 ParseParams;
226 end;
227
228
229 end.