diff --git a/bazaar/Firebird/Firebird.dli b/bazaar/Firebird/Firebird.dli index b81d2adf4..b2708f52f 100644 --- a/bazaar/Firebird/Firebird.dli +++ b/bazaar/Firebird/Firebird.dli @@ -297,18 +297,20 @@ isc_event_block, (ISC_UCHAR**, \ ISC_UCHAR**, \ ISC_USHORT, ...)) -FN(ISC_USHORT, \ -isc_event_block_a, (ISC_SCHAR**, \ - ISC_SCHAR**, \ - ISC_USHORT, - ISC_SCHAR**)) +// Doesn't exists anymore. +//FN(ISC_USHORT, \ +//isc_event_block_a, (ISC_SCHAR**, \ +// ISC_SCHAR**, \ +// ISC_USHORT, +// ISC_SCHAR**)) -FN(void, \ -isc_event_block_s, (ISC_SCHAR**, \ - ISC_SCHAR**, \ - ISC_USHORT, \ - ISC_SCHAR**, \ - ISC_USHORT*)) +// Doesn't exists anymore. +//FN(void, \ +//isc_event_block_s, (ISC_SCHAR**, \ +// ISC_SCHAR**, \ +// ISC_USHORT, \ +// ISC_SCHAR**, \ +// ISC_USHORT*)) FN(void, \ isc_event_counts, (ISC_ULONG*, \ @@ -794,9 +796,10 @@ isc_embed_dsql_fetch_a, (ISC_STATUS*, \ ISC_USHORT, \ XSQLDA*)) -FN(void, \ -isc_embed_dsql_length, (const ISC_UCHAR*, \ - ISC_USHORT*)) +// Doesn't exists anymore. +//FN(void, \ +//isc_embed_dsql_length, (const ISC_UCHAR*, \ +// ISC_USHORT*)) FN(ISC_STATUS , \ isc_embed_dsql_open, (ISC_STATUS*, \ @@ -937,12 +940,14 @@ void*)) FN(ISC_LONG, \ isc_reset_fpe, (ISC_USHORT)) -FN(uintptr_t, \ -isc_baddress, (ISC_SCHAR*)) +// Doesn't exists anymore. +//FN(uintptr_t, \ +//isc_baddress, (ISC_SCHAR*)) -FN(void, \ -isc_baddress_s, (const ISC_SCHAR*, \ - uintptr_t*)) +// Doesn't exists anymore. +//FN(void, \ +//isc_baddress_s, (const ISC_SCHAR*, \ +// uintptr_t*)) /*****************************************/ /* Service manager functions */ diff --git a/bazaar/Firebird/fb.cpp b/bazaar/Firebird/fb.cpp index 3ae3a78ad..af6efde4f 100644 --- a/bazaar/Firebird/fb.cpp +++ b/bazaar/Firebird/fb.cpp @@ -10,7 +10,7 @@ #define DLLFILENAME "fbclient.dll" #define DLLCALL __stdcall #else - #define DLLFILENAME "fbclient.so" + #define DLLFILENAME "libfbclient.so" #endif #define DLIMODULE FB #define DLIHEADER diff --git a/bazaar/Firebird/fb.h b/bazaar/Firebird/fb.h index 7822db4a9..dc074c512 100644 --- a/bazaar/Firebird/fb.h +++ b/bazaar/Firebird/fb.h @@ -14,7 +14,7 @@ #define DLLFILENAME "fbclient.dll" #define DLLCALL __stdcall #else - #define DLLFILENAME "fbclient.so" + #define DLLFILENAME "libfbclient.so" #endif #define DLIMODULE FB #define DLIHEADER diff --git a/bazaar/FirebirdTest/FirebirdTest.cpp b/bazaar/FirebirdTest/FirebirdTest.cpp index 3bea18c29..a0ebbfc2c 100644 --- a/bazaar/FirebirdTest/FirebirdTest.cpp +++ b/bazaar/FirebirdTest/FirebirdTest.cpp @@ -11,7 +11,7 @@ void TestInt(FBSession& s, const String& field_type) "DROP TABLE test_long_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_long_table( \n" @@ -26,7 +26,7 @@ void TestInt(FBSession& s, const String& field_type) " INSERT INTO test_long_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -39,11 +39,11 @@ void TestInt(FBSession& s, const String& field_type) " SET TRANSACTION WAIT ISOLATION LEVEL READ COMMITTED" ); stmt.Run(); - + int _0 = -1; int _1 = -1; int _2 = -1; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -52,7 +52,7 @@ void TestInt(FBSession& s, const String& field_type) stmt.SetStatement( " SELECT * FROM test_long_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -87,7 +87,7 @@ void TestInt(FBSession& s, const String& field_type) " SELECT * FROM test_long_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -106,7 +106,7 @@ void TestInt(FBSession& s, const String& field_type) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -134,7 +134,7 @@ void TestInt(FBSession& s, const String& field_type) " INSERT INTO test_long_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -147,16 +147,16 @@ void TestInt(FBSession& s, const String& field_type) } stmt.RunX(); } - + // Run SELECT. i = 0; const Value vNull(Null); - + stmt.SetStatement( " SELECT * FROM test_long_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); @@ -181,7 +181,7 @@ void TestString(FBSession& s) "DROP TABLE test_str_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_str_table( \n" @@ -196,7 +196,7 @@ void TestString(FBSession& s) " INSERT INTO test_str_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -208,7 +208,7 @@ void TestString(FBSession& s) int _0 = -1; String _1; String _2; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -217,7 +217,7 @@ void TestString(FBSession& s) stmt.SetStatement( " SELECT * FROM test_str_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -252,7 +252,7 @@ void TestString(FBSession& s) " SELECT * FROM test_str_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -271,7 +271,7 @@ void TestString(FBSession& s) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -299,7 +299,7 @@ void TestString(FBSession& s) " INSERT INTO test_str_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -312,16 +312,16 @@ void TestString(FBSession& s) } stmt.RunX(); } - + // Run SELECT. i = 0; const Value vNull(Null); - + stmt.SetStatement( " SELECT * FROM test_str_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); @@ -346,7 +346,7 @@ void TestBlob(FBSession& s) "DROP TABLE test_blob_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_blob_table( \n" @@ -361,7 +361,7 @@ void TestBlob(FBSession& s) " INSERT INTO test_blob_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -373,7 +373,7 @@ void TestBlob(FBSession& s) int _0 = -1; String _1; String _2; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -382,7 +382,7 @@ void TestBlob(FBSession& s) stmt.SetStatement( " SELECT * FROM test_blob_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -417,7 +417,7 @@ void TestBlob(FBSession& s) " SELECT * FROM test_blob_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -436,7 +436,7 @@ void TestBlob(FBSession& s) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -464,7 +464,7 @@ void TestBlob(FBSession& s) " INSERT INTO test_blob_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -477,16 +477,16 @@ void TestBlob(FBSession& s) } stmt.RunX(); } - + // Run SELECT. i = 0; const Value vNull(Null); - + stmt.SetStatement( " SELECT * FROM test_blob_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); @@ -517,7 +517,7 @@ void TestDouble(FBSession& s, const String& field_type) "DROP TABLE test_double_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_double_table( \n" @@ -532,7 +532,7 @@ void TestDouble(FBSession& s, const String& field_type) " INSERT INTO test_double_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -544,7 +544,7 @@ void TestDouble(FBSession& s, const String& field_type) int _0 = -1; double _1 = -1.0; double _2 = -1.0; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -553,7 +553,7 @@ void TestDouble(FBSession& s, const String& field_type) stmt.SetStatement( " SELECT * FROM test_double_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -588,7 +588,7 @@ void TestDouble(FBSession& s, const String& field_type) " SELECT * FROM test_double_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -607,7 +607,7 @@ void TestDouble(FBSession& s, const String& field_type) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -635,7 +635,7 @@ void TestDouble(FBSession& s, const String& field_type) " INSERT INTO test_double_table \n" " VALUES(?, ?, ?)" ); - + const Value vNull(Null); for (i = 0; i < 100; ++i) { @@ -649,15 +649,15 @@ void TestDouble(FBSession& s, const String& field_type) } stmt.RunX(); } - + // Run SELECT. i = 0; - + stmt.SetStatement( " SELECT * FROM test_double_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); @@ -682,7 +682,7 @@ void TestDatetime(FBSession& s) "DROP TABLE test_datetime_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_datetime_table( \n" @@ -697,7 +697,7 @@ void TestDatetime(FBSession& s) " INSERT INTO test_datetime_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -709,7 +709,7 @@ void TestDatetime(FBSession& s) int _0 = -1; Time _1; Time _2; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -718,7 +718,7 @@ void TestDatetime(FBSession& s) stmt.SetStatement( " SELECT * FROM test_datetime_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -753,7 +753,7 @@ void TestDatetime(FBSession& s) " SELECT * FROM test_datetime_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -772,7 +772,7 @@ void TestDatetime(FBSession& s) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -800,7 +800,7 @@ void TestDatetime(FBSession& s) " INSERT INTO test_datetime_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -813,16 +813,16 @@ void TestDatetime(FBSession& s) } stmt.RunX(); } - + // Run SELECT. i = 0; const Value vNull(Null); - + stmt.SetStatement( " SELECT * FROM test_datetime_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); @@ -847,7 +847,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) "DROP TABLE test_bool_table" ); stmt.Run(); - + // Data definition statement. stmt.SetStatement( " CREATE TABLE test_bool_table( \n" @@ -862,7 +862,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) " INSERT INTO test_bool_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -874,7 +874,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) int _0 = -1; bool _1 = false; bool _2 = false; - + Ref r0(_0); Ref r1(_1); Ref r2(_2); @@ -883,7 +883,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) stmt.SetStatement( " SELECT * FROM test_bool_table ORDER BY id" ); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -921,7 +921,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) " SELECT * FROM test_bool_table WHERE id < ? ORDER BY id" ); stmt.SetParam(0, 50); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -940,7 +940,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) // Rerun SELECT with parameters. stmt.SetParam(0, 25); - + stmt.Run(); i = 0; while (stmt.Fetch()) @@ -968,7 +968,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) " INSERT INTO test_bool_table \n" " VALUES(?, ?, ?)" ); - + for (i = 0; i < 100; ++i) { stmt.SetParam(0, i); @@ -981,20 +981,20 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) } stmt.RunX(); } - + // Run SELECT. i = 0; const Value vNull(Null); - + stmt.SetStatement( " SELECT * FROM test_bool_table ORDER BY id" ); stmt.Run(); - + while (stmt.Fetch()) { ASSERT(stmt[0] == i); - + if (str_type) { if (i % 2 == 0) { @@ -1024,7 +1024,7 @@ void TestBool(FBSession& s, const String& field_type, bool str_type = false) class Exec : public StatementExecutor { public: virtual bool Execute(const String& stmt) { - Cout() << stmt << EOL; + Cout() << stmt << EOL; return true; } }; @@ -1032,247 +1032,252 @@ public: CONSOLE_APP_MAIN { const Vector& cmd_line = CommandLine(); - if (cmd_line.GetCount() > 1 && FileExists(cmd_line[0]) && FileExists(cmd_line[1])) - { - FBSession s; - s.Connect( - cmd_line[1], - NULL, - "SYSDBA", - "masterkey", - cmd_line[0] - ); + if (cmd_line.GetCount() > 1 && FileExists(cmd_line[0]) && FileExists(cmd_line[1])) { + try { + FBSession s; + s.Connect( + cmd_line[1], + NULL, + "SYSDBA", + "masterkey", + cmd_line[0] + ); #if 0 - const char* script; - RunScript runscript = s.GetRunScript(); - Exec exec; - - script = - " /* comment */" - ; - - script = - " /* comment 01 */ \n" - " /* comment 02 */" - ; + const char* script; + RunScript runscript = s.GetRunScript(); + Exec exec; - script = - " /* SELECT rdb$type_name, rdb$type FROM rdb$types */" - ; + script = + " /* comment */" + ; - script = - " -- comment 01 \n" - " -- comment 02 " - ; + script = + " /* comment 01 */ \n" + " /* comment 02 */" + ; - script = - " 'string' " - ; + script = + " /* SELECT rdb$type_name, rdb$type FROM rdb$types */" + ; - script = - "'s''t''r'''" - ; + script = + " -- comment 01 \n" + " -- comment 02 " + ; - script = - " DROP PROCEDURE test_procedure_01;" - ; + script = + " 'string' " + ; - script = - " CREATE OR ALTER PROCEDURE test_procedure_01 (in_param integer) returns (out_param integer) \n" - " as begin out_param = in_param + 1; end; \n" - ; + script = + "'s''t''r'''" + ; - script = - " CREATE OR ALTER PROCEDURE test_procedure_01 (in_param integer) returns (out_param integer) \n" - " as begin out_param = in_param + 1; end; \n" - " DROP PROCEDURE test_procedure_01;" - ; + script = + " DROP PROCEDURE test_procedure_01;" + ; - script = - "/* Display an org-chart. \n" - "* \n" - "* Parameters: \n" - "* -- \n" - "* Returns: \n" - "* parent department \n" - "* department name \n" - "* department manager \n" - "* manager’s job title \n" - "* number of employees in the department */ \n" - "CREATE PROCEDURE ORG_CHART \n" - " RETURNS (HEAD_DEPT CHAR(25), DEPARTMENT CHAR(25), \n" - " MNGR_NAME CHAR(20), TITLE CHAR(5), EMP_CNT INTEGER) \n" - " AS \n" - " DECLARE VARIABLE mngr_no INTEGER; \n" - " DECLARE VARIABLE dno CHAR(3); \n" - " BEGIN \n" - " FOR SELECT H.DEPARTMENT, D.DEPARTMENT, D.MNGR_NO, D.DEPT_NO \n" - " FROM DEPARTMENT D \n" - " LEFT OUTER JOIN DEPARTMENT H ON D.HEAD_DEPT = H.DEPT_NO \n" - " ORDER BY D.DEPT_NO \n" - " INTO :head_dept, :department, :mngr_no, :dno \n" - " DO \n" - " BEGIN \n" - " IF (:mngr_no IS NULL) THEN \n" - " BEGIN \n" - " MNGR_NAME = '--TBH--'; \n" - " TITLE = ''; \n" - " END \n" - " ELSE \n" - " SELECT FULL_NAME, JOB_CODE \n" - " FROM EMPLOYEE \n" - " WHERE EMP_NO = :mngr_no \n" - " INTO :mngr_name, :title; \n" - " SELECT COUNT(EMP_NO) \n" - " FROM EMPLOYEE \n" - " WHERE DEPT_NO = :dno \n" - " INTO :emp_cnt; \n" - " SUSPEND; \n" - " END \n" - " END; "; + script = + " CREATE OR ALTER PROCEDURE test_procedure_01 (in_param integer) returns (out_param integer) \n" + " as begin out_param = in_param + 1; end; \n" + ; - script = - "SET TERM !! ; \n" - "SET TERM ; !! \n" - ; + script = + " CREATE OR ALTER PROCEDURE test_procedure_01 (in_param integer) returns (out_param integer) \n" + " as begin out_param = in_param + 1; end; \n" + " DROP PROCEDURE test_procedure_01;" + ; - script = - "SET TERM !! ; \n" - "CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE \n" - " AFTER UPDATE AS \n" - " BEGIN \n" - " IF (OLD.SALARY <> NEW.SALARY) THEN \n" - " INSERT INTO SALARY_HISTORY \n" - " (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) \n" - " VALUES (OLD.EMP_NO, ’now’, USER,OLD.SALARY, \n" - " (NEW.SALARY - OLD.SALARY) * 100 / OLD.SALARY); \n" - " END !! \n" - "SET TERM ; !!" - ; + script = + "/* Display an org-chart. \n" + "* \n" + "* Parameters: \n" + "* -- \n" + "* Returns: \n" + "* parent department \n" + "* department name \n" + "* department manager \n" + "* manager’s job title \n" + "* number of employees in the department */ \n" + "CREATE PROCEDURE ORG_CHART \n" + " RETURNS (HEAD_DEPT CHAR(25), DEPARTMENT CHAR(25), \n" + " MNGR_NAME CHAR(20), TITLE CHAR(5), EMP_CNT INTEGER) \n" + " AS \n" + " DECLARE VARIABLE mngr_no INTEGER; \n" + " DECLARE VARIABLE dno CHAR(3); \n" + " BEGIN \n" + " FOR SELECT H.DEPARTMENT, D.DEPARTMENT, D.MNGR_NO, D.DEPT_NO \n" + " FROM DEPARTMENT D \n" + " LEFT OUTER JOIN DEPARTMENT H ON D.HEAD_DEPT = H.DEPT_NO \n" + " ORDER BY D.DEPT_NO \n" + " INTO :head_dept, :department, :mngr_no, :dno \n" + " DO \n" + " BEGIN \n" + " IF (:mngr_no IS NULL) THEN \n" + " BEGIN \n" + " MNGR_NAME = '--TBH--'; \n" + " TITLE = ''; \n" + " END \n" + " ELSE \n" + " SELECT FULL_NAME, JOB_CODE \n" + " FROM EMPLOYEE \n" + " WHERE EMP_NO = :mngr_no \n" + " INTO :mngr_name, :title; \n" + " SELECT COUNT(EMP_NO) \n" + " FROM EMPLOYEE \n" + " WHERE DEPT_NO = :dno \n" + " INTO :emp_cnt; \n" + " SUSPEND; \n" + " END \n" + " END; "; - (*runscript)(script, exec, CNULL); + script = + "SET TERM !! ; \n" + "SET TERM ; !! \n" + ; + + script = + "SET TERM !! ; \n" + "CREATE TRIGGER SAVE_SALARY_CHANGE FOR EMPLOYEE \n" + " AFTER UPDATE AS \n" + " BEGIN \n" + " IF (OLD.SALARY <> NEW.SALARY) THEN \n" + " INSERT INTO SALARY_HISTORY \n" + " (EMP_NO, CHANGE_DATE, UPDATER_ID, OLD_SALARY, PERCENT_CHANGE) \n" + " VALUES (OLD.EMP_NO, ’now’, USER,OLD.SALARY, \n" + " (NEW.SALARY - OLD.SALARY) * 100 / OLD.SALARY); \n" + " END !! \n" + "SET TERM ; !!" + ; + + (*runscript)(script, exec, CNULL); #endif - Sql sql(s); - + Sql sql(s); + #if 1 - TRANSACTION(sql) { - } - - TestBool(s, "bigint"); - TRANSACTION(s) { + TRANSACTION(sql) { + } + TestBool(s, "bigint"); - } + TRANSACTION(s) { + TestBool(s, "bigint"); + } - TestBool(s, "integer"); - TRANSACTION(s) { TestBool(s, "integer"); - } + TRANSACTION(s) { + TestBool(s, "integer"); + } - TestBool(s, "numeric(1)"); - TRANSACTION(s) { TestBool(s, "numeric(1)"); - } - - TestBool(s, "double precision"); - TRANSACTION(s) { + TRANSACTION(s) { + TestBool(s, "numeric(1)"); + } + TestBool(s, "double precision"); - } - - TestBool(s, "varchar(1)", true); - TRANSACTION(s) { + TRANSACTION(s) { + TestBool(s, "double precision"); + } + TestBool(s, "varchar(1)", true); - } - - TestBool(s, "char(1)", true); - TRANSACTION(s) { + TRANSACTION(s) { + TestBool(s, "varchar(1)", true); + } + TestBool(s, "char(1)", true); - } + TRANSACTION(s) { + TestBool(s, "char(1)", true); + } - TestInt(s, "INTEGER"); - TRANSACTION(s) { TestInt(s, "INTEGER"); - } - - TestInt(s, "SMALLINT"); - TRANSACTION(s) { + TRANSACTION(s) { + TestInt(s, "INTEGER"); + } + TestInt(s, "SMALLINT"); - } - - TestString(s); - TRANSACTION(s) { + TRANSACTION(s) { + TestInt(s, "SMALLINT"); + } + TestString(s); - } - - TestDouble(s, "DOUBLE PRECISION"); - TRANSACTION(s) { + TRANSACTION(s) { + TestString(s); + } + TestDouble(s, "DOUBLE PRECISION"); - } + TRANSACTION(s) { + TestDouble(s, "DOUBLE PRECISION"); + } - TestDouble(s, "FLOAT"); - TRANSACTION(s) { TestDouble(s, "FLOAT"); - } + TRANSACTION(s) { + TestDouble(s, "FLOAT"); + } - TestDouble(s, "DECIMAL(18, 4)"); - TRANSACTION(s) { TestDouble(s, "DECIMAL(18, 4)"); - } + TRANSACTION(s) { + TestDouble(s, "DECIMAL(18, 4)"); + } - TestDouble(s, "NUMERIC(18, 4)"); - TRANSACTION(s) { TestDouble(s, "NUMERIC(18, 4)"); - } + TRANSACTION(s) { + TestDouble(s, "NUMERIC(18, 4)"); + } - TestDatetime(s); - TRANSACTION(s) { TestDatetime(s); - } - - TestBlob(s); - TRANSACTION(s) { + TRANSACTION(s) { + TestDatetime(s); + } + TestBlob(s); - } + TRANSACTION(s) { + TestBlob(s); + } #endif #if 0 - // Should be tested against examples\empbuild\EMPLOYEE.FDB - FBSequence seq("CUST_NO_GEN", s); - Value seq_v = seq.Get(); - int seq_i = seq_v; - - Cout() << "Users:" << EOL; - Vector users = s.EnumUsers(); - for(int i = 0; i < users.GetCount(); ++i) - Cout() << users[i] << EOL; + // Should be tested against examples\empbuild\EMPLOYEE.FDB + FBSequence seq("CUST_NO_GEN", s); + Value seq_v = seq.Get(); + int seq_i = seq_v; - Cout() << "Views:" << EOL; - Vector views = s.EnumViews(""); - for(int i = 0; i < views.GetCount(); ++i) - Cout() << views[i] << EOL; + Cout() << "Users:" << EOL; + Vector users = s.EnumUsers(); + for(int i = 0; i < users.GetCount(); ++i) + Cout() << users[i] << EOL; - Cout() << "Tables:" << EOL; - Vector tables = s.EnumTables(""); - for(int i = 0; i < tables.GetCount(); ++i) - Cout() << tables[i] << EOL; + Cout() << "Views:" << EOL; + Vector views = s.EnumViews(""); + for(int i = 0; i < views.GetCount(); ++i) + Cout() << views[i] << EOL; - Cout() << "Sequences:" << EOL; - Vector sequences = s.EnumSequences(""); - for(int i = 0; i < sequences.GetCount(); ++i) - Cout() << sequences[i] << EOL; + Cout() << "Tables:" << EOL; + Vector tables = s.EnumTables(""); + for(int i = 0; i < tables.GetCount(); ++i) + Cout() << tables[i] << EOL; - Cout() << "PrimaryKey:" << EOL; - Vector pk_cols = s.EnumPrimaryKey("", "JOB"); - for(int i = 0; i < pk_cols.GetCount(); ++i) - Cout() << pk_cols[i] << EOL; + Cout() << "Sequences:" << EOL; + Vector sequences = s.EnumSequences(""); + for(int i = 0; i < sequences.GetCount(); ++i) + Cout() << sequences[i] << EOL; - Cout() << "Columns:" << EOL; - Vector cols = s.EnumColumns("", "JOB"); - for(int i = 0; i < cols.GetCount(); ++i) - Cout() << cols[i].name << EOL; + Cout() << "PrimaryKey:" << EOL; + Vector pk_cols = s.EnumPrimaryKey("", "JOB"); + for(int i = 0; i < pk_cols.GetCount(); ++i) + Cout() << pk_cols[i] << EOL; + + Cout() << "Columns:" << EOL; + Vector cols = s.EnumColumns("", "JOB"); + for(int i = 0; i < cols.GetCount(); ++i) + Cout() << cols[i].name << EOL; #endif + } + catch (const ibpp::DbExc& e) { + Cerr() << "FAILED: " << e << EOL; + RDUMP(e); + } } }