X-Git-Url: http://git.kpe.io/?p=clsql.git;a=blobdiff_plain;f=db-db2%2Fdb2-api.lisp;h=42d26097d361c324879855acf39f0101c74c35e2;hp=99e7245aef95d85d4f2146d08634ae7fb5709985;hb=d2d49ab13c98bc7a1819a0fd3968268a5567bdc3;hpb=2f1b6b521b5c68e249428209a7da57f75e55da47 diff --git a/db-db2/db2-api.lisp b/db-db2/db2-api.lisp index 99e7245..42d2609 100644 --- a/db-db2/db2-api.lisp +++ b/db-db2/db2-api.lisp @@ -5,8 +5,6 @@ ;;;; Name: db2.lisp ;;;; Purpose: Package definition for CLSQL Db2 interface ;;;; -;;;; $Id$ -;;;; ;;;; This file is part of CLSQL. ;;;; ;;;; CLSQL users are granted the rights to distribute and use this software @@ -47,55 +45,54 @@ (defmacro def-cli-routine ((c-cli-symbol lisp-cli-fn) c-return &rest c-parms) (let ((ll (mapcar (lambda (x) (declare (ignore x)) (gensym)) c-parms))) `(let ((%lisp-cli-fn (uffi:def-function - (,c-cli-symbol ,(intern (concatenate 'string "%" (symbol-name lisp-cli-fn)))) - ,c-parms - :returning ,c-return))) + (,c-cli-symbol ,(intern (concatenate 'string "%" (symbol-name lisp-cli-fn)))) + ,c-parms + :returning ,c-return))) (defun ,lisp-cli-fn (,@ll &key database nulls-ok) - (let ((result (funcall %lisp-cli-fn ,@ll))) - #+ignore - (case result - (#.+oci-success+ - +oci-success+) - (#.+oci-error+ - (handle-oci-error :database database :nulls-ok nulls-ok)) - (#.+oci-no-data+ - (error 'sql-database-error :message "OCI No Data Found")) - (#.+oci-success-with-info+ - (error 'sql-database-error :message "internal error: unexpected +oci-success-with-info")) - (#.+oci-no-data+ - (error 'sql-database-error :message "OCI No Data")) - (#.+oci-invalid-handle+ - (error 'sql-database-error :message "OCI Invalid Handle")) - (#.+oci-need-data+ - (error 'sql-database-error :message "OCI Need Data")) - (#.+oci-still-executing+ - (error 'sql-temporary-error :message "OCI Still Executing")) - (#.+oci-continue+ - (error 'sql-database-error :message "OCI Continue")) - (1804 - (error 'sql-database-error :message "Check CLI_HOME and NLS settings.")) - (t - (error 'sql-database-error - :message - (format nil "OCI unknown error, code=~A" result))))))))) - + (let ((result (funcall %lisp-cli-fn ,@ll))) + (case result + (#.SQL_SUCCESS + SQL_SUCCESS) + (#.SQL_SUCCESS_WITH_INFO + (format *standard-output* "sucess with info") + SQL_SUCCESS) + (#.SQL_ERROR + (error 'sql-database-error + :error-id result + :message + (format nil "DB2 error" result))) + (t + (error 'sql-database-error + :message + (format nil "DB2 unknown error, code=~A" result))))))))) + (defmacro def-raw-cli-routine ((c-cli-symbol lisp-cli-fn) c-return &rest c-parms) (let ((ll (mapcar (lambda (x) (declare (ignore x)) (gensym)) c-parms))) `(let ((%lisp-cli-fn (uffi:def-function (,c-cli-symbol ,(intern (concatenate 'string "%" (symbol-name lisp-cli-fn)))) - ,c-parms - :returning ,c-return))) + ,c-parms + :returning ,c-return))) (defun ,lisp-cli-fn (,@ll &key database nulls-ok) - (funcall %lisp-cli-fn ,@ll))))) + (funcall %lisp-cli-fn ,@ll))))) -(def-cli-routine ("SQLAllocHandle" sql-allocate-handle) +(def-cli-routine ("SQLAllocHandle" sql-alloc-handle) :int (fHandleType cli-smallint) (hInput cli-handle) (phOuput (* cli-handle))) +(def-cli-routine ("SQLConnect" sql-connect) + :int + (hDb cli-handle) + (server :cstring) + (server-len cli-smallint) + (user :cstring) + (user-len cli-smallint) + (password :cstring) + (passwd-len cli-smallint)) + ;;; CLI Functions needed ;;; SQLBindParameter