r1699: *** empty log message ***
[clsql.git] / interfaces / aodbc / aodbc-sql.cl
index 4fb4f475f7738c983f0c14e1348e0a5ad38b8145..28f7bb79cb0fa50a2962657cbd728f822f567728 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Feb 2002
 ;;;;
-;;;; $Id: aodbc-sql.cl,v 1.2 2002/03/24 04:01:26 kevin Exp $
+;;;; $Id: aodbc-sql.cl,v 1.8 2002/03/29 08:28:14 kevin Exp $
 ;;;;
 ;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
 (in-package :clsql-aodbc)
 
 
+;; interface foreign library loading routines
 (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 clsql-sys:database-type-load-foreign ((databae-type (eql :aodbc)))
+  t)
+
+(when (find-package :dbi)
+  (clsql-sys:database-type-load-foreign :aodbc)) 
+
 (defmethod database-initialize-database-type ((database-type (eql :aodbc)))
   t)
 
+
+;; AODBC interfac
+
 (defclass aodbc-database (database)
   ((aodbc-conn :accessor database-aodbc-conn :initarg :aodbc-conn)))
 
   (setf (database-aodbc-conn database) nil)
   t)
 
-(defmethod database-query (query-expression (database aodbc-database))
+(defmethod database-query (query-expression (database aodbc-database) types) 
   (handler-case
-      (dbi:sql query-expression :db (database-aodbc-conn database))
+      (dbi:sql query-expression :db (database-aodbc-conn database)
+              :types types)
     (error ()
       (error 'clsql-sql-error
             :database database
 
 (defstruct aodbc-result-set
   (query nil)
-  (full-set nil))
+  (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 types)
   (handler-case 
       (multiple-value-bind (query column-names)
          (dbi:sql query-expression 
                   :row-count nil
                   :column-names t
                   :query t
+                  :types types
                   )
        (values
-        (make-aodbc-result-set :query query :full-set full-set)
+        (make-aodbc-result-set :query query :full-set full-set 
+                               :types types)
         (length column-names)
         nil ;; not able to return number of rows with aodbc
         ))