diff --git a/packages/fcl-db/tests/database.ini.txt b/packages/fcl-db/tests/database.ini.txt index 52e57a5de2..e024523f69 100644 --- a/packages/fcl-db/tests/database.ini.txt +++ b/packages/fcl-db/tests/database.ini.txt @@ -116,10 +116,21 @@ name=test.db connector=sql connectorparams=mssql name=pubs +; If you want to use trusted authentication/SSPI, leave +; user and password blank user=sa password= hostname=127.0.0.1 +; Sybase ASE database +[sybase] +connector=sql +connectorparams=sybase +name=testdb +usser=sa +password= +hostname=127.0.0.1 + ; TDBf: DBase/FoxPro database: [dbf] connector=dbf diff --git a/packages/fcl-db/tests/sqldbtoolsunit.pas b/packages/fcl-db/tests/sqldbtoolsunit.pas index f05bb66d7c..616a433b73 100644 --- a/packages/fcl-db/tests/sqldbtoolsunit.pas +++ b/packages/fcl-db/tests/sqldbtoolsunit.pas @@ -19,11 +19,11 @@ uses ,mssqlconn ; -type TSQLDBTypes = (mysql40,mysql41,mysql50,mysql51,mysql55,postgresql,interbase,odbc,oracle,sqlite3,mssql); +type TSQLDBTypes = (mysql40,mysql41,mysql50,mysql51,mysql55,postgresql,interbase,odbc,oracle,sqlite3,mssql,sybase); const MySQLdbTypes = [mysql40,mysql41,mysql50,mysql51,mysql55]; DBTypesNames : Array [TSQLDBTypes] of String[19] = - ('MYSQL40','MYSQL41','MYSQL50','MYSQL51','MYSQL55','POSTGRESQL','INTERBASE','ODBC','ORACLE','SQLITE3','MSSQL'); + ('MYSQL40','MYSQL41','MYSQL50','MYSQL51','MYSQL55','POSTGRESQL','INTERBASE','ODBC','ORACLE','SQLITE3','MSSQL','SYBASE'); FieldtypeDefinitionsConst : Array [TFieldType] of String[20] = ( @@ -168,7 +168,8 @@ begin {$IFNDEF Win64} if SQLDbType = ORACLE then Fconnection := TOracleConnection.Create(nil); {$ENDIF Win64} - if SQLDbType = MSSQL then + if SQLDbType in [MSSQL,Sybase] then + // todo: Sybase: copied over MSSQL; verify correctness begin Fconnection := TMSSQLConnection.Create(nil); FieldtypeDefinitions[ftBoolean] := 'BIT'; @@ -194,7 +195,7 @@ begin testValues[ftDateTime,t] := copy(testValues[ftDateTime,t],1,19)+'.000'; end; end; - if SQLDbType in [postgresql,interbase,mssql] then + if SQLDbType in [postgresql,interbase,mssql,sybase] then begin // Some db's do not support times > 24:00:00 testTimeValues[3]:='13:25:15.000'; @@ -216,6 +217,7 @@ begin // SQLite does not support fixed length CHAR datatype // MySQL by default trimms trailing spaces on retrieval; so set sql-mode="PAD_CHAR_TO_FULL_LENGTH" - supported from MySQL 5.1.20 // MSSQL set SET ANSI_PADDING ON + // todo: verify Sybase behaviour if SQLDbType in [sqlite3] then for t := 0 to testValuesCount-1 do testValues[ftFixedChar,t] := PadRight(testValues[ftFixedChar,t], 10); @@ -237,6 +239,7 @@ begin if not(fileexists(dbname)) then FConnection.CreateDB; //Create testdb end; + if length(dbQuoteChars)>1 then begin FieldNameQuoteChars:=dbquotechars;