Modified:
trunk/test/my_info.c
trunk/test/my_prepare.c
trunk/test/odbctap.h
Log:
Clean up warnings in my_prepare, backport using_dm from 5.1 tree so we can
skip test in my_info that fails (correctly) with unixODBC.
Modified: trunk/test/my_info.c
===================================================================
--- trunk/test/my_info.c 2007-10-11 18:02:47 UTC (rev 816)
+++ trunk/test/my_info.c 2007-10-11 19:15:57 UTC (rev 817)
@@ -193,6 +193,14 @@
{
SQLUSMALLINT funcs[SQL_API_ODBC3_ALL_FUNCTIONS_SIZE];
+ /*
+ The DM will presumably return true for all functions that it
+ can satisfy in place of the driver. This test will only work
+ when linked directly to the driver.
+ */
+ if (using_dm(hdbc))
+ return OK;
+
memset(funcs, 0xff, sizeof(SQLUSMALLINT) * SQL_API_ODBC3_ALL_FUNCTIONS_SIZE);
ok_con(hdbc, SQLGetFunctions(hdbc, SQL_API_ODBC3_ALL_FUNCTIONS, funcs));
Modified: trunk/test/my_prepare.c
===================================================================
--- trunk/test/my_prepare.c 2007-10-11 18:02:47 UTC (rev 816)
+++ trunk/test/my_prepare.c 2007-10-11 19:15:57 UTC (rev 817)
@@ -33,11 +33,12 @@
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_basic");
- rc = SQLExecDirect(hstmt,"create table t_prep_basic(a int, b char(4))",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_basic(a int, b char(4))");
- rc = SQLPrepare(hstmt, "insert into t_prep_basic values(?,'venu')",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt,
+ SQLPrepare(hstmt,
+ (SQLCHAR *)"insert into t_prep_basic values(?,'venu')",
+ SQL_NTS));
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_LONG, SQL_INTEGER, 0, 0,
&id, 0, NULL);
mystmt(hstmt,rc);
@@ -55,11 +56,10 @@
SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
SQLFreeStmt(hstmt,SQL_CLOSE);
- rc = SQLExecDirect(hstmt,"select * from t_prep_basic",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "select * from t_prep_basic");
rc = SQLBindCol(hstmt, 1, SQL_C_LONG, &id, 0, &length1);
- mystmt(hstmt,rc);
+ mystmt(hstmt,rc);
rc = SQLBindCol(hstmt, 2, SQL_C_CHAR, name, 5, &length2);
mystmt(hstmt,rc);
@@ -90,19 +90,20 @@
/* to test buffer length */
DECLARE_TEST(t_prep_buffer_length)
{
- SQLLEN length;
- char buffer[20];
+ SQLLEN length;
+ SQLCHAR buffer[20];
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_buffer_length");
- rc = SQLExecDirect(hstmt,"create table t_prep_buffer_length(a varchar(20))",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_buffer_length(a varchar(20))");
- rc = SQLPrepare(hstmt, "insert into t_prep_buffer_length values(?)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt,
+ SQLPrepare(hstmt,
+ (SQLCHAR *)"insert into t_prep_buffer_length values(?)",
+ SQL_NTS));
- length= 0;
- strcpy(buffer,"abcdefghij");
+ length= 0;
+ strcpy((char *)buffer, "abcdefghij");
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 15, 10,
buffer, 4, &length);
mystmt(hstmt,rc);
@@ -125,7 +126,7 @@
rc = SQLExecute(hstmt);
mystmt(hstmt,rc);
- length= SQL_NTS;
+ length= SQL_NTS;
rc = SQLExecute(hstmt);
mystmt(hstmt,rc);
@@ -133,8 +134,7 @@
SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
SQLFreeStmt(hstmt,SQL_CLOSE);
- rc = SQLExecDirect(hstmt,"select * from t_prep_buffer_length",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "select * from t_prep_buffer_length");
rc = SQLBindCol(hstmt, 1, SQL_C_CHAR, buffer, 15, &length);
mystmt(hstmt,rc);
@@ -143,31 +143,36 @@
mystmt(hstmt,rc);
printMessage( "outdata: %s (%ld)\n", buffer, length);
- myassert(buffer[0] == '\0' && length == 0);
+ is_num(length, 0);
+ is_num(buffer[0], '\0');
rc = SQLFetch(hstmt);
mystmt(hstmt,rc);
printMessage("outdata: %s (%ld)\n", buffer, length);
- myassert(strcmp(buffer,"abc") == 0 && length == 3);
+ is_num(length, 3);
+ is_str(buffer, "abc", 10);
rc = SQLFetch(hstmt);
mystmt(hstmt,rc);
printMessage("outdata: %s (%ld)\n", buffer, length);
- myassert(strcmp(buffer,"abcdefghij") == 0 && length == 10);
+ is_num(length, 10);
+ is_str(buffer, "abcdefghij", 10);
rc = SQLFetch(hstmt);
mystmt(hstmt,rc);
printMessage("outdata: %s (%ld)\n", buffer, length);
- myassert(strcmp(buffer,"abcdefghi") == 0 && length == 9);
+ is_num(length, 9);
+ is_str(buffer, "abcdefghi", 9);
rc = SQLFetch(hstmt);
mystmt(hstmt,rc);
printMessage("outdata: %s (%ld)\n", buffer, length);
- myassert(strcmp(buffer,"abcdefghij") == 0 && length == 10);
+ is_num(length, 10);
+ is_str(buffer, "abcdefghij", 10);
rc = SQLFetch(hstmt);
myassert(rc == SQL_NO_DATA_FOUND);
@@ -192,13 +197,14 @@
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_truncate");
- rc = SQLExecDirect(hstmt,"create table t_prep_truncate(a int, b char(4), c
binary(4))",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_truncate(a int, b char(4), c binary(4))");
- rc = SQLPrepare(hstmt, "insert into t_prep_truncate
values(500,'venu','venu')",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt,
+ SQLPrepare(hstmt,
+ (SQLCHAR *)"insert into t_prep_truncate "
+ "values(500,'venu','venu')", SQL_NTS));
- strcpy(name,"venu");
+ strcpy((char *)name,"venu");
rc = SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 10, 10, name,
5, NULL);
mystmt(hstmt,rc);
@@ -217,8 +223,7 @@
SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
SQLFreeStmt(hstmt,SQL_CLOSE);
- rc = SQLExecDirect(hstmt,"select b,c from t_prep_truncate",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "select b,c from t_prep_truncate");
rc = SQLBindCol(hstmt, 1, SQL_C_CHAR, name, 2, &length);
mystmt(hstmt,rc);
@@ -230,13 +235,13 @@
mystmt(hstmt,rc);
printMessage("str outdata: %s(%d)\n",name,length);
- myassert(strcmp(name,"v")==0);
- myassert(length == 4);
+ is_num(length, 4);
+ is_str(bin, "v", 1);
bin[4]='M';
printMessage("bin outdata: %s(%d)\n",bin,length1);
- myassert(strncmp(bin,"venuM",5)==0);
- myassert(length == 4);
+ is_num(length, 4);
+ is_str(bin, "venuM", 5);
rc = SQLFetch(hstmt);
myassert(rc == SQL_NO_DATA_FOUND);
@@ -332,11 +337,12 @@
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_getdata");
- rc = SQLExecDirect(hstmt,"create table t_prep_getdata(a tinyint, b int, c
char(4))",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_getdata(a tinyint, b int, c char(4))");
- rc = SQLPrepare(hstmt,"insert into t_prep_getdata values(?,?,?)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt,
+ SQLPrepare(hstmt,
+ (SQLCHAR *)"insert into t_prep_getdata values(?,?,?)",
+ SQL_NTS));
rc = SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_LONG,SQL_TINYINT,
0,0,&data,0,NULL);
@@ -348,7 +354,7 @@
10,10,name,6,NULL);
mystmt(hstmt,rc);
- sprintf(name,"venu"); data = 10;
+ sprintf((char *)name,"venu"); data = 10;
rc = SQLExecute(hstmt);
mystmt(hstmt,rc);
@@ -360,7 +366,7 @@
SQLFreeStmt(hstmt,SQL_CLOSE);
data= 0;
- rc = SQLExecDirect(hstmt,"select * from t_prep_getdata",SQL_NTS);
+ ok_sql(hstmt, "select * from t_prep_getdata");
mystmt(hstmt,rc);
rc = SQLBindCol(hstmt, 1,SQL_C_TINYINT, &tiny, 0, NULL);
@@ -387,13 +393,14 @@
printMessage("record 3 : %s(%ld)\n", name, (long)length);
- myassert(strcmp(name,"venu")== 0 && length == 4);
+ is_num(length, 4);
+ is_str(name, "venu", 4);
data = 0;
rc = SQLGetData(hstmt,1,SQL_C_LONG,&data,0,NULL);
mystmt(hstmt,rc);
- printMessage("record 1 : %ld\n", data);
+ printMessage("record 1 : %ld", data);
myassert( data == 10);
rc = SQLFreeStmt(hstmt,SQL_UNBIND);
@@ -416,16 +423,13 @@
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_getdata");
- rc = SQLExecDirect(hstmt,"create table t_prep_getdata(a char(10), b int)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_getdata(a char(10), b int)");
- rc = SQLExecDirect(hstmt,"insert into t_prep_getdata
values('abcdefghij',12345)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "insert into t_prep_getdata values('abcdefghij',12345)");
- SQLFreeStmt(hstmt,SQL_CLOSE);
+ ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
- rc = SQLExecDirect(hstmt,"select * from t_prep_getdata",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "select * from t_prep_getdata");
rc = SQLFetch(hstmt);
mystmt(hstmt, rc);
@@ -435,44 +439,51 @@
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"M") == 0 && length == 10);
+ is_num(length, 10);
+ is_str(data, "M", 1);
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,4,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"abc") == 0 && length == 10);
+ is_num(length, 10);
+ is_str(data, "abc", 3);
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,4,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"def") == 0 && length == 7);
+ is_num(length, 7);
+ is_str(data, "def", 3);
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,4,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"ghi") == 0 && length == 4);
+ is_num(length, 4);
+ is_str(data, "ghi", 3);
data[0]= 'M';
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,0,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(data[0] == 'M' && length == 1);
+ is_num(length, 1);
+ is_str(data, "M", 1);
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,1,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(data[0] == '\0' && length == 1);
+ is_num(length, 1);
+ is_num(data[0], '\0');
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,2,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"j") == 0 && length == 1);
+ is_num(length, 1);
+ is_str(data, "j", 1);
rc = SQLGetData(hstmt,1,SQL_C_CHAR,data,2,&length);
myassert(rc == SQL_NO_DATA);
@@ -482,44 +493,52 @@
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"M") == 0 && length == 5);
+ is_num(length, 5);
+ is_str(data, "M", 2);
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,3,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"12") == 0 && length == 5);
+ is_num(length, 5);
+ is_str(data, "12", 2);
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,2,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"3") == 0 && length == 3);
+ is_num(length, 3);
+ is_str(data, "3", 1);
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,2,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"4") == 0 && length == 2);
+ is_num(length, 2);
+ is_str(data, "4", 1);
data[0]= 'M';
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,0,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(data[0] == 'M' && length == 1);
+ is_num(length, 1);
+ is_str(data, "M", 1);
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,1,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
myassert(data[0] == '\0' && length == 1);
+ is_num(length, 1);
+ is_num(data[0], '\0');
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,2,&length);
mystmt(hstmt,rc);
printMessage("data: %s (%ld)\n", data, length);
- myassert(strcmp(data,"5") == 0 && length == 1);
+ is_num(length, 1);
+ is_str(data, "5", 1);
rc = SQLGetData(hstmt,2,SQL_C_CHAR,data,2,&length);
myassert(rc == SQL_NO_DATA);
@@ -543,10 +562,10 @@
ok_sql(hstmt, "DROP TABLE IF EXISTS t_prep_catalog");
- rc = SQLExecDirect(hstmt,"create table t_prep_catalog(a int default 100)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_prep_catalog(a int default 100)");
- rc = SQLTables(hstmt,NULL,0,NULL,0,"t_prep_catalog",14,"TABLE",5);
+ rc = SQLTables(hstmt,NULL,0,NULL,0,(SQLCHAR *)"t_prep_catalog",14,
+ (SQLCHAR *)"TABLE",5);
mystmt(hstmt,rc);
rc = SQLFetch(hstmt);
@@ -558,7 +577,8 @@
rc = SQLGetData(hstmt,3,SQL_C_CHAR,table,15,&length);
mystmt(hstmt,rc);
- myassert(strcmp(table,"t_prep_catalog") == 0 && length == 14);
+ is_num(length, 14);
+ is_str(table, "t_prep_catalog", 14);
rc = SQLFetch(hstmt);
myassert(rc == SQL_NO_DATA);
@@ -569,7 +589,7 @@
rc = SQLFreeStmt(hstmt,SQL_CLOSE);
mystmt(hstmt,rc);
- rc = SQLColumns(hstmt,NULL,0,NULL,0,"t_prep_catalog",14,NULL,0);
+ rc = SQLColumns(hstmt,NULL,0,NULL,0,(SQLCHAR *)"t_prep_catalog",14,NULL,0);
mystmt(hstmt,rc);
rc = SQLFetch(hstmt);
@@ -586,12 +606,14 @@
rc = SQLGetData(hstmt,4,SQL_C_CHAR,table,2,&length);
mystmt(hstmt,rc);
- myassert(strcmp(table,"a") == 0 && length == 1);
+ is_num(length, 1);
+ is_str(table, "a", 1);
rc = SQLGetData(hstmt,13,SQL_C_CHAR,table,10,&length);
mystmt(hstmt,rc);
printMessage("table: %s(%d)\n", table, length);
- myassert(strcmp(table,"100") == 0 && length == 3);
+ is_num(length, 3);
+ is_str(table, "100", 3);
rc = SQLFetch(hstmt);
myassert(rc == SQL_NO_DATA);
@@ -614,28 +636,18 @@
SQLLEN length, length1;
char b[]= "abcdefghij", b1[10];
-/*
- if (!mysql_min_version(hdbc, "5.0",3))
- {
- printMessage("server doesn't support stored procedures..skipped\n");
- return;
- }
-*/
+ if (!mysql_min_version(hdbc, "5.0", 3))
+ skip("server does not support stored procedures");
ok_sql(hstmt, "DROP TABLE IF EXISTS t_tabsp");
ok_sql(hstmt, "DROP PROCEDURE IF EXISTS t_sp");
- rc = SQLExecDirect(hstmt,"create table t_tabsp(a int, b varchar(10))",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "create table t_tabsp(a int, b varchar(10))");
- rc = SQLExecDirect(hstmt,"create procedure t_sp(x int, y char(10)) \
- begin \
- insert into t_tabsp values(x, y); \
- end;",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt,"create procedure t_sp(x int, y char(10)) "
+ "begin insert into t_tabsp values(x, y); end;");
- rc = SQLPrepare(hstmt,"call t_sp(?,?)",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt, SQLPrepare(hstmt, (SQLCHAR *)"call t_sp(?,?)", SQL_NTS));
rc = SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_LONG,SQL_INTEGER,
0,0,&a,0,NULL);
@@ -653,8 +665,7 @@
SQLFreeStmt(hstmt, SQL_RESET_PARAMS);
SQLFreeStmt(hstmt, SQL_CLOSE);
- rc = SQLExecDirect(hstmt,"select * from t_tabsp",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "select * from t_tabsp");
rc = SQLBindCol(hstmt,1,SQL_C_LONG,&a,0,NULL);
mystmt(hstmt,rc);
@@ -701,8 +712,8 @@
rc = tmysql_exec(hstmt,"insert into t_prepare values(200,'MySQL','two')");
mystmt(hstmt,rc);
- rc = SQLPrepare(hstmt,"select * from t_prepare where col2 = ? AND col1 = ?",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt, SQLPrepare(hstmt, (SQLCHAR *)"select * from t_prepare "
+ "where col2 = ? AND col1 = ?",SQL_NTS));
rc = SQLNumResultCols(hstmt,&pccol);
mystmt(hstmt,rc);
@@ -728,7 +739,7 @@
rc = SQLFetch(hstmt);
mystmt(hstmt,rc);
- fprintf(stdout," outdata: %d, %s(%d)\n", nodata,szodata,nlen);
+ fprintf(stdout," outdata: %d, %s(%ld)\n", nodata,szodata,nlen);
my_assert(nodata == 200);
rc = SQLFetch(hstmt);
@@ -790,8 +801,7 @@
rc = SQLFreeStmt(hstmt,SQL_RESET_PARAMS);
mystmt(hstmt,rc);
- rc = SQLExecDirect(hstmt,"SELECT * FROM t_prepare1",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_sql(hstmt, "SELECT * FROM t_prepare1");
myassert(3 == myresult(hstmt));/* unless prepare is supported..*/
@@ -974,8 +984,10 @@
mystmt(hstmt,rc);
- rc = SQLPrepare(hstmt,"select id from t_acc_update where id = ?",SQL_NTS);
- mystmt(hstmt,rc);
+ ok_stmt(hstmt,
+ SQLPrepare(hstmt,
+ (SQLCHAR *)"select id from t_acc_update where id = ?",
+ SQL_NTS));
rc =
SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_DEFAULT,SQL_INTEGER,11,0,&id,0,NULL);
mystmt(hstmt,rc);
@@ -1011,8 +1023,7 @@
rc =
SQLBindParameter(hstmt1,2,SQL_PARAM_INPUT,SQL_C_DEFAULT,SQL_INTEGER,11,0,&id1,0,NULL);
mystmt(hstmt1,rc);
- rc = SQLExecDirect(hstmt1,"UPDATE t_acc_update SET id = ? WHERE id = ?",SQL_NTS);
- mystmt(hstmt1,rc);
+ ok_sql(hstmt1, "UPDATE t_acc_update SET id = ? WHERE id = ?");
rc = SQLRowCount(hstmt1,&pcrow);
mystmt(hstmt1,rc);
@@ -1034,24 +1045,23 @@
}
+/**
+ Bug #29871: MyODBC problem with MS Query ('Memory allocation error')
+*/
DECLARE_TEST(t_bug29871)
{
- SQLCHAR *param= "1";
+ SQLCHAR *param= (SQLCHAR *)"1";
- skip("skipping this test for a while due to DM-related issues");
-
ok_sql(hstmt, "DROP TABLE IF EXISTS t_bug29871");
ok_sql(hstmt, "CREATE TABLE t_bug29871 (a INT)");
-
+
/* The bug is related to calling deprecated SQLSetParam */
- ok_stmt(hstmt, SQLSetParam(hstmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
+ ok_stmt(hstmt, SQLSetParam(hstmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
param, 0));
- ok_stmt(hstmt, SQLExecDirect(hstmt,"INSERT INTO t_bug29871 VALUES (?)",
- SQL_NTS));
- ok_stmt(hstmt, SQLSetParam(hstmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
+ ok_sql(hstmt, "INSERT INTO t_bug29871 VALUES (?)");
+ ok_stmt(hstmt, SQLSetParam(hstmt, 1, SQL_C_CHAR, SQL_INTEGER, 10, 0,
param, 0));
- ok_stmt(hstmt, SQLExecDirect(hstmt,"SELECT * FROM t_bug29871 WHERE a=?",
- SQL_NTS));
+ ok_sql(hstmt, "SELECT * FROM t_bug29871 WHERE a=?");
ok_sql(hstmt, "DROP TABLE t_bug29871");
return OK;
}
Modified: trunk/test/odbctap.h
===================================================================
--- trunk/test/odbctap.h 2007-10-11 18:02:47 UTC (rev 816)
+++ trunk/test/odbctap.h 2007-10-11 19:15:57 UTC (rev 817)
@@ -894,3 +894,21 @@
return OK;
}
+
+/**
+ Check if we are using a driver manager for testing.
+
+ @param[in] hdbc Connection handle
+
+ @return 0 if the connection is using a driver manager, 1 if not.
+*/
+int using_dm(HDBC hdbc)
+{
+ SQLCHAR val[20];
+ SQLSMALLINT len;
+
+ if (SQLGetInfo(hdbc, SQL_DM_VER, val, sizeof(val), &len) == SQL_ERROR)
+ return 0;
+
+ return 1;
+}
| Thread |
|---|
| • Connector/ODBC 3.51 commit: r817 - trunk/test | jwinstead | 11 Oct |