Browse Source

* added test from Mantis #19645

git-svn-id: trunk@19217 -
marco 14 years ago
parent
commit
ecaa86d582
2 changed files with 75 additions and 0 deletions
  1. 1 0
      .gitattributes
  2. 74 0
      packages/fcl-db/tests/test100params.pp

+ 1 - 0
.gitattributes

@@ -1993,6 +1993,7 @@ packages/fcl-db/tests/sqldbtoolsunit.pas svneol=native#text/plain
 packages/fcl-db/tests/tcgensql.pas svneol=native#text/plain
 packages/fcl-db/tests/tcparser.pas svneol=native#text/plain
 packages/fcl-db/tests/tcsqlscanner.pas svneol=native#text/plain
+packages/fcl-db/tests/test100params.pp svneol=native#text/plain
 packages/fcl-db/tests/testbasics.pas svneol=native#text/plain
 packages/fcl-db/tests/testbufdatasetstreams.pas svneol=native#text/plain
 packages/fcl-db/tests/testdatasources.pas svneol=native#text/plain

+ 74 - 0
packages/fcl-db/tests/test100params.pp

@@ -0,0 +1,74 @@
+program test100params;
+
+{$mode objfpc}{$H+}
+
+uses
+  {$IFDEF UNIX}{$IFDEF UseCThreads}
+  cthreads,
+  {$ENDIF}{$ENDIF}
+  Classes, SysUtils,
+  db, sqldb, pqconnection;
+
+var
+  Conn: TPQConnection;
+  Tran: TSQLTransaction;
+  Q: TSQLQuery;
+
+  sql: string;
+  i: integer;
+
+begin
+  Conn:=TPQConnection.Create(nil);
+  Conn.HostName:='localhost';
+  Conn.DatabaseName:='postgres';
+  Conn.UserName:='postgres';
+  Conn.Password:='postgres';
+
+  Tran:=TSQLTransaction.Create(nil);
+  Tran.DataBase:=Conn;
+
+  Q:=TSQLQuery.Create(nil);
+  Q.DataBase:=Conn;
+
+  Conn.Open;
+  writeln('Connected');
+
+  sql:='';
+  for i:=1 to 101 do
+  begin
+    if sql<>'' then sql:=sql+',';
+    sql:=sql+format('f%d integer', [i]);
+  end;
+  Conn.ExecuteDirect(format('CREATE TEMPORARY TABLE t (%s)', [sql]));
+  writeln('Table created');
+
+  sql:='';
+  for i:=1 to 101 do
+  begin
+    if sql<>'' then sql:=sql+',';
+    sql:=sql+format(':f%d', [i]);
+  end;
+  Q.SQL.Text:=format('INSERT INTO t VALUES(%s)', [sql]);
+  for i:=1 to 101 do
+  begin
+    Q.ParamByName('f'+inttostr(i)).AsInteger:=i;
+  end;
+  Q.ExecSQL;
+
+  Q.SQL.Text:='SELECT * FROM t';
+  Q.Open;
+  for i:=90 to 101 do
+    writeln(Q.FieldByName('f'+inttostr(i)).AsInteger, ',');
+  Q.Close;
+
+  //END
+  Tran.Commit;
+  Conn.Close;
+
+  Q.Free;
+  Tran.Free;
+  Conn.Free;
+  writeln('End. Press any key');
+  readln;
+end.
+