ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/design/IBTransactionEdit.pas
Revision: 5
Committed: Fri Feb 18 16:26:16 2011 UTC (13 years, 9 months ago) by tony
Content type: text/x-pascal
File size: 7257 byte(s)
Log Message:
Committing updates for Release pre-release

File Contents

# User Rev Content
1 tony 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 tony 5 {$MODE Delphi}
32    
33 tony 1 interface
34    
35     uses
36 tony 5 {Windows,} Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
37     StdCtrls, IBDataBase, IB, ExtCtrls, IBXConst, LResources;
38 tony 1
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    
81 tony 5 {uses
82     LibHelp;}
83 tony 1
84     function EditIBtransaction(ATransaction: TIBtransaction): Boolean;
85     begin
86     with TIBtransactionEditForm.Create(Application) do
87     try
88     Transaction := ATransaction;
89     Result := Edit;
90     finally
91     Free;
92     end;
93     end;
94    
95     function TIBtransactionEditForm.Edit: Boolean;
96     begin
97     TransactionParams.Lines := Transaction.Params;
98     ParseParams;
99     Result := False;
100     if ShowModal = mrOk then
101     begin
102     Transaction.Params := TransactionParams.Lines;
103     Result := True;
104     end;
105     end;
106    
107     type
108     TTransactionParam = (concurrency, read_committed, rec_version, nowait,
109     consistency, read, write);
110     TTransactionParams = set of TTransactionParam;
111    
112     procedure TIBTransactionEditForm.ParseParams;
113     var
114     I: Integer;
115     st: string;
116     Value: TTransactionParams;
117    
118     begin
119     Value := [];
120     for I := 0 to TransactionParams.Lines.Count - 1 do
121     begin
122     st := LowerCase(Trim(TransactionParams.Lines[I]));
123     if st = '' then
124     continue;
125     if st = 'concurrency' then
126     Include(Value, concurrency)
127     else if st = 'read_committed' then
128     Include(Value, read_committed)
129     else if st = 'rec_version' then
130     Include(Value, rec_version)
131     else if st = 'nowait' then
132     Include(Value, nowait)
133     else if st = 'read' then
134     Include(Value, read)
135     else if st = 'write' then
136     Include(Value, write)
137     else if st = 'consistency' then
138     Include(Value, consistency)
139     else begin
140     Value := [];
141     break;
142     end;
143     end;
144     ClearParamSelection;
145     if Value = [concurrency, nowait] then
146     rbSnapShot.Checked := True
147     else if Value = [read_committed, rec_version, nowait] then
148     rbReadCommitted.Checked := True
149     else if Value = [read, consistency] then
150     rbReadOnlyTableStability.Checked := True
151     else if Value = [write, consistency] then
152     rbReadWriteTableStability.Checked := True;
153     end;
154    
155     procedure TIBTransactionEditForm.ClearParamSelection;
156     begin
157     rbSnapShot.Checked := False;
158     rbReadCommitted.Checked := False;
159     rbReadOnlyTableStability.Checked := False;
160     rbReadWriteTableStability.Checked := False;
161     end;
162    
163     procedure TIBTransactionEditForm.OKBtnClick(Sender: TObject);
164     begin
165     ModalResult := mrNone;
166     if Transaction.Active then
167     begin
168     if MessageDlg(SCommitTransaction, mtConfirmation,
169     mbOkCancel, 0) <> mrOk then Exit;
170     Transaction.Rollback;
171     end;
172     ModalResult := mrOk;
173     end;
174    
175     procedure TIBTransactionEditForm.FormCreate(Sender: TObject);
176     begin
177 tony 5 // HelpContext := hcDIBTransactionEdit;
178 tony 1 end;
179    
180     procedure TIBTransactionEditForm.HelpBtnClick(Sender: TObject);
181     begin
182     Application.HelpContext(HelpContext);
183     end;
184    
185     procedure TIBTransactionEditForm.rbSnapShotClick(Sender: TObject);
186     begin
187     TransactionParams.clear;
188     TransactionParams.Lines.Add('concurrency'); { do not localize }
189     TransactionParams.Lines.Add('nowait'); { do not localize }
190     end;
191    
192     procedure TIBTransactionEditForm.rbReadCommittedClick(Sender: TObject);
193     begin
194     TransactionParams.clear;
195     TransactionParams.Lines.Add('read_committed'); { do not localize }
196     TransactionParams.Lines.Add('rec_version'); { do not localize }
197     TransactionParams.Lines.Add('nowait'); { do not localize }
198     end;
199    
200     procedure TIBTransactionEditForm.rbReadOnlyTableStabilityClick(Sender: TObject);
201     begin
202     TransactionParams.clear;
203     TransactionParams.Lines.Add('read'); { do not localize }
204     TransactionParams.Lines.Add('consistency'); { do not localize }
205     end;
206    
207     procedure TIBTransactionEditForm.rbReadWriteTableStabilityClick(Sender: TObject);
208     begin
209     TransactionParams.clear;
210     TransactionParams.Lines.Add('write'); { do not localize }
211     TransactionParams.Lines.Add('consistency'); { do not localize }
212     end;
213    
214     procedure TIBTransactionEditForm.TransactionParamsClick(Sender: TObject);
215     begin
216     ClearParamSelection;
217     end;
218    
219     procedure TIBTransactionEditForm.TransactionParamsExit(Sender: TObject);
220     begin
221     ParseParams;
222     end;
223    
224 tony 5 initialization
225     {$i IBTransactionEdit.lrs}
226    
227 tony 1 end.