r8987: add mid-level [dbi] interface
authorKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 12 Apr 2004 22:20:51 +0000 (22:20 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Mon, 12 Apr 2004 22:20:51 +0000 (22:20 +0000)
clsql-odbc.asd
db-odbc/odbc-api.lisp
db-odbc/odbc-dbi.lisp [new file with mode: 0644]
db-odbc/odbc-package.lisp
db-odbc/odbc-sql.lisp

index ae49148c05f35c6dd867e63e5ef6092611834f01..d3e728d12ce709be0d0c2a44a3d9e5defffd2194 100644 (file)
@@ -35,5 +35,6 @@
            ((:file "odbc-package")
             (:file "odbc-loader" :depends-on ("odbc-package"))
             (:file "odbc-api" :depends-on ("odbc-loader"))
-            (:file "odbc-sql" :depends-on ("odbc-api"))))))
+            (:file "odbc-dbi" :depends-on ("odbc-api"))
+            (:file "odbc-sql" :depends-on ("odbc-dbi"))))))
 
index 332200c1ef299930e75c1edab01839caafa37805..717d9cf5ac3c9cb6255c3e7f13dc4a3f99eafd2b 100644 (file)
 
 (in-package #:odbc)
 
-(defun connect (&key user password data-source-name)
-  (warn "Not implemented.")
-  nil)
-
-(defun disconnect (conn)
-  (warn "Not implemented."))  
-
-
-(defun query (expr &key db result-types row-count column-names)
-  (warn "Not implemented."))
-
-(defun execute (expr conn)
-  (warn "Not implemented."))
-
-(defun close-query (result-set)
-  (warn "Not implemented."))
-
-(defun fetch-row (result-set error-eof eof-value)
-  (warn "Not implemented."))
diff --git a/db-odbc/odbc-dbi.lisp b/db-odbc/odbc-dbi.lisp
new file mode 100644 (file)
index 0000000..6b11714
--- /dev/null
@@ -0,0 +1,68 @@
+;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Name:    odbc-dbi.cl
+;;;; Purpose: Mid-level (DBI) interface for CLSQL ODBC backend
+;;;; Author:  Kevin M. Rosenberg
+;;;; Create:  April 2004
+;;;;
+;;;; $Id: odbc-sql.lisp 8983 2004-04-12 21:16:48Z kevin $
+;;;;
+;;;; 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
+;;;; as governed by the terms of the Lisp Lesser GNU Public License
+;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL.
+;;;; *************************************************************************
+
+(in-package #:cl-user)
+
+(defpackage #:odbc-dbi
+  (:use #:cl #:odbc)
+  (:export
+   #:bind-parameter
+   #:close-query
+   #:connect
+   #:db-external-format
+   #:db-hstmt
+   #:db-width
+   #:disconnect
+   #:end-transaction
+   #:fetch-row
+   #:list-all-database-tables
+   #:list-all-table-columns
+   #:loop-over-results
+   #:prepare-sql
+   #:rr-sql
+   #:run-prepared-sql
+   #:set-autocommit
+   #:sql
+   
+   #:*auto-trim-strings*
+   #:*default-database*
+   #:*default-odbc-external-format*
+   #:*null-value*
+   )
+  (:documentation "This is the mid-level interface ODBC.")))
+
+(in-package #:odbc-dbi)
+
+(defun connect (&key user password data-source-name)
+  (warn "Not implemented.")
+  nil)
+
+(defun disconnect (conn)
+  (warn "Not implemented."))  
+
+(defun query (expr &key db result-types row-count column-names)
+  (warn "Not implemented."))
+
+(defun execute (expr conn)
+  (warn "Not implemented."))
+
+(defun close-query (result-set)
+  (warn "Not implemented."))
+
+(defun fetch-row (result-set error-eof eof-value)
+  (warn "Not implemented."))
index 4c8374283cd47dd55058874c5269d55331e8f596..b84cd12ff64e4e63fe6f4757d65186498f3ba465 100644 (file)
 (in-package #:cl-user)
 
 (defpackage #:odbc
-    (:use #:cl #:clsql-uffi)
-    (:export 
+  (:use #:cl #:clsql-uffi)
+  (:export 
      #:database-library-loaded
-
-     #:connect
-     #:disconnect
-     #:sql
-     #:close-query
-     #:fetch-row
-     
      )
-    (:documentation "This is the low-level interface ODBC."))
+  (:documentation "This is the low-level interface ODBC."))
+
index 30308e5024c078fd183af05fe89d461e70260f67..bcde3fcd0dd618c167a4e7421fcfab7aebfb67f8 100644 (file)
@@ -42,7 +42,7 @@
        (make-instance 'odbc-database
          :name (database-name-from-spec connection-spec :odbc)
          :odbc-conn
-         (odbc:connect :user user
+         (odbc-dbi:connect :user user
                        :password password
                        :data-source-name dsn))
       (error ()        ;; Init or Connect failed
               :error "Connection failed")))))
 
 (defmethod database-disconnect ((database odbc-database))
-  (odbc:disconnect (database-odbc-conn database))
+  (odbc-dbi:disconnect (database-odbc-conn database))
   (setf (database-odbc-conn database) nil)
   t)
 
 (defmethod database-query (query-expression (database odbc-database) result-types) 
   (handler-case
-      (odbc:sql query-expression :db (database-odbc-conn database)
+      (odbc-dbi:sql query-expression :db (database-odbc-conn database)
               :types result-types)
     (error ()
       (error 'clsql-sql-error
@@ -71,7 +71,7 @@
 (defmethod database-execute-command (sql-expression 
                                     (database odbc-database))
   (handler-case
-      (odbc:sql sql-expression (database-odbc-conn database))
+      (odbc-dbi:sql sql-expression (database-odbc-conn database))
     (error ()
       (error 'clsql-sql-error
             :database database
@@ -89,7 +89,7 @@
                                      &key full-set result-types)
   (handler-case 
       (multiple-value-bind (query column-names)
-         (odbc:sql query-expression 
+         (odbc-dbi:sql query-expression 
                   :db (database-odbc-conn database) 
                   :row-count nil
                   :column-names t
             :error "Query result set failed"))))
 
 (defmethod database-dump-result-set (result-set (database odbc-database))
-  (odbc:close-query (odbc-result-set-query result-set))
+  (odbc-dbi:close-query (odbc-result-set-query result-set))
   t)
 
 (defmethod database-store-next-row (result-set
                                    (database odbc-database)
                                    list)
-  (let ((row (odbc:fetch-row (odbc-result-set-query result-set) nil 'eof)))
+  (let ((row (odbc-dbi:fetch-row (odbc-result-set-query result-set) nil 'eof)))
     (if (eq row 'eof)
        nil
       (progn