Hi,
I've been having a few problems inserting date time fields into M$ SQL 7, from a client system running Compaq Tru64 unix 4.0, via Openlink's ODBC drivers. I'm sure that I had got things working OK however now whenever I try and insert into a date time field, undef gets written away. So I'm now trying to reinstall DBD-ODBC-0.41 to make sure everything is as it should be and am seeing the following warnings from make and results from make test... These results appear to show that there will be problems with binding to date time fields, but is this as a result of the warnings coming from the make, or the ODBC drivers themselves ? Taking a look at Makefile.PL, there is some mention of problems with ptrmismatch, but I can't find details of how to fix it... If anyone could point me in the right direction here I would be very appreciative. Regards, Rob Leadbeater # make realclean rm -rf ODBC.c ODBC.xsi dbdodbc.h ./blib Makefile.aperl blib/arch/auto/DBD/ODBC/p mv Makefile Makefile.old > /dev/null 2>&1 rm -rf blib/lib/auto/DBD/ODBC blib/arch/auto/DBD/ODBC rm -f blib/arch/auto/DBD/ODBC/ODBC.so blib/arch/auto/DBD/ODBC/ODBC.bs rm -f blib/arch/auto/DBD/ODBC/ODBC.a rm -f blib/lib/DBD/ODBC.pm rm -rf Makefile Makefile.old # # perl Makefile.PL Configuring DBD::ODBC ... >>> Remember to actually *READ* the README file! And re-read it if you have any problems. Using DBI 1.21 installed in /usr/local/lib/perl5/site_perl/5.6.0/alpha-dec_osf/I Using ODBC in /usr/odbc/odbcsdk Umm, this looks like a iodbc type of driver manager. We expect to find the isql.h, isqlext.h and iodbc.h files (which were supplied with iODBC) in $ODBCHOME/include directory alongside the /usr/odbc/odbcsdk/lib/libiodbc.a /usr/odbc/odbcsdk/lib/libiodbc.so library. Checking if your kit is complete... Looks good Using DBI 1.21 installed in /usr/local/lib/perl5/site_perl/5.6.0/alpha-dec_osf/I Writing Makefile for DBD::ODBC The DBD::ODBC tests will use these values for the database connection: DBI_DSN=dbi:ODBC:IMGSRV02 e.g. dbi:ODBC:demo DBI_USER=sa DBI_PASS= Warning: not all required environment variables are set. # # make mkdir blib mkdir blib/lib mkdir blib/lib/DBD mkdir blib/arch mkdir blib/arch/auto mkdir blib/arch/auto/DBD mkdir blib/arch/auto/DBD/ODBC mkdir blib/lib/auto mkdir blib/lib/auto/DBD mkdir blib/lib/auto/DBD/ODBC mkdir blib/man3 cp ODBC.pm blib/lib/DBD/ODBC.pm /bin/perl -p -e "s/~DRIVER~/ODBC/g" < /usr/local/lib/perl5/site_perl/5.6.0/alpha -dec_osf/auto/DBI/Driver.xst > ODBC.xsi /bin/perl -I/usr/local/lib/perl5/5.6.0/alpha-dec_osf -I/usr/local/lib/perl5/5.6. 0 /usr/local/lib/perl5/5.6.0/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.6. 0/ExtUtils/typemap ODBC.xs > ODBC.xsc && mv ODBC.xsc ODBC.c cc -c -I. -I/usr/local/lib/perl5/site_perl/5.6.0/alpha-dec_osf/auto/DBI -std -fp rm d -ieee -D_INTRINSICS -DLANGUAGE_C -O4 -DVERSION=\"0.41\" -DXS_VERSION= \"0.41\" -I/usr/local/lib/perl5/5.6.0/alpha-dec_osf/CORE -I/usr/odbc/odbcsdk/in clude ODBC.c cc: Warning: ODBC.xs, line 222: In this statement, the referenced type of the po inter value "dsn" is "unsigned char", which is not compatible with "char" becaus e they differ by signed/unsigned attribute. (ptrmismatch1) strcpy(dsn, "DBI:ODBC:"); ---------------^ cc: Warning: ODBC.xs, line 242: In this statement, the referenced type of the po inter value "dsn" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) ST(numDataSources++) = newSVpv(dsn, dsn_length+9 /* strlen("dbi:ODBC :") */ ); -------------------------------------------^ cc -c -I. -I/usr/local/lib/perl5/site_perl/5.6.0/alpha-dec_osf/auto/DBI -std -fp rm d -ieee -D_INTRINSICS -DLANGUAGE_C -O4 -DVERSION=\"0.41\" -DXS_VERSION= \"0.41\" -I/usr/local/lib/perl5/5.6.0/alpha-dec_osf/CORE -I/usr/odbc/odbcsdk/in clude dbdimp.c cc: Warning: dbdimp.c, line 252: In this statement, the referenced type of the p ointer value "dbname" is "char", which is not compatible with "unsigned char" be cause they differ by signed/unsigned attribute. (ptrmismatch1) dbname, --------------------------^ cc: Warning: dbdimp.c, line 254: In this statement, the referenced type of the p ointer value "szConnStrOut" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) szConnStrOut, --------------------------^ cc: Warning: dbdimp.c, line 319: In this statement, the referenced type of the p ointer value "dbname" is "char", which is not compatible with "unsigned char" be cause they differ by signed/unsigned attribute. (ptrmismatch1) dbname, (SQLSMALLINT)strlen(dbname), ------------------------^ cc: Warning: dbdimp.c, line 320: In this statement, the referenced type of the p ointer value "uid" is "char", which is not compatible with "unsigned char" becau se they differ by signed/unsigned attribute. (ptrmismatch1) uid, (SQLSMALLINT)strlen(uid), ------------------------^ cc: Warning: dbdimp.c, line 321: In this statement, the referenced type of the p ointer value "pwd" is "char", which is not compatible with "unsigned char" becau se they differ by signed/unsigned attribute. (ptrmismatch1) pwd, (SQLSMALLINT)strlen(pwd)); ------------------------^ cc: Warning: dbdimp.c, line 464: In the definition of the function "dbd_error2", the promoted type of err_rc is incompatible with the type of the corresponding parameter in a prior declaration. (promotmatchw) RETCODE err_rc; --------^ cc: Warning: dbdimp.c, line 496: In this statement, the referenced type of the p ointer value "sqlstate" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) sv_setpvn(DBIc_STATE(imp_xxh), sqlstate, 5); ----------------------------------------^ cc: Warning: dbdimp.c, line 501: In this statement, the referenced type of the p ointer value "sqlstate" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) sv_setpv(DBIc_ERR(imp_xxh), sqlstate); ----------------------------------------^ cc: Warning: dbdimp.c, line 503: In this statement, the referenced type of the p ointer value "ErrorMsg" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) sv_catpvn(errstr, ErrorMsg, ErrorMsgLen); ---------------------------^ cc: Warning: dbdimp.c, line 505: In this statement, the referenced type of the p ointer value "sqlstate" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) sv_catpv(errstr, sqlstate); --------------------------^ cc: Warning: dbdimp.c, line 511: In this statement, the referenced type of the p ointer value "sqlstate" is "unsigned char", which is not compatible with "const char" because they differ by signed/unsigned attribute. (ptrmismatch1) if (what && !strcmp(sqlstate, "25000") && !strcmp(what, "db_disconnect/ SQLDisconnect")) { -----------------------------^ cc: Warning: dbdimp.c, line 560: In the definition of the function "odbc_error", the promoted type of err_rc is incompatible with the type of the corresponding parameter in a prior declaration. (promotmatchw) RETCODE err_rc; --------^ cc: Warning: dbdimp.c, line 756: In this statement, the referenced type of the p ointer value "(catalog&&*catalog)?catalog:0" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmisma tch1) (catalog && *catalog) ? catalog : 0, SQL_NTS, -------------------^ cc: Warning: dbdimp.c, line 757: In this statement, the referenced type of the p ointer value "(schema&&*schema)?schema:0" is "char", which is not compatible wit h "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch 1) (schema && *schema) ? schema : 0, SQL_NTS, -------------------^ cc: Warning: dbdimp.c, line 758: In this statement, the referenced type of the p ointer value "(table&&*table)?table:0" is "char", which is not compatible with " unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) (table && *table) ? table : 0, SQL_NTS, -------------------^ cc: Warning: dbdimp.c, line 759: In this statement, the referenced type of the p ointer value "table_type&&*table_type?table_type:0" is "char", which is not comp atible with "unsigned char" because they differ by signed/unsigned attribute. (p trmismatch1) table_type && *table_type ? table_type : 0, SQL_NTS /* type (view, table, etc) */ -------------------^ cc: Warning: dbdimp.c, line 811: In this statement, the referenced type of the p ointer value "(catalog&&*catalog)?catalog:0" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmisma tch1) (catalog && *catalog) ? catalog : 0, SQL_NTS, -----------------------^ cc: Warning: dbdimp.c, line 812: In this statement, the referenced type of the p ointer value "(schema&&*schema)?schema:0" is "char", which is not compatible wit h "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch 1) (schema && *schema) ? schema : 0, SQL_NTS, -----------------------^ cc: Warning: dbdimp.c, line 813: In this statement, the referenced type of the p ointer value "(table&&*table)?table:0" is "char", which is not compatible with " unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) (table && *table) ? table : 0, SQL_NTS); -----------------------^ cc: Warning: dbdimp.c, line 859: In this statement, the referenced type of the p ointer value "imp_sth->statement" is "char", which is not compatible with "unsig ned char" because they differ by signed/unsigned attribute. (ptrmismatch1) imp_sth->statement, strlen(imp_sth->statement)); --------------------^ cc: Warning: dbdimp.c, line 1248: In this statement, the referenced type of the pointer value "(((phs->sv)->sv_flags&(0X0000000000040000))==0X0000000000040000?( (len=((XPV ...)(phs->sv)->sv_any)->xpv_cur),((XPV ....)(phs->sv)->sv_any)->xpv_pv ):Perl_sv_2pv(...))" is "char", which is not compatible with "unsigned char" bec ause they differ by signed/unsigned attribute. (ptrmismatch1) ptr = SvPV(phs->sv, len); --------^ cc: Warning: dbdimp.c, line 1656: In this declaration, "_dbd_rebind_ph" is decla red with both internal and external linkage. The previous declaration is at lin e number 1203 in file dbdimp.c. (mixlinkage) _dbd_rebind_ph(sth, imp_sth, phs, maxlen) ---^ cc: Warning: dbdimp.c, line 1865: In this statement, the referenced type of the pointer value "phs->sv_buf" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) rgbValue = phs->sv_buf; --------^ cc: Info: dbdimp.c, line 2003: In this statement, "_dbd_rebind_ph", which was de clared with an old-style function definition, expects 4 arguments, but 3 are sup plied. (toofewargso) return _dbd_rebind_ph(sth, imp_sth, phs); -----------^ cc: Warning: dbdimp.c, line 2378: In this statement, the referenced type of the pointer value "imp_sth->fbh[i].ColName" is "unsigned char", which is not compati ble with "const char" because they differ by signed/unsigned attribute. (ptrmism atch1) av_store(av, i, newSVpv(imp_sth->fbh[i].ColName, 0)); ----------------------------------------^ cc: Warning: dbdimp.c, line 2420: In this statement, the referenced type of the pointer value "cursor_name" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) cursor_name, sizeof(cursor_name), &cursor_name _len); ----------------------------------^ cc: Warning: dbdimp.c, line 2571: In this statement, the referenced type of the pointer value "CatalogName" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) CatalogName, strlen(CatalogName), -----------------------^ cc: Warning: dbdimp.c, line 2572: In this statement, the referenced type of the pointer value "SchemaName" is "char", which is not compatible with "unsigned cha r" because they differ by signed/unsigned attribute. (ptrmismatch1) SchemaName, strlen(SchemaName), -----------------------^ cc: Warning: dbdimp.c, line 2573: In this statement, the referenced type of the pointer value "TableName" is "char", which is not compatible with "unsigned char " because they differ by signed/unsigned attribute. (ptrmismatch1) TableName, strlen(TableName), -----------------------^ cc: Warning: dbdimp.c, line 2606: In this statement, the referenced type of the pointer value "CatalogName" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) CatalogName, strlen(CatalogName), ------------------------^ cc: Warning: dbdimp.c, line 2607: In this statement, the referenced type of the pointer value "SchemaName" is "char", which is not compatible with "unsigned cha r" because they differ by signed/unsigned attribute. (ptrmismatch1) SchemaName, strlen(SchemaName), ------------------------^ cc: Warning: dbdimp.c, line 2608: In this statement, the referenced type of the pointer value "TableName" is "char", which is not compatible with "unsigned char " because they differ by signed/unsigned attribute. (ptrmismatch1) TableName, strlen(TableName)); ------------------------^ cc: Warning: dbdimp.c, line 2645: In this statement, the referenced type of the pointer value "CatalogName" is "char", which is not compatible with "unsigned ch ar" because they differ by signed/unsigned attribute. (ptrmismatch1) Identifier, CatalogName, strlen(CatalogName), ---------------------------------------^ cc: Warning: dbdimp.c, line 2646: In this statement, the referenced type of the pointer value "SchemaName" is "char", which is not compatible with "unsigned cha r" because they differ by signed/unsigned attribute. (ptrmismatch1) SchemaName, strlen(SchemaName), ---------------------------^ cc: Warning: dbdimp.c, line 2647: In this statement, the referenced type of the pointer value "TableName" is "char", which is not compatible with "unsigned char " because they differ by signed/unsigned attribute. (ptrmismatch1) TableName, strlen(TableName), ---------------------------^ cc: Warning: dbdimp.c, line 2683: In this statement, the referenced type of the pointer value "PK_CatalogName" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) PK_CatalogName, strlen(PK_CatalogName), ------------------------^ cc: Warning: dbdimp.c, line 2684: In this statement, the referenced type of the pointer value "PK_SchemaName" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) PK_SchemaName, strlen(PK_SchemaName), ------------------------^ cc: Warning: dbdimp.c, line 2685: In this statement, the referenced type of the pointer value "PK_TableName" is "char", which is not compatible with "unsigned c har" because they differ by signed/unsigned attribute. (ptrmismatch1) PK_TableName, strlen(PK_TableName), ------------------------^ cc: Warning: dbdimp.c, line 2686: In this statement, the referenced type of the pointer value "FK_CatalogName" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) FK_CatalogName, strlen(FK_CatalogName), ------------------------^ cc: Warning: dbdimp.c, line 2687: In this statement, the referenced type of the pointer value "FK_SchemaName" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) FK_SchemaName, strlen(FK_SchemaName), ------------------------^ cc: Warning: dbdimp.c, line 2688: In this statement, the referenced type of the pointer value "FK_TableName" is "char", which is not compatible with "unsigned c har" because they differ by signed/unsigned attribute. (ptrmismatch1) FK_TableName, strlen(FK_TableName)); ------------------------^ cc: Warning: dbdimp.c, line 2702: In the definition of the function "odbc_descri be_col", the promoted type of BufferLength is incompatible with the type of the corresponding parameter in a prior declaration. (promotmatchw) I16 BufferLength; ----^ cc: Warning: dbdimp.c, line 2712: In this statement, the referenced type of the pointer value "ColumnName" is "char", which is not compatible with "unsigned cha r" because they differ by signed/unsigned attribute. (ptrmismatch1) ColumnName, BufferLength, NameLength, ------------------------^ cc: Warning: dbdimp.c, line 2713: In this statement, the referenced type of the pointer value "ColumnSize" is "unsigned int", which is not compatible with "unsi gned long". (ptrmismatch) DataType, ColumnSize, DecimalDigits, Nullable); ----------------------------------^ cc: Warning: dbdimp.c, line 2902: In this statement, the referenced type of the pointer value "(catalog&&*catalog)?catalog:0" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmism atch1) (catalog && *catalog) ? catalog : 0, SQL_NTS, --------------------^ cc: Warning: dbdimp.c, line 2903: In this statement, the referenced type of the pointer value "(schema&&*schema)?schema:0" is "char", which is not compatible wi th "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatc h1) (schema && *schema) ? schema : 0, SQL_NTS, --------------------^ cc: Warning: dbdimp.c, line 2904: In this statement, the referenced type of the pointer value "(table&&*table)?table:0" is "char", which is not compatible with "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatch1) (table && *table) ? table : 0, SQL_NTS, --------------------^ cc: Warning: dbdimp.c, line 2905: In this statement, the referenced type of the pointer value "(column&&*column)?column:0" is "char", which is not compatible wi th "unsigned char" because they differ by signed/unsigned attribute. (ptrmismatc h1) (column && *column) ? column : 0, SQL_NTS); --------------------^ Running Mkbootstrap for DBD::ODBC () chmod 644 ODBC.bs ar cr tmp.a ODBC.o dbdimp.o : tmp.a LD_RUN_PATH="/usr/odbc/odbcsdk/lib" ld -o blib/arch/auto/DBD/ODBC/ODBC.so -shar ed -expect_unresolved "*" -O4 -msym -std -s -all tmp.a -none -L/usr/odbc/odbc sdk/lib -liodbc chmod 755 blib/arch/auto/DBD/ODBC/ODBC.so cp ODBC.bs blib/arch/auto/DBD/ODBC/ODBC.bs chmod 644 blib/arch/auto/DBD/ODBC/ODBC.bs Manifying blib/man3/DBD::ODBC.3 # make test PERL_DL_NONLAZY=1 /bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.0/ alpha-dec_osf -I/usr/local/lib/perl5/5.6.0 -e 'use Test::Harness qw(&runtests $v erbose); $verbose=0; runtests @ARGV;' t/*.t t/01base............ok t/02simple..........ok 4/17DBD::ODBC::db do failed: [OpenLink][ODBC][SQL Server] Cannot insert the value NULL into column 'COL_D', table 'Repository.dbo.P ERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: Execu te immediate failed err=-1) at t/ODBCTEST.pm line 153. t/02simple..........NOK 5DBD::ODBC::st fetchrow failed: [OpenLink][ODBC][Driver] Data was truncated (SQL-S1004)(DBD: st_fetch/SQLFetch (long truncated) err=1) at t/02simple.t line 160. t/02simple..........ok 17/17FAILED tests 5, 8, 11, 14 Failed 4/17 tests, 76.47% okay t/03dbatt...........ok t/05meth............ok t/07bind............ok 3/9DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Ser ver]Cannot insert the value NULL into column 'COL_D', table 'Repository.d bo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: s t_execute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. Test 4 is known to fail often. It is not a major concern. It *may* be an indica tion of being unable to bind datetime values correctly. t/07bind............ok 5/9DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Ser ver]Cannot insert the value NULL into column 'COL_D', table 'Repository.d bo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: s t_execute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. Since test #4 failed, this could be indicative of a problem with date time bindi ng, as per #4 above. t/07bind............ok 9/9FAILED tests 4, 6 Failed 2/9 tests, 77.78% okay t/08bind2...........DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Ca nnot insert the value NULL into column 'COL_D', table 'Repository.dbo.PER L_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st_exec ute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. These are tests which rely upon the driver to tell what the parameter type is fo r the column. This means you need to ensure you tell your driver the type of th e column in bind_col(). t/08bind2...........NOK 1DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Serv er]Cannot insert the value NULL into column 'COL_D', table 'Repository.db o.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st _execute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. t/08bind2...........NOK 2DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Serv er]Syntax error converting datetime from character string. (SQL-S1000)(DBD: st_e xecute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. t/08bind2...........NOK 3FAILED tests 1-3 Failed 3/3 tests, 0.00% okay t/09multi...........ok 1/4DBD::ODBC::db do failed: [OpenLink][ODBC][SQL Server]C annot insert the value NULL into column 'COL_D', table 'Repository.dbo.PE RL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: Execut e immediate failed err=-1) at t/ODBCTEST.pm line 153. t/09multi...........dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 2-4 Failed 3/4 tests, 25.00% okay Failed Test Status Wstat Total Fail Failed List of failed -------------------------------------------------------------------------- ----- t/02simple.t 17 4 23.53% 5, 8, 11, 14 t/07bind.t 9 2 22.22% 4, 6 t/08bind2.t 3 3 100.00% 1-3 t/09multi.t 255 65280 4 3 75.00% 2-4 Failed 4/7 test scripts, 42.86% okay. 12/50 subtests failed, 76.00% okay. *** Exit 2 Stop. # make test TEST_VERBOSE=1 PERL_DL_NONLAZY=1 /bin/perl -Iblib/arch -Iblib/lib -I/usr/local/lib/perl5/5.6.0/ alpha-dec_osf -I/usr/local/lib/perl5/5.6.0 -e 'use Test::Harness qw(&runtests $v erbose); $verbose=1; runtests @ARGV;' t/*.t t/01base............1..5 ok 1 ok 2 ok 3 ok 4 ok 5 ok t/02simple..........1..17 ok 1 Test 2: connecting to the database ok 2 Test 3: create test table Using fields: COL_A smallint, COL_B varchar(255), COL_C text, COL_D datetime ok 3 Test 4: check existance of test table (unknown owner).PERL_DBD_TEST ok 4 Test 5: insert test data DBD::ODBC::db do failed: [OpenLink][ODBC][SQL Server]Cannot insert the value NUL L into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: Execute immediate failed err=-1) at t/ODBCTEST.pm line 153. not ok 5 Test 6: select test data DBD::ODBC::st fetchrow failed: [OpenLink][ODBC][Driver]Data was truncated (SQL-S 1004)(DBD: st_fetch/SQLFetch (long truncated) err=1) at t/02simple.t line 160. ok 6 Tests 7,8: test LongTruncOk ok 7 not ok 8 Test 9: test ColAttributes Column count is: 4 1: COL_A = 5 2: COL_B = 12 3: COL_C = -1 4: COL_D = 11 ok 9 Test 10: test $DBI::err ok 10 Test 11: test date values not ok 11 Test 12: test group by queries 1, 1 2, 1 3, 1 ok 12 Test 13: test data_sources Data sources: DBI:ODBC:SRV02 DBI:ODBC:SRV03 ok 13 Test 14: test ping method not ok 14 Test 15: test storing of DBH parameter ok 15 ok 16 Test 17: test get_info connected to Microsoft SQL Server ok 17 FAILED tests 5, 8, 11, 14 Failed 4/17 tests, 76.47% okay t/03dbatt...........1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok t/05meth............1..6 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 calling finish resetting attributes disconnecting disconnected ok t/07bind............1..9 ok 1 Test 2: connecting to the database ok 2 Test 3: create test table Using fields: COL_A smallint, COL_B varchar(255), COL_C text, COL_D datetime ok 3 Test 4: insert test data Binding the value: 1 type = 5 SQL_DATE = 9 SQL_TIMESTAMP = 11 TYPE FOUND = 11 DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Cannot insert the valu e NULL into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st_execute/SQLExecute err=- 1) at t/ODBCTEST.pm line 210. Test 4 is known to fail often. It is not a major concern. It *may* be an indica tion of being unable to bind datetime values correctly. not ok 4 Test 5: select test data ok 5 Test 6: insert long test data Binding the value: 4 type = 5 SQL_DATE = 9 SQL_TIMESTAMP = 11 TYPE FOUND = 11 DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Cannot insert the valu e NULL into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st_execute/SQLExecute err=- 1) at t/ODBCTEST.pm line 210. Since test #4 failed, this could be indicative of a problem with date time bindi ng, as per #4 above. not ok 6 Test 7: check long test data ok 7 Test 8: update long test data ok 8 Test 9: check long test data ok 9 FAILED tests 4, 6 Failed 2/9 tests, 77.78% okay t/08bind2...........1..3 Test 1: insert various test data, without having this test tell the driver the type that is being bound to a column. This tests the use of SQLDescribePar am to obtain the column type on the insert. This is experimental and will most lik ely fail. SQL_DATE = 9 SQL_TIMESTAMP = 11 TYPE FOUND = 11 DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Cannot insert the valu e NULL into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st_execute/SQLExecute err=- 1) at t/ODBCTEST.pm line 210. These are tests which rely upon the driver to tell what the parameter type is fo r the column. This means you need to ensure you tell your driver the type of th e column in bind_col(). not ok 1 SQL_DATE = 9 SQL_TIMESTAMP = 11 TYPE FOUND = 11 DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Cannot insert the valu e NULL into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: st_execute/SQLExecute err=- 1) at t/ODBCTEST.pm line 210. not ok 2 SQL_DATE = 9 SQL_TIMESTAMP = 11 TYPE FOUND = 11 DBD::ODBC::st execute failed: [OpenLink][ODBC][SQL Server]Syntax error convertin g datetime from character string. (SQL-S1000)(DBD: st_execute/SQLExecute err=-1) at t/ODBCTEST.pm line 210. not ok 3 FAILED tests 1-3 Failed 3/3 tests, 0.00% okay t/09multi...........1..4 ok 1 DBD::ODBC::db do failed: [OpenLink][ODBC][SQL Server]Cannot insert the value NUL L into column 'COL_D', table 'Repository.dbo.PERL_DBD_TEST'; column does not allow nulls. INSERT fails. (SQL-S1000)(DBD: Execute immediate failed err=-1) at t/ODBCTEST.pm line 153. dubious Test returned status 255 (wstat 65280, 0xff00) DIED. FAILED tests 2-4 Failed 3/4 tests, 25.00% okay Failed Test Status Wstat Total Fail Failed List of failed -------------------------------------------------------------------------- ----- t/02simple.t 17 4 23.53% 5, 8, 11, 14 t/07bind.t 9 2 22.22% 4, 6 t/08bind2.t 3 3 100.00% 1-3 t/09multi.t 255 65280 4 3 75.00% 2-4 Failed 4/7 test scripts, 42.86% okay. 12/50 subtests failed, 76.00% okay. *** Exit 2 Stop. This message is intended only for the use of the person(s) ("The intended Recipient(s)") to whom it is addressed. It may contain information which is privileged and confidential within the meaning of applicable law. If you are not the intended recipient, please contact the sender as soon as possible. The views expressed in this communication are not necessarily those held by LYNX Express Limited.