r9331: * db-odbc/odbc-api.lisp: work around return-type bug [spr28889] in
[clsql.git] / db-odbc / odbc-api.lisp
index a320d7e3f561543d87314f5469b698de2de48dbe..66c9936b041193327782a1bc31f0f9ffcb8700e0 100644 (file)
@@ -128,7 +128,20 @@ as possible second argument) to the desired representation of date/time/timestam
             'clsql-base: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-base:clsql-odbc-error
+            :odbc-message error-message
+            :sql-state sql-state))
+         #+ignore
           (progn ,result-code ,@body))))))
 
 (defun %new-environment-handle ()