ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBTransactionEdit.pas
Revision: 17
Committed: Sat Dec 28 19:22:24 2013 UTC (10 years, 11 months ago) by tony
Content type: text/x-pascal
File size: 7428 byte(s)
Log Message:
Committing updates for Release R1-0-5

File Contents

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