List:Commits« Previous MessageNext Message »
From:jwinstead Date:August 30 2007 11:45pm
Subject:Connector/ODBC 3.51 commit: r721 - in branches/guffert: driver test
View as plain text  
Modified:
   branches/guffert/driver/unicode.c
   branches/guffert/test/my_unicode.c
Log:
Really fix functions that take and return size of a SQLWCHAR * to be in bytes,
not characters. And fix tests to match.


Modified: branches/guffert/driver/unicode.c
===================================================================
--- branches/guffert/driver/unicode.c	2007-08-30 23:29:00 UTC (rev 720)
+++ branches/guffert/driver/unicode.c	2007-08-30 23:45:32 UTC (rev 721)
@@ -334,13 +334,13 @@
                                 &len, &errors);
 
     /* char_attr_max is in bytes, we want it in chars. */
-    char_attr_max/= 2;
+    char_attr_max/= sizeof(SQLWCHAR);
 
     if (len > char_attr_max - 1)
       rc= set_error(stmt, MYERR_01004, NULL, 0);
 
     if (char_attr_len)
-      *char_attr_len= (SQLSMALLINT)len;
+      *char_attr_len= (SQLSMALLINT)len * sizeof(SQLWCHAR);
 
     if (char_attr_max > 0)
     {
@@ -705,13 +705,13 @@
                                 &len, &errors);
 
     /* value_max is in bytes, we want it in chars. */
-    value_max/= 2;
+    value_max/= sizeof(SQLWCHAR);
 
     if (len > value_max - 1)
       rc= set_conn_error(dbc, MYERR_01004, NULL, 0);
 
     if (value_len)
-      *value_len= len;
+      *value_len= len * sizeof(SQLWCHAR);
 
     if (value_max > 0)
     {
@@ -809,13 +809,13 @@
                                           value, &len, &errors);
 
     /* info_max is in bytes, we want it in chars. */
-    info_max/= 2;
+    info_max/= sizeof(SQLWCHAR);
 
     if (len > info_max - 1)
       rc= set_conn_error(dbc, MYERR_01004, NULL, 0);
 
     if (info_len)
-      *info_len= len;
+      *info_len= len * sizeof(SQLWCHAR);
 
     if (info_max > 0)
     {
@@ -935,13 +935,13 @@
                                           char_value, &len, &errors);
 
     /* value_max is in bytes, we want it in chars. */
-    value_max/= 2;
+    value_max/= sizeof(SQLWCHAR);
 
     if (len > value_max - 1)
       rc= set_conn_error(dbc, MYERR_01004, NULL, 0);
 
     if (value_len)
-      *value_len= len;
+      *value_len= len * sizeof(SQLWCHAR);
 
     if (value_max > 0)
     {

Modified: branches/guffert/test/my_unicode.c
===================================================================
--- branches/guffert/test/my_unicode.c	2007-08-30 23:29:00 UTC (rev 720)
+++ branches/guffert/test/my_unicode.c	2007-08-30 23:45:32 UTC (rev 721)
@@ -475,21 +475,19 @@
   ok_sql(hstmt1, "SELECT * FROM t_colattrib AS b");
 
   ok_stmt(hstmt1, SQLColAttributeW(hstmt1, 1, SQL_DESC_NAME,
-                                   wbuff, sizeof(wbuff) / sizeof(wbuff[0]),
-                                   &len, NULL));
-  is_num(len, 3);
+                                   wbuff, sizeof(wbuff), &len, NULL));
+  is_num(len, 3 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(wbuff), L"a\u00e3g", 4);
 
   expect_stmt(hstmt1, SQLColAttributeW(hstmt1, 1, SQL_DESC_BASE_TABLE_NAME,
-                                       wbuff, 5, &len, NULL),
+                                       wbuff, 5 * sizeof(SQLWCHAR), &len, NULL),
               SQL_SUCCESS_WITH_INFO);
-  is_num(len, 11);
+  is_num(len, 11 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(wbuff), L"t_co", 5);
 
   ok_stmt(hstmt1, SQLColAttributeW(hstmt1, 1, SQL_DESC_TYPE_NAME,
-                                   wbuff, sizeof(wbuff) / sizeof(wbuff[0]),
-                                   &len, NULL));
-  is_num(len, 7);
+                                   wbuff, sizeof(wbuff), &len, NULL));
+  is_num(len, 7 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(wbuff), L"integer", 8);
 
   ok_sql(hstmt1, "DROP TABLE IF EXISTS t_colattrib");
@@ -560,14 +558,14 @@
   ok_con(hdbc1, SQLAllocStmt(hdbc1, &hstmt1));
 
   ok_stmt(hstmt1, SQLGetConnectAttrW(hdbc1, SQL_ATTR_CURRENT_CATALOG, wbuff,
-                                     sizeof(wbuff) / sizeof(wbuff[0]), &len));
-  is_num(len, 4);
+                                     sizeof(wbuff), &len));
+  is_num(len, 4 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(wbuff), L"test", 5);
 
   expect_stmt(hstmt1, SQLGetConnectAttrW(hdbc1, SQL_ATTR_CURRENT_CATALOG,
-                                         wbuff, 3, &len),
+                                         wbuff, 3 * sizeof(SQLWCHAR), &len),
               SQL_SUCCESS_WITH_INFO);
-  is_num(len, 4);
+  is_num(len, 4 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(wbuff), L"te", 3);
 
   ok_stmt(hstmt1, SQLFreeStmt(hstmt1, SQL_DROP));
@@ -651,19 +649,22 @@
   is_num(data, 1);
 
   ok_stmt(hstmt, SQLGetDiagFieldW(SQL_HANDLE_STMT, hstmt1, 1,
-                                  SQL_DIAG_CLASS_ORIGIN, message, 255, &len));
-  is_num(len, 8);
+                                  SQL_DIAG_CLASS_ORIGIN, message,
+                                  sizeof(message), &len));
+  is_num(len, 8 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(message), L"ISO 9075", 9);
 
   expect_stmt(hstmt, SQLGetDiagFieldW(SQL_HANDLE_STMT, hstmt1, 1,
-                                      SQL_DIAG_SQLSTATE, message, 4, &len),
+                                      SQL_DIAG_SQLSTATE, message,
+                                      4 * sizeof(SQLWCHAR), &len),
               SQL_SUCCESS_WITH_INFO);
-  is_num(len, 5);
+  is_num(len, 5 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(message), L"42S", 4);
 
   ok_stmt(hstmt, SQLGetDiagFieldW(SQL_HANDLE_STMT, hstmt1, 1,
-                                  SQL_DIAG_SUBCLASS_ORIGIN, message, 20, &len));
-  is_num(len, 8);
+                                  SQL_DIAG_SUBCLASS_ORIGIN, message,
+                                  sizeof(message), &len));
+  is_num(len, 8 * sizeof(SQLWCHAR));
   is_wstr(sqlwchar_to_wchar_t(message), L"ODBC 3.0", 9);
 
   ok_stmt(hstmt1, SQLFreeStmt(hstmt1, SQL_DROP));

Thread
Connector/ODBC 3.51 commit: r721 - in branches/guffert: driver testjwinstead31 Aug