;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Feb 2002
;;;;
-;;;; $Id: aodbc-sql.cl,v 1.8 2002/03/29 08:28:14 kevin Exp $
+;;;; $Id: aodbc-sql.cl,v 1.10 2002/05/13 22:05:21 kevin Exp $
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg
;;;;
t)
-;; AODBC interfac
+;; AODBC interface
(defclass aodbc-database (database)
((aodbc-conn :accessor database-aodbc-conn :initarg :aodbc-conn)))
(defmethod database-connect (connection-spec (database-type (eql :aodbc)))
(check-connection-spec connection-spec database-type (dsn user password))
+ #+aodbc-v2
(destructuring-bind (dsn user password) connection-spec
(handler-case
(make-instance 'aodbc-database
:error "Connection failed")))))
(defmethod database-disconnect ((database aodbc-database))
+ #+aodbc-v2
(dbi:disconnect (database-aodbc-conn database))
(setf (database-aodbc-conn database) nil)
t)
(defmethod database-query (query-expression (database aodbc-database) types)
+ #+aodbc-v2
(handler-case
(dbi:sql query-expression :db (database-aodbc-conn database)
:types types)
(defmethod database-execute-command (sql-expression
(database aodbc-database))
+ #+aodbc-v2
(handler-case
(dbi:sql sql-expression :db (database-aodbc-conn database))
(error ()
(defmethod database-query-result-set (query-expression (database aodbc-database)
&key full-set types)
+ #+aodbc-v2
(handler-case
(multiple-value-bind (query column-names)
(dbi:sql query-expression
:error "Query result set failed"))))
(defmethod database-dump-result-set (result-set (database aodbc-database))
+ #+aodbc-v2
(dbi:close-query (aodbc-result-set-query result-set))
t)
(defmethod database-store-next-row (result-set
(database aodbc-database)
list)
+ #+aodbc-v2
(let ((row (dbi:fetch-row (aodbc-result-set-query result-set) nil 'eof)))
(if (eq row 'eof)
nil
list))))
+(when (clsql-sys:database-type-library-loaded :aodbc)
+ (clsql-sys:initialize-database-type :database-type :aodbc))