List:Commits« Previous MessageNext Message »
From:jwinstead Date:May 18 2007 1:07am
Subject:Connector/ODBC 3.51 commit: r427 - in trunk/test: . include
View as plain text  
Modified:
   trunk/test/include/odbctap.h
   trunk/test/my_cursor.c
   trunk/test/my_datetime.c
   trunk/test/my_dyn_cursor.c
   trunk/test/my_prepare.c
   trunk/test/my_relative.c
   trunk/test/my_result.c
   trunk/test/my_scroll.c
Log:
Between each test case, drop and recreate the statement handle so we start
each test with a statement handle in its default state.  Also, fix all tests
that expect to use a cursor type other than forward-only to request
a different cursor type explicitly.


Modified: trunk/test/include/odbctap.h
===================================================================
--- trunk/test/include/odbctap.h	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/include/odbctap.h	2007-05-17 23:07:54 UTC (rev 427)
@@ -142,13 +142,12 @@
     int rc; \
     RUN_TESTS_ALARM; \
     rc= tests[i].func(hdbc, hstmt, henv); \
-    (void)SQLFreeStmt(hstmt, SQL_UNBIND); \
-    (void)SQLFreeStmt(hstmt, SQL_RESET_PARAMS); \
-    (void)SQLFreeStmt(hstmt, SQL_CLOSE); \
-    (void)SQLSetStmtOption(hstmt, SQL_ROWSET_SIZE, 1); \
     printf("%s %d %s %s\n", rc == OK ? "ok" : "not ok", i + 1, \
            tests[i].expect == FAIL ? "# TODO" : "-", \
            tests[i].name); \
+    /* Re-allocate statement to reset all its properties. */ \
+    SQLFreeStmt(hstmt, SQL_DROP); \
+    SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); \
   } \
 \
   free_basic_handles(&henv,&hdbc,&hstmt); \
@@ -376,10 +375,6 @@
 
   rc= SQLAllocHandle(SQL_HANDLE_STMT,*hdbc,hstmt);
   mycon(*hdbc,rc);
-
-  SQLSetStmtAttr(*hstmt,SQL_ATTR_CURSOR_TYPE,(SQLPOINTER)SQL_CURSOR_STATIC,0);
-  SQLSetStmtOption(*hstmt,SQL_SIMULATE_CURSOR,SQL_SC_NON_UNIQUE);
-  SQLSetStmtOption(*hstmt, SQL_CURSOR_TYPE, SQL_CURSOR_KEYSET_DRIVEN);
 }
 
 

Modified: trunk/test/my_cursor.c
===================================================================
--- trunk/test/my_cursor.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_cursor.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -121,6 +121,10 @@
   ok_sql(hstmt, "INSERT INTO my_demo_cursor VALUES (0,'MySQL0'),(1,'MySQL1'),"
          "(2,'MySQL2'),(3,'MySQL3'),(4,'MySQL4')");
 
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
   ok_sql(hstmt, "SELECT * FROM my_demo_cursor");
 
   ok_stmt(hstmt, SQLBindCol(hstmt, 1, SQL_C_LONG, &id, 0, NULL));
@@ -272,6 +276,8 @@
          "(200,'MySQL2'),(300,'MySQL3'),(400,'MySQL4')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, (SQLCHAR *)"venu", SQL_NTS));
 
@@ -853,7 +859,8 @@
          "INSERT INTO t_acc_crash (b) VALUES ('venu'),('monty'),('mysql')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
-
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
   ok_stmt(hstmt, SQLSetStmtOption(hstmt, SQL_ROWSET_SIZE, 1));
 
   ok_sql(hstmt, "SELECT * FROM t_acc_crash ORDER BY a ASC");
@@ -908,6 +915,8 @@
          "(300,'MySQL6'),(300,'MySQL7')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, (SQLCHAR *)"venu", SQL_NTS));
 
@@ -978,11 +987,10 @@
          "(200,'MySQL2'),(300,'MySQL3'),(400,'MySQL4')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
-
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
   ok_stmt(hstmt, SQLSetCursorName(hstmt, (SQLCHAR *)"venu", SQL_NTS));
 
-  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
-
   ok_sql(hstmt, "SELECT * FROM tmysql_setpos_del1");
 
   ok_stmt(hstmt, SQLBindCol(hstmt, 1, SQL_C_LONG, &nData, 0, NULL));
@@ -1053,8 +1061,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -1310,6 +1319,8 @@
   ok_sql(hstmt, "INSERT INTO t_pos_update VALUES (100,'venu'),(200,'MySQL')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, (SQLCHAR *)"venu_cur", SQL_NTS));
 
@@ -1373,6 +1384,8 @@
   ok_sql(hstmt, "INSERT INTO t_pos_updex VALUES (100,'venu'),(200,'MySQL')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_sql(hstmt, "SELECT * FROM t_pos_updex");
 
@@ -1433,6 +1446,10 @@
   ok_sql(hstmt, "CREATE TABLE t_pos_updex1  (a INT, b VARCHAR(30))");
   ok_sql(hstmt, "INSERT INTO t_pos_updex1 VALUES (100,'venu'),(200,'MySQL')");
 
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
   ok_sql(hstmt, "SELECT * FROM t_pos_updex1");
 
   ok_stmt(hstmt, SQLExtendedFetch(hstmt, SQL_FETCH_ABSOLUTE, 2, &pcrow,
@@ -1492,6 +1509,8 @@
   ok_sql(hstmt, "INSERT INTO t_pos_updex2 VALUES (10,'venu',1),(20,'MySQL',2)");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_sql(hstmt,  "SELECT a, b FROM t_pos_updex2");
 
@@ -1553,6 +1572,8 @@
   ok_sql(hstmt, "INSERT INTO t_pos_updex3 VALUES (100,'venu'),(200,'MySQL')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_sql(hstmt,  "SELECT a, b FROM t_pos_updex3");
 
@@ -1592,6 +1613,8 @@
   ok_sql(hstmt, "INSERT INTO t_pos_updex4 (a,b) VALUES ('Monty','Widenius')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_sql(hstmt, "SELECT * FROM t_pos_updex4");
 
@@ -1638,6 +1661,8 @@
   ok_sql(hstmt, "INSERT INTO tmysql_pos_dyncursor VALUES (1,'foo'),(2,'bar')");
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, (SQLCHAR *)"venu_cur", SQL_NTS));
 
@@ -1714,8 +1739,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -1780,8 +1806,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -1855,6 +1882,8 @@
   ok_con(hdbc, SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT));
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, "venu", SQL_NTS));
 
@@ -1914,6 +1943,8 @@
   ok_con(hdbc, SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT));
 
   ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
   ok_stmt(hstmt, SQLSetCursorName(hstmt, "venu", SQL_NTS));
 
@@ -1980,8 +2011,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -2060,8 +2092,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -2136,8 +2169,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -2208,8 +2242,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = tmysql_exec(hstmt,"select * from t_setpos_upd_bug1 order by id asc");
     mystmt(hstmt,rc);
@@ -2312,8 +2347,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetCursorName(hstmt,"venu",SQL_NTS);
     mystmt(hstmt,rc);
@@ -2544,16 +2580,10 @@
 
   ok_con(hdbc, SQLEndTran(SQL_HANDLE_DBC, hdbc, SQL_COMMIT));
 
-  ok_stmt(hstmt, SQLFreeStmt(hstmt,SQL_CLOSE));
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
-#if 0
-  /* MS SQL Server to work...*/
-  SQLSetStmtAttr(hstmt, SQL_ATTR_CONCURRENCY,
-                 (SQLPOINTER)SQL_CONCUR_ROWVER, 0);
-  SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
-                 (SQLPOINTER)SQL_CURSOR_KEYSET_DRIVEN, 0);
-#endif
-
   ok_sql(hstmt,"SELECT * FROM tmysql_pcbvalue");
 
   ok_stmt(hstmt, SQLBindCol(hstmt, 1, SQL_C_LONG, &nodata, 0, &nlen));

Modified: trunk/test/my_datetime.c
===================================================================
--- trunk/test/my_datetime.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_datetime.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -42,6 +42,9 @@
   ok_stmt(hstmt, SQLFreeStmt(hstmt,SQL_RESET_PARAMS));
   ok_stmt(hstmt, SQLFreeStmt(hstmt,SQL_CLOSE));
 
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_KEYSET_DRIVEN, 0));
+
   /* insert using SQL_C_TIMESTAMP to SQL_TIMESTAMP */
   ts.year= 2002;
   ts.month= 1;

Modified: trunk/test/my_dyn_cursor.c
===================================================================
--- trunk/test/my_dyn_cursor.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_dyn_cursor.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -200,6 +200,10 @@
     rc = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt_pos);
     mycon(hdbc, rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set the cursor name as 'mysqlcur' on hstmt */
     rc = SQLSetCursorName(hstmt, "mysqlcur", SQL_NTS);
     mystmt(hstmt, rc);

Modified: trunk/test/my_prepare.c
===================================================================
--- trunk/test/my_prepare.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_prepare.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -258,6 +258,10 @@
   ok_sql(hstmt, "CREATE TABLE t_prep_scroll (a TINYINT)");
   ok_sql(hstmt, "INSERT INTO t_prep_scroll VALUES (1),(2),(3),(4),(5)");
 
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
   ok_sql(hstmt, "SELECT * FROM t_prep_scroll");
 
   ok_stmt(hstmt, SQLBindCol(hstmt, 1, SQL_C_LONG, &data, 0, NULL));

Modified: trunk/test/my_relative.c
===================================================================
--- trunk/test/my_relative.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_relative.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -66,6 +66,10 @@
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROWS_FETCHED_PTR,&nrows,0);
     mystmt(hstmt,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     rc = SQLExecDirect(hstmt,"select * from t_relative",SQL_NTS);
     mystmt(hstmt,rc);
 
@@ -195,6 +199,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 1 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)1,0);
     mystmt(hstmt,rc);
@@ -401,6 +409,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 2 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)2,0);
     mystmt(hstmt,rc);

Modified: trunk/test/my_result.c
===================================================================
--- trunk/test/my_result.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_result.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -1053,8 +1053,9 @@
 
     my_assert( 1 == myresult(hstmt));
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = tmysql_exec(hstmt,"select * from t_empty_str_bug");
     mystmt(hstmt,rc);
@@ -1475,6 +1476,10 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     rc = SQLExecDirect(hstmt,"select * from t_exfetch",SQL_NTS);
     mystmt(hstmt,rc);
 
@@ -1610,8 +1615,9 @@
     rc = SQLTransact(NULL,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
-    rc = SQLFreeStmt(hstmt,SQL_CLOSE);
-    mystmt(hstmt,rc);
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
 
     rc = SQLSetStmtAttr(hstmt, SQL_ATTR_ROW_ARRAY_SIZE  ,(SQLPOINTER)1 , 0);
     mystmt(hstmt, rc);

Modified: trunk/test/my_scroll.c
===================================================================
--- trunk/test/my_scroll.c	2007-05-17 20:19:01 UTC (rev 426)
+++ trunk/test/my_scroll.c	2007-05-17 23:07:54 UTC (rev 427)
@@ -32,6 +32,10 @@
   ok_sql(hstmt, "CREATE TABLE t_scroll (col1 INT)");
   ok_sql(hstmt, "INSERT INTO t_scroll VALUES (1),(2),(3),(4),(5)");
 
+  ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+  ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
   ok_sql(hstmt, "SELECT * FROM t_scroll");
 
   ok_stmt(hstmt, SQLBindCol(hstmt, 1, SQL_C_ULONG, &i, 0, NULL));
@@ -153,6 +157,10 @@
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)10,0);
     mystmt(hstmt,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROWS_FETCHED_PTR,&nrows,0);
     mystmt(hstmt,rc);
 
@@ -284,6 +292,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 1 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)1,0);
     mystmt(hstmt,rc);
@@ -490,6 +502,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 2 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)2,0);
     mystmt(hstmt,rc);
@@ -798,6 +814,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 1 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)1,0);
     mystmt(hstmt,rc);
@@ -979,6 +999,10 @@
     rc = SQLEndTran(SQL_HANDLE_DBC,hdbc,SQL_COMMIT);
     mycon(hdbc,rc);
 
+    ok_stmt(hstmt, SQLFreeStmt(hstmt, SQL_CLOSE));
+    ok_stmt(hstmt, SQLSetStmtAttr(hstmt, SQL_ATTR_CURSOR_TYPE,
+                                  (SQLPOINTER)SQL_CURSOR_STATIC, 0));
+
     /* set row_size as 1 */
     rc = SQLSetStmtAttr(hstmt,SQL_ATTR_ROW_ARRAY_SIZE,(SQLPOINTER)2,0);
     mystmt(hstmt,rc);

Thread
Connector/ODBC 3.51 commit: r427 - in trunk/test: . includejwinstead18 May