((: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"))))))
(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."))
--- /dev/null
+;;;; -*- 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."))
(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."))
+
(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
(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
&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