ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBTransactionEdit.pas
Revision: 1
Committed: Mon Jul 31 16:43:00 2000 UTC (23 years, 8 months ago) by tony
Content type: text/x-pascal
File size: 7189 byte(s)
Log Message:
Borland IBX Open Source Release

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 interface
32
33 uses
34 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
35 StdCtrls, IBDatabase, IB, ExtCtrls, IBXConst;
36
37 type
38 TIBTransactionEditForm = class(TForm)
39 GroupBox1: TGroupBox;
40 HelpBtn: TButton;
41 Cancelbtn: TButton;
42 OKBtn: TButton;
43 rbSnapShot: TRadioButton;
44 rbReadCommitted: TRadioButton;
45 rbReadOnlyTableStability: TRadioButton;
46 rbReadWriteTableStability: TRadioButton;
47 TransactionParams: TMemo;
48 Panel1: TPanel;
49 Label1: TLabel;
50 procedure OKBtnClick(Sender: TObject);
51 procedure rbSnapShotClick(Sender: TObject);
52 procedure rbReadCommittedClick(Sender: TObject);
53 procedure rbReadOnlyTableStabilityClick(Sender: TObject);
54 procedure rbReadWriteTableStabilityClick(Sender: TObject);
55 procedure FormCreate(Sender: TObject);
56 procedure HelpBtnClick(Sender: TObject);
57 procedure TransactionParamsClick(Sender: TObject);
58 procedure TransactionParamsExit(Sender: TObject);
59
60 private
61 { Private declarations }
62 Transaction: TIBTransaction;
63 function Edit: Boolean;
64 procedure ParseParams;
65 procedure ClearParamSelection;
66
67 public
68 { Public declarations }
69 end;
70
71 var
72 IBTransactionEditForm: TIBTransactionEditForm;
73
74 function EditIBtransaction(Atransaction: TIBtransaction): Boolean;
75
76 implementation
77
78 {$R *.DFM}
79
80 uses
81 LibHelp;
82
83 function EditIBtransaction(ATransaction: TIBtransaction): Boolean;
84 begin
85 with TIBtransactionEditForm.Create(Application) do
86 try
87 Transaction := ATransaction;
88 Result := Edit;
89 finally
90 Free;
91 end;
92 end;
93
94 function TIBtransactionEditForm.Edit: Boolean;
95 begin
96 TransactionParams.Lines := Transaction.Params;
97 ParseParams;
98 Result := False;
99 if ShowModal = mrOk then
100 begin
101 Transaction.Params := TransactionParams.Lines;
102 Result := True;
103 end;
104 end;
105
106 type
107 TTransactionParam = (concurrency, read_committed, rec_version, nowait,
108 consistency, read, write);
109 TTransactionParams = set of TTransactionParam;
110
111 procedure TIBTransactionEditForm.ParseParams;
112 var
113 I: Integer;
114 st: string;
115 Value: TTransactionParams;
116
117 begin
118 Value := [];
119 for I := 0 to TransactionParams.Lines.Count - 1 do
120 begin
121 st := LowerCase(Trim(TransactionParams.Lines[I]));
122 if st = '' then
123 continue;
124 if st = 'concurrency' then
125 Include(Value, concurrency)
126 else if st = 'read_committed' then
127 Include(Value, read_committed)
128 else if st = 'rec_version' then
129 Include(Value, rec_version)
130 else if st = 'nowait' then
131 Include(Value, nowait)
132 else if st = 'read' then
133 Include(Value, read)
134 else if st = 'write' then
135 Include(Value, write)
136 else if st = 'consistency' then
137 Include(Value, consistency)
138 else begin
139 Value := [];
140 break;
141 end;
142 end;
143 ClearParamSelection;
144 if Value = [concurrency, nowait] then
145 rbSnapShot.Checked := True
146 else if Value = [read_committed, rec_version, nowait] then
147 rbReadCommitted.Checked := True
148 else if Value = [read, consistency] then
149 rbReadOnlyTableStability.Checked := True
150 else if Value = [write, consistency] then
151 rbReadWriteTableStability.Checked := True;
152 end;
153
154 procedure TIBTransactionEditForm.ClearParamSelection;
155 begin
156 rbSnapShot.Checked := False;
157 rbReadCommitted.Checked := False;
158 rbReadOnlyTableStability.Checked := False;
159 rbReadWriteTableStability.Checked := False;
160 end;
161
162 procedure TIBTransactionEditForm.OKBtnClick(Sender: TObject);
163 begin
164 ModalResult := mrNone;
165 if Transaction.Active then
166 begin
167 if MessageDlg(SCommitTransaction, mtConfirmation,
168 mbOkCancel, 0) <> mrOk then Exit;
169 Transaction.Rollback;
170 end;
171 ModalResult := mrOk;
172 end;
173
174 procedure TIBTransactionEditForm.FormCreate(Sender: TObject);
175 begin
176 HelpContext := hcDIBTransactionEdit;
177 end;
178
179 procedure TIBTransactionEditForm.HelpBtnClick(Sender: TObject);
180 begin
181 Application.HelpContext(HelpContext);
182 end;
183
184 procedure TIBTransactionEditForm.rbSnapShotClick(Sender: TObject);
185 begin
186 TransactionParams.clear;
187 TransactionParams.Lines.Add('concurrency'); { do not localize }
188 TransactionParams.Lines.Add('nowait'); { do not localize }
189 end;
190
191 procedure TIBTransactionEditForm.rbReadCommittedClick(Sender: TObject);
192 begin
193 TransactionParams.clear;
194 TransactionParams.Lines.Add('read_committed'); { do not localize }
195 TransactionParams.Lines.Add('rec_version'); { do not localize }
196 TransactionParams.Lines.Add('nowait'); { do not localize }
197 end;
198
199 procedure TIBTransactionEditForm.rbReadOnlyTableStabilityClick(Sender: TObject);
200 begin
201 TransactionParams.clear;
202 TransactionParams.Lines.Add('read'); { do not localize }
203 TransactionParams.Lines.Add('consistency'); { do not localize }
204 end;
205
206 procedure TIBTransactionEditForm.rbReadWriteTableStabilityClick(Sender: TObject);
207 begin
208 TransactionParams.clear;
209 TransactionParams.Lines.Add('write'); { do not localize }
210 TransactionParams.Lines.Add('consistency'); { do not localize }
211 end;
212
213 procedure TIBTransactionEditForm.TransactionParamsClick(Sender: TObject);
214 begin
215 ClearParamSelection;
216 end;
217
218 procedure TIBTransactionEditForm.TransactionParamsExit(Sender: TObject);
219 begin
220 ParseParams;
221 end;
222
223 end.