ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/udr/testsuite/Test4.pas
(Generate patch)

Comparing:
ibx/trunk/fbintf/testsuite/Test4.pas (file contents), Revision 59 by tony, Mon Mar 13 09:51:56 2017 UTC vs.
ibx/branches/udr/testsuite/Test4.pas (file contents), Revision 379 by tony, Mon Jan 10 10:08:03 2022 UTC

# Line 1 | Line 1
1 + (*
2 + *  Firebird Interface (fbintf) Test suite. This program is used to
3 + *  test the Firebird Pascal Interface and provide a semi-automated
4 + *  pass/fail check for each test.
5 + *
6 + *  The contents of this file are subject to the Initial Developer's
7 + *  Public License Version 1.0 (the "License"); you may not use this
8 + *  file except in compliance with the License. You may obtain a copy
9 + *  of the License here:
10 + *
11 + *    http://www.firebirdsql.org/index.php?op=doc&id=idpl
12 + *
13 + *  Software distributed under the License is distributed on an "AS
14 + *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
15 + *  implied. See the License for the specific language governing rights
16 + *  and limitations under the License.
17 + *
18 + *  The Initial Developer of the Original Code is Tony Whyman.
19 + *
20 + *  The Original Code is (C) 2016 Tony Whyman, MWA Software
21 + *  (http://www.mwasoftware.co.uk).
22 + *
23 + *  All Rights Reserved.
24 + *
25 + *  Contributor(s): ______________________________________.
26 + *
27 + *)
28 +
29   unit Test4;
30   {$IFDEF MSWINDOWS}
31   {$DEFINE WINDOWS}
# Line 39 | Line 67 | unit Test4;
67   interface
68  
69   uses
70 <  Classes, SysUtils, TestManager, IB;
70 >  Classes, SysUtils, TestApplication, FBTestApp, IB;
71  
72   type
73  
74    { TTest4 }
75  
76 <  TTest4 = class(TTestBase)
76 >  TTest4 = class(TFBTestBase)
77    private
78      procedure DoQuery(Attachment: IAttachment);
79    public
# Line 60 | Line 88 | implementation
88  
89   procedure TTest4.DoQuery(Attachment: IAttachment);
90   var Transaction, Transaction2, Transaction3: ITransaction;
91 <    Statement: IStatement;
91 >    Statement, Statement2: IStatement;
92      Rows: IResultSet;
93      stats: TPerfCounters;
94   begin
# Line 73 | Line 101 | begin
101    Transaction.Rollback;
102    Transaction.Start(TARollback);
103  
104 <  Statement := Attachment.PrepareWithNamedParameters(Transaction,'Select * from EMPLOYEE Where EMP_NO = :EMP_NO',3);
104 >  Statement := Attachment.PrepareWithNamedParameters(Transaction,'Select * from EMPLOYEE Where EMP_NO = :F1',3);
105    Statement.EnableStatistics(true);
106 <  Statement.GetSQLParams.ByName('EMP_NO').AsInteger := 8;
106 >  Statement.GetSQLParams.ByName('F1').AsInteger := 8;
107    ReportResults(Statement);
108    if Statement.GetPerfStatistics(stats) then
109      WritePerfStats(stats);
# Line 168 | Line 196 | begin
196    writeln(OutFile,'Employee Count = ', Attachment.OpenCursorAtStart(Transaction,
197           'Select count(*) from EMPLOYEE',3)[0].AsInteger);
198  
199 +  Statement2 := Attachment.PrepareWithNamedParameters(Transaction,'Update EMPLOYEE Set FIRST_NAME = ''Jayne''''s'' Where EMP_NO = :EMP_NO',3);
200 +  Statement2.GetSQLParams.ByName('EMP_NO').AsInteger := 150;
201 +  writeln(OutFile,'Updating');
202 +  Statement2.Execute;
203 +  WriteAffectedRows(Statement);
204 +
205    writeln(OutFile,'Prepare Query again');
206    writeln(OutFile);
207    Statement.Prepare;
# Line 194 | Line 228 | begin
228    writeln(OutFile,'Same Statement - updated params');
229    Statement.GetSQLParams.ByName('EMP_NO').AsInteger := 9;
230    ReportResults(Statement);
231 +
232 +  writeln(outfile,'Test using Execute Block');
233 +
234 +  Transaction := Attachment.StartTransaction([isc_tpb_write,isc_tpb_nowait,isc_tpb_concurrency],taRollback);
235 +  Statement := Attachment.PrepareWithNamedParameters(Transaction,
236 +    'Execute Block (Hired Timestamp = :Hire_Date, empno integer = :EMP_NO) '+
237 +    'As Begin ' +
238 +    '  Update Employee Set Hire_Date = :Hired Where EMP_NO = :empno; '+
239 +    'End'
240 +    ,3);
241 +  Statement.GetSQLParams.ByName('Hire_Date').AsDateTime := EncodeDate(2015,1,31);;
242 +  Statement.GetSQLParams.ByName('EMP_NO').AsInteger := 8;
243 +  Statement.Execute;
244 +  WriteAffectedRows(Statement);
245 +  Statement := Attachment.PrepareWithNamedParameters(Transaction,'Select * from EMPLOYEE Where EMP_NO = :EMP_NO',3);
246 +  Statement.GetSQLParams.ByName('emp_no').AsInteger := 8;
247 +  ReportResults(Statement);
248 +
249   end;
250  
251   function TTest4.TestTitle: AnsiString;
# Line 204 | Line 256 | end;
256   procedure TTest4.RunTest(CharSet: AnsiString; SQLDialect: integer);
257   var Attachment: IAttachment;
258      DPB: IDPB;
259 +    S: TStrings;
260 +    i: integer;
261   begin
262    DPB := FirebirdAPI.AllocateDPB;
263    DPB.Add(isc_dpb_user_name).setAsString(Owner.GetUserName);
264    DPB.Add(isc_dpb_password).setAsString(Owner.GetPassword);
265    DPB.Add(isc_dpb_lc_ctype).setAsString(CharSet);
266    DPB.Add(isc_dpb_set_db_SQL_dialect).setAsByte(SQLDialect);
267 +  DPB.Add(isc_dpb_config).SetAsString('WireCompression=true');
268  
269    writeln(OutFile,'Opening ',Owner.GetEmployeeDatabaseName);
270    Attachment := FirebirdAPI.OpenDatabase(Owner.GetEmployeeDatabaseName,DPB);
271    writeln(OutFile,'Database Open');
272 +  S := TStringList.Create;
273 +  try
274 +    Attachment.getFBVersion(S);
275 +    for i := 0 to S.Count -1 do
276 +      writeln(OutFile,S[i]);
277 +  finally
278 +    S.Free;
279 +  end;
280    DoQuery(Attachment);
281   end;
282  

Comparing:
ibx/trunk/fbintf/testsuite/Test4.pas (property svn:eol-style), Revision 59 by tony, Mon Mar 13 09:51:56 2017 UTC vs.
ibx/branches/udr/testsuite/Test4.pas (property svn:eol-style), Revision 379 by tony, Mon Jan 10 10:08:03 2022 UTC

# Line 0 | Line 1
1 + native

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines