r9024: fix odbc on lww
authorKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 15 Apr 2004 23:13:36 +0000 (23:13 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Thu, 15 Apr 2004 23:13:36 +0000 (23:13 +0000)
ChangeLog
db-odbc/odbc-api.lisp
db-odbc/odbc-loader.lisp
tests/test-basic.lisp

index 95afac791c06754db07c8f4acc082c22ffb265c7..bd0530edc6c8b40fcd916e0ec7a85b0f06173071 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
+       * Version 2.7.2: Fix ODBC on Lispworks Windows
+
 15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
        * Version 2.7.1: Fix for new ODBC backend.
        clsql-odbc now works on SBCL, CMUCL, OpenMCL
index 1d82470d62e350efc919867bf09c8418f47dd75b..a15d628f8c3c82120ed7cbf7e91f00ba5f6465b2 100644 (file)
@@ -31,6 +31,7 @@ May be locally bound to something else if a certain type is necessary.")
 as possible second argument) to the desired representation of date/time/timestamp.")
 
 (defvar +null-ptr+ (make-null-pointer :byte))
+(defparameter +null-handle-ptr+ (make-null-pointer :void))
 (defvar *info-output* nil
   "Stream to send SUCCESS_WITH_INFO messages.")
 
@@ -97,9 +98,9 @@ as possible second argument) to the desired representation of date/time/timestam
          (#.$SQL_SUCCESS_WITH_INFO
           (when ,print-info
             (multiple-value-bind (error-message sql-state)
-               (handle-error (or ,henv +null-ptr+)
-                             (or ,hdbc +null-ptr+)
-                             (or ,hstmt +null-ptr+))
+               (handle-error (or ,henv +null-handle-ptr+)
+                             (or ,hdbc +null-handle-ptr+)
+                             (or ,hstmt +null-handle-ptr+))
              (when *info-output*
                (format *info-output* "[ODBC info ~A] ~A state: ~A"
                        ,result-code error-message
@@ -115,9 +116,9 @@ as possible second argument) to the desired representation of date/time/timestam
           :odbc-message "Still executing"))
          (#.$SQL_ERROR
           (multiple-value-bind (error-message sql-state)
-             (handle-error (or ,henv +null-ptr+)
-                           (or ,hdbc +null-ptr+)
-                           (or ,hstmt +null-ptr+))
+             (handle-error (or ,henv +null-handle-ptr+)
+                           (or ,hdbc +null-handle-ptr+)
+                           (or ,hstmt +null-handle-ptr+))
             (error
             'clsql-base-sys:clsql-odbc-error
             :odbc-message error-message
@@ -838,7 +839,7 @@ as possible second argument) to the desired representation of date/time/timestam
                                       data-length)))
                     (error "wrong type. preliminary."))
                while (and (= res $SQL_SUCCESS_WITH_INFO)
-                          (equal (sql-state +null-ptr+ +null-ptr+ hstmt)
+                          (equal (sql-state +null-handle-ptr+ +null-handle-ptr+ hstmt)
                                  "01004"))
                do (setf res (%sql-get-data hstmt column-nr c-type data-ptr 
                                            +max-precision+ out-len-ptr)))
@@ -857,9 +858,9 @@ as possible second argument) to the desired representation of date/time/timestam
                     (error "wrong type. preliminary."))
                while 
                (and (= res $SQL_SUCCESS_WITH_INFO)
-                    #+ingore(eq (sql-state +null-ptr+ +null-ptr+ hstmt)
+                    #+ingore(eq (sql-state +null-handle-ptr+ +null-handle-ptr+ hstmt)
                                 $sql-data-truncated)
-                    (equal (sql-state +null-ptr+ +null-ptr+ hstmt)
+                    (equal (sql-state +null-handle-ptr+ +null-handle-ptr+ hstmt)
                            "01004"))
                do (setf res (%sql-get-data hstmt column-nr c-type data-ptr 
                                            +max-precision+ out-len-ptr)
index ef14d4708a60223060daec5d8797c071e1669445..63e39d87d673dbe0c8ff4268dc162e3f8f8fa96e 100644 (file)
@@ -26,6 +26,7 @@
       "/sw/lib/"
       "/usr/local/lib/"
       "/home/kevin/debian/src/clsql/db-odbc/"
+      "/windows/system32/"
       "/odbc/lib/opt/")
    :drive-letters '("C")))
   
index e57ee2875a64a2519debe5956784a2983ffb0a11..b4cec793479b444078cc0afba61d594c05170656 100644 (file)
@@ -84,7 +84,7 @@
     (clsql:execute-command 
      "DROP TABLE test_clsql" :database db))
   (clsql:execute-command 
-   "CREATE TABLE test_clsql (t_int integer, t_float double, t_bigint BIGINT, t_str CHAR(30))" 
+   "CREATE TABLE test_clsql (t_int integer, t_float double precision, t_bigint BIGINT, t_str CHAR(30))" 
    :database db)
   (dotimes (i 11)
     (let* ((test-int (- i 5))