r9336: 12 May 2004 Kevin Rosenberg (kevin@rosenberg.net)
[clsql.git] / db-odbc / odbc-api.lisp
index a320d7e3f561543d87314f5469b698de2de48dbe..c5cca32d82f9496cbb755cadc97d21d77fb96dda 100644 (file)
@@ -27,8 +27,8 @@ May be locally bound to something else if a certain type is necessary.")
 (defvar *time-conversion-function*
     (lambda (universal-time &optional fraction)
       (declare (ignore fraction))
-      (clsql-base:format-time 
-       nil (clsql-base:utime->time universal-time) 
+      (clsql-sys:format-time 
+       nil (clsql-sys:utime->time universal-time) 
        :format :iso)
       #+ignore
       universal-time)
@@ -113,11 +113,11 @@ as possible second argument) to the desired representation of date/time/timestam
           (progn ,result-code ,@body))
          (#.$SQL_INVALID_HANDLE
           (error
-          'clsql-base:clsql-odbc-error
+          'clsql-sys:clsql-odbc-error
           :odbc-message "Invalid handle"))
          (#.$SQL_STILL_EXECUTING
           (error
-          'clsql-base:clsql-odbc-error
+          'clsql-sys:clsql-odbc-error
           :odbc-message "Still executing"))
          (#.$SQL_ERROR
           (multiple-value-bind (error-message sql-state)
@@ -125,10 +125,23 @@ as possible second argument) to the desired representation of date/time/timestam
                            (or ,hdbc +null-handle-ptr+)
                            (or ,hstmt +null-handle-ptr+))
             (error
-            'clsql-base:clsql-odbc-error
+            'clsql-sys:clsql-odbc-error
             :odbc-message error-message
             :sql-state sql-state)))
+        (#.$SQL_NO_DATA_FOUND
+         (progn ,result-code ,@body))
+        ;; work-around for Allegro 7.0beta AMD64 which
+        ;; has for negative numbers
         (otherwise
+         (multiple-value-bind (error-message sql-state)
+             (handle-error (or ,henv +null-handle-ptr+)
+                           (or ,hdbc +null-handle-ptr+)
+                           (or ,hstmt +null-handle-ptr+))
+            (error
+            'clsql-sys:clsql-odbc-error
+            :odbc-message error-message
+            :sql-state sql-state))
+         #+ignore
           (progn ,result-code ,@body))))))
 
 (defun %new-environment-handle ()