specify data type translation for mssql ODBC database Date->"smalldatetime"
[clsql.git] / db-odbc / odbc-dbi.lisp
index 6723a1a6d280702bff950c5d4d1fb378a9174012..bcca4b18004554f766ece0ecdcb9a173036b29ba 100644 (file)
@@ -7,8 +7,6 @@
 ;;;; Author:  Kevin M. Rosenberg
 ;;;; Create:  April 2004
 ;;;;
-;;;; $Id$
-;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 ;;;; CLSQL users are granted the rights to distribute and use this software
                      :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)
@@ -454,22 +452,19 @@ This makes the functions db-execute-command and db-query thread safe."
     (setf computed-result-types (make-array column-count))
     (dotimes (i column-count)
       (setf (aref computed-result-types i)
-        (cond
-         ((consp result-types)
-          (nth i result-types))
-         ((eq result-types :auto)
-          (if (eq (aref column-sql-types i) odbc::$SQL_BIGINT)
-              :number
-            (case (aref column-c-types i)
-              (#.odbc::$SQL_C_SLONG :int)
-              (#.odbc::$SQL_C_DOUBLE :double)
-              (#.odbc::$SQL_C_FLOAT :float)
-              (#.odbc::$SQL_C_SSHORT :short)
-              (#.odbc::$SQL_C_STINYINT :short)
-              (#.odbc::$SQL_BIGINT :short)
-              (t t))))
-          (t
-           t)))))
+            (cond
+              ((consp result-types)
+               (nth i result-types))
+              ((eq result-types :auto)
+               (case (aref column-c-types i)
+                 (#.odbc::$SQL_C_SLONG :int)
+                 (#.odbc::$SQL_C_DOUBLE :double)
+                 (#.odbc::$SQL_C_FLOAT :float)
+                 (#.odbc::$SQL_C_SSHORT :short)
+                 (#.odbc::$SQL_C_STINYINT :short)
+                 (#.odbc::$SQL_C_TYPE_TIMESTAMP :time)
+                 (t t)))
+              (t t)))))
   query)
 
 (defun db-close-query (query &key drop-p)
@@ -575,6 +570,7 @@ This makes the functions db-execute-command and db-query thread safe."
     ;;((#.odbc::$SQL_BINARY #.odbc::$SQL_VARBINARY #.odbc::$SQL_LONGVARBINARY) odbc::$SQL_C_BINARY) ; ??
     (#.odbc::$SQL_TINYINT :short)
     ;;(#.odbc::$SQL_BIT odbc::$SQL_C_BIT) ; ??
+    (#.odbc::$SQL_BIT :short)
     ((#.odbc::$SQL_VARBINARY #.odbc::$SQL_LONGVARBINARY) :binary)
     ))