made odbc read (from c) decimals and numerics as doubles instead of strings, in prepa...
[clsql.git] / db-odbc / odbc-dbi.lisp
index caa549e94c72f6db9b6771a071c0c48eff09c461..0b88ee20695267bc10612a2928595d29d7fdb57b 100644 (file)
                      :accessor data-ptrs)
    (column-out-len-ptrs :initform (make-array 0 :adjustable t :fill-pointer t)
                         :accessor column-out-len-ptrs)
-   (column-precisions :initform (make-array 0 :element-type 'fixnum :adjustable t :fill-pointer t)
+   (column-precisions :initform (make-array 0 :element-type 'integer :adjustable t :fill-pointer t)
                       :accessor column-precisions)
    (column-scales :initform (make-array 0 :element-type 'fixnum :adjustable t :fill-pointer t)
                   :accessor column-scales)
@@ -465,6 +465,10 @@ This makes the functions db-execute-command and db-query thread safe."
                 (#.odbc::$SQL_C_SSHORT :short)
                 (#.odbc::$SQL_C_STINYINT :short)
                 (#.odbc::$SQL_C_SBIGINT #.odbc::$ODBC-BIG-TYPE)
+                (#.odbc::$SQL_C_CHAR
+                   (or (case (aref column-sql-types i)
+                         (#.odbc::$SQL_NUMERIC :double))
+                       T))
                 (t t)))
              (t t)))))
   query)