r1652: Stored field-types in result-set structures
[clsql.git] / interfaces / aodbc / aodbc-sql.cl
index c1a74c9f90c80f4d52d2432660b9bb44b594d91a..780c19663d50eca6039b37ad42c7ef7adac6f9e1 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: aodbc-sql.cl,v 1.1 2002/03/23 14:04:52 kevin Exp $
+;;;; $Id: aodbc-sql.cl,v 1.4 2002/03/24 18:39:32 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 (in-package :clsql-aodbc)
 
 
+(defmethod database-type-library-loaded ((database-type (eql :aodbc)))
+  "T if foreign library was able to be loaded successfully. "
+  (when (find-package :dbi) ;; finds Allegro's DBI (AODBC) package
+    t))
+
 (defmethod database-initialize-database-type ((database-type (eql :aodbc)))
   t)
 
@@ -55,7 +60,7 @@
   (setf (database-aodbc-conn database) nil)
   t)
 
-(defmethod database-query (query-expression (database aodbc-database))
+(defmethod database-query (query-expression (database aodbc-database) field-types) 
   (handler-case
       (dbi:sql query-expression :db (database-aodbc-conn database))
     (error ()
 
 (defstruct aodbc-result-set
   (query nil)
-  (full-set nil))
+  (field-types nil :type cons)
+  (full-set nil :type boolean))
 
-(defmethod database-query-result-set (query-expression
-                                     (database aodbc-database) 
-                                     &optional full-set)
+(defmethod database-query-result-set (query-expression (database aodbc-database) 
+                                     &key full-set field-types)
   (handler-case 
       (multiple-value-bind (query column-names)
          (dbi:sql query-expression 
@@ -92,7 +97,8 @@
                   :query t
                   )
        (values
-        (make-aodbc-result-set :query query :full-set full-set)
+        (make-aodbc-result-set :query query :full-set full-set 
+                               :field-types field-types)
         (length column-names)
         nil ;; not able to return number of rows with aodbc
         ))