X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=db-oracle%2Foracle-api.lisp;h=eab4c6b3a78852a917f5cd7d95df7fcb1eb9e571;hb=bb71f27c241187a32c7839aea501114d65e29f85;hp=4f222bf94677f35b7f711bcb39987cdba19238c7;hpb=a45efdc4b94ed2ce0d70c8bd1f4c0b0b71a827db;p=clsql.git diff --git a/db-oracle/oracle-api.lisp b/db-oracle/oracle-api.lisp index 4f222bf..eab4c6b 100644 --- a/db-oracle/oracle-api.lisp +++ b/db-oracle/oracle-api.lisp @@ -57,23 +57,25 @@ (#.+oci-error+ (handle-oci-error :database database :nulls-ok nulls-ok)) (#.+oci-no-data+ - (error "OCI No Data Found")) + (error 'sql-database-error :message "OCI No Data Found")) (#.+oci-success-with-info+ - (error "internal error: unexpected +oci-SUCCESS-WITH-INFO")) + (error 'sql-database-error :message "internal error: unexpected +oci-success-with-info")) (#.+oci-no-data+ - (error "OCI No Data")) + (error 'sql-database-error :message "OCI No Data")) (#.+oci-invalid-handle+ - (error "OCI Invalid Handle")) + (error 'sql-database-error :message "OCI Invalid Handle")) (#.+oci-need-data+ - (error "OCI Need Data")) + (error 'sql-database-error :message "OCI Need Data")) (#.+oci-still-executing+ - (error "OCI Still Executing")) + (error 'sql-temporary-error :message "OCI Still Executing")) (#.+oci-continue+ - (error "OCI Continue")) + (error 'sql-database-error :message "OCI Continue")) (1804 - (error "Check ORACLE_HOME and NLS settings.")) + (error 'sql-database-error :message "Check ORACLE_HOME and NLS settings.")) (t - (error "OCI unknown error, code=~A" result)))))))) + (error 'sql-database-error + :message + (format nil "OCI unknown error, code=~A" result))))))))) (defmacro def-raw-oci-routine @@ -102,17 +104,17 @@ (xtramem-sz :unsigned-long) ; size_t (usermempp (* :pointer-void))) ; dvoid ** -#+oci-8-1-5 +#-oci7 (def-oci-routine ("OCIEnvCreate" oci-env-create) :int - (p0 :pointer-void) - (p1 :unsigned-int) - (p2 :pointer-void) - (p3 :pointer-void) - (p4 :pointer-void) - (p5 :pointer-void) - (p6 :unsigned-long) - (p7 :pointer-void)) + (envhpp (* :pointer-void)) + (mode :unsigned-int) + (ctxp :pointer-void) + (malocfp :pointer-void) + (ralocfp :pointer-void) + (mfreefp :pointer-void) + (xtramemsz :unsigned-long) + (usrmempp (* :pointer-void))) (def-oci-routine ("OCIHandleAlloc" oci-handle-alloc) :int @@ -218,7 +220,7 @@ (valuep :pointer-void) (value_sz :long) (dty :unsigned-short) - (indp :pointer-void) + (indp (* :short)) (rlenp (* :unsigned-short)) (rcodep (* :unsigned-short)) (mode :unsigned-long)) @@ -321,7 +323,7 @@ (defun oci-check-return (value) (when (= value +oci-invalid-handle+) - (error "Invalid Handle"))) + (error 'sql-database-error :message "Invalid Handle"))) (defun oci-get-handle (&key type) (if (null *oci-initialized*) @@ -354,10 +356,11 @@ (:security "OCISecurity") (t - (error "'~s' is not a valid OCI handle type" type)))) + (error 'sql-database-error + :message + (format nil "'~s' is not a valid OCI handle type" type))))) (defun oci-environment () (let ((envhp (oci-get-handle :type :env))) (oci-env-init envhp 0 0 +null-void-pointer+) envhp)) -)