projects
/
clsql.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r10822: 12 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git]
/
db-oracle
/
oracle-api.lisp
diff --git
a/db-oracle/oracle-api.lisp
b/db-oracle/oracle-api.lisp
index ff24e2d02d502e677b9b6fd50c352b57eb454ff4..8f45da7e44945a1df12b1cd2a89bc95573a6ef44 100644
(file)
--- a/
db-oracle/oracle-api.lisp
+++ b/
db-oracle/oracle-api.lisp
@@
-16,6
+16,15
@@
(in-package #:clsql-oracle)
(in-package #:clsql-oracle)
+;;
+;; OCI integer types
+;;
+
+(uffi:def-foreign-type ub2 :unsigned-short)
+(uffi:def-foreign-type sb2 :short)
+(uffi:def-foreign-type ub4 :unsigned-int)
+(uffi:def-foreign-type sb4 :int)
+(uffi:def-foreign-type size_t :unsigned-long)
;;
;; Opaque pointer types
;;
;; Opaque pointer types
@@
-57,23
+66,23
@@
(#.+oci-error+
(handle-oci-error :database database :nulls-ok nulls-ok))
(#.+oci-no-data+
(#.+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+
(#.+oci-success-with-info+
- (error "internal error: unexpected +oci-SUCCESS-WITH-INFO"))
- (#.+oci-no-data+
- (error "OCI No Data"))
+ (error 'sql-database-error :message "internal error: unexpected +oci-success-with-info"))
(#.+oci-invalid-handle+
(#.+oci-invalid-handle+
- (error "OCI Invalid Handle"))
+ (error
'sql-database-error :message
"OCI Invalid Handle"))
(#.+oci-need-data+
(#.+oci-need-data+
- (error "OCI Need Data"))
+ (error
'sql-database-error :message
"OCI Need Data"))
(#.+oci-still-executing+
(#.+oci-still-executing+
- (error "OCI Still Executing"))
+ (error
'sql-temporary-error :message
"OCI Still Executing"))
(#.+oci-continue+
(#.+oci-continue+
- (error "OCI Continue"))
+ (error
'sql-database-error :message
"OCI Continue"))
(1804
(1804
- (error "Check ORACLE_HOME and NLS settings."))
+ (error
'sql-database-error :message
"Check ORACLE_HOME and NLS settings."))
(t
(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
(defmacro def-raw-oci-routine
@@
-88,7
+97,7
@@
(def-oci-routine ("OCIInitialize" oci-initialize)
:int
(def-oci-routine ("OCIInitialize" oci-initialize)
:int
- (mode
:unsigned-long)
; ub4
+ (mode
ub4)
; ub4
(ctxp :pointer-void) ; dvoid *
(malocfp :pointer-void) ; dvoid *(*)
(ralocfp :pointer-void) ; dvoid *(*)
(ctxp :pointer-void) ; dvoid *
(malocfp :pointer-void) ; dvoid *(*)
(ralocfp :pointer-void) ; dvoid *(*)
@@
-98,55
+107,55
@@
(def-oci-routine ("OCIEnvInit" oci-env-init)
:int
(envpp :pointer-void) ; OCIEnv **
(def-oci-routine ("OCIEnvInit" oci-env-init)
:int
(envpp :pointer-void) ; OCIEnv **
- (mode
:unsigned-long)
; ub4
- (xtramem-sz
:unsigned-long
) ; size_t
+ (mode
ub4)
; ub4
+ (xtramem-sz
size_t
) ; size_t
(usermempp (* :pointer-void))) ; dvoid **
(usermempp (* :pointer-void))) ; dvoid **
-#
+oci-8-1-5
+#
-oci7
(def-oci-routine ("OCIEnvCreate" oci-env-create)
:int
(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 ub4
)
+ (
ctxp
:pointer-void)
+ (
malocfp
:pointer-void)
+ (
ralocfp
:pointer-void)
+ (
mfreefp
:pointer-void)
+ (
xtramemsz size_t
)
+ (
usrmempp (* :pointer-void)
))
(def-oci-routine ("OCIHandleAlloc" oci-handle-alloc)
:int
(def-oci-routine ("OCIHandleAlloc" oci-handle-alloc)
:int
- (parenth :pointer-void) ; const dvoid *
+ (parenth :pointer-void)
; const dvoid *
(hndlpp (* :pointer-void)) ; dvoid **
(hndlpp (* :pointer-void)) ; dvoid **
- (type
:unsigned-long)
; ub4
- (xtramem_sz
:unsigned-long)
; size_t
+ (type
ub4)
; ub4
+ (xtramem_sz
size_t)
; size_t
(usrmempp (* :pointer-void))) ; dvoid **
(def-oci-routine ("OCIServerAttach" oci-server-attach)
:int
(srvhp :pointer-void) ; oci-server
(errhp :pointer-void) ; oci-error
(usrmempp (* :pointer-void))) ; dvoid **
(def-oci-routine ("OCIServerAttach" oci-server-attach)
:int
(srvhp :pointer-void) ; oci-server
(errhp :pointer-void) ; oci-error
- (dblink :cstring) ; :in
- (dblink-len
:unsigned-long) ; int
- (mode
:unsigned-long)) ; int
+ (dblink :cstring)
; :in
+ (dblink-len
sb4) ; sb4
+ (mode
ub4)) ; ub4
(def-oci-routine ("OCIHandleFree" oci-handle-free)
:int
(p0 :pointer-void) ;; handle
(def-oci-routine ("OCIHandleFree" oci-handle-free)
:int
(p0 :pointer-void) ;; handle
- (p1
:unsigned-long
)) ;;type
+ (p1
ub4
)) ;;type
(def-oci-routine ("OCILogon" oci-logon)
:int
(envhp :pointer-void) ; env
(errhp :pointer-void) ; err
(def-oci-routine ("OCILogon" oci-logon)
:int
(envhp :pointer-void) ; env
(errhp :pointer-void) ; err
- (svchpp (* :pointer-void))
; svc
+ (svchpp (* :pointer-void)) ; svc
(username :cstring) ; username
(username :cstring) ; username
- (uname-len
:unsigned-long)
;
+ (uname-len
ub4)
;
(passwd :cstring) ; passwd
(passwd :cstring) ; passwd
- (password-len
:unsigned-long)
;
+ (password-len
ub4)
;
(dsn :cstring) ; datasource
(dsn :cstring) ; datasource
- (dsn-len
:unsigned-long))
;
+ (dsn-len
ub4))
;
(def-oci-routine ("OCILogoff" oci-logoff)
:int
(def-oci-routine ("OCILogoff" oci-logoff)
:int
@@
-154,94
+163,94
@@
(p1 :pointer-void)) ; err
(uffi:def-function ("OCIErrorGet" oci-error-get)
(p1 :pointer-void)) ; err
(uffi:def-function ("OCIErrorGet" oci-error-get)
- ((handlp :pointer-void)
- (recordno
:unsigned-long
)
- (sqlstate
:cstring)
- (errcodep
(* :long
))
+ ((handlp
:pointer-void)
+ (recordno
ub4
)
+ (sqlstate :cstring)
+ (errcodep
(* sb4
))
(bufp (* :unsigned-char))
(bufp (* :unsigned-char))
- (bufsize
:unsigned-long
)
- (type
:unsigned-long
))
+ (bufsize
ub4
)
+ (type
ub4
))
:returning :void)
(def-oci-routine ("OCIStmtPrepare" oci-stmt-prepare)
:int
(stmtp :pointer-void)
(errhp :pointer-void)
:returning :void)
(def-oci-routine ("OCIStmtPrepare" oci-stmt-prepare)
:int
(stmtp :pointer-void)
(errhp :pointer-void)
- (stmt :cstring)
- (stmt_len
:unsigned-long
)
- (language
:unsigned-long
)
- (mode
:unsigned-long
))
+ (stmt
:cstring)
+ (stmt_len
ub4
)
+ (language
ub4
)
+ (mode
ub4
))
(def-oci-routine ("OCIStmtExecute" oci-stmt-execute)
:int
(svchp :pointer-void)
(def-oci-routine ("OCIStmtExecute" oci-stmt-execute)
:int
(svchp :pointer-void)
- (stmtp1
:pointer-void)
+ (stmtp1 :pointer-void)
(errhp :pointer-void)
(errhp :pointer-void)
- (iters
:unsigned-long
)
- (rowoff
:unsigned-long
)
- (snap_in
:pointer-void)
- (snap_out
:pointer-void)
- (mode
:unsigned-long
))
+ (iters
ub4
)
+ (rowoff
ub4
)
+ (snap_in :pointer-void)
+ (snap_out :pointer-void)
+ (mode
ub4
))
(def-raw-oci-routine ("OCIParamGet" oci-param-get)
:int
(hndlp :pointer-void)
(def-raw-oci-routine ("OCIParamGet" oci-param-get)
:int
(hndlp :pointer-void)
- (htype
:unsigned-long
)
+ (htype
ub4
)
(errhp :pointer-void)
(errhp :pointer-void)
- (parmdpp
(* :pointer-void))
- (pos
:unsigned-long
))
+ (parmdpp (* :pointer-void))
+ (pos
ub4
))
(def-oci-routine ("OCIAttrGet" oci-attr-get)
:int
(def-oci-routine ("OCIAttrGet" oci-attr-get)
:int
- (trgthndlp
:pointer-void)
- (trghndltyp
:unsigned-int
)
- (attributep
:pointer-void)
- (sizep (*
:unsigned-int
))
- (attrtype
:unsigned-int
)
+ (trgthndlp :pointer-void)
+ (trghndltyp
ub4
)
+ (attributep :pointer-void)
+ (sizep (*
ub4
))
+ (attrtype
ub4
)
(errhp :pointer-void))
(def-oci-routine ("OCIAttrSet" oci-attr-set)
:int
(errhp :pointer-void))
(def-oci-routine ("OCIAttrSet" oci-attr-set)
:int
- (trgthndlp :pointer-void)
- (trgthndltyp
:int
:in)
- (attributep :pointer-void)
- (size
:int
)
- (attrtype
:int
)
- (errhp oci-error))
+ (trgthndlp
:pointer-void)
+ (trgthndltyp
ub4
:in)
+ (attributep
:pointer-void)
+ (size
ub4
)
+ (attrtype
ub4
)
+ (errhp
oci-error))
(def-oci-routine ("OCIDefineByPos" oci-define-by-pos)
:int
(stmtp :pointer-void)
(defnpp (* :pointer-void))
(errhp :pointer-void)
(def-oci-routine ("OCIDefineByPos" oci-define-by-pos)
:int
(stmtp :pointer-void)
(defnpp (* :pointer-void))
(errhp :pointer-void)
- (position
:unsigned-long
)
- (valuep
:pointer-void)
- (value_sz
:long
)
- (dty
:unsigned-short
)
- (indp
:pointer-void
)
- (rlenp (*
:unsigned-short
))
- (rcodep
(* :unsigned-short
))
- (mode
:unsigned-long
))
+ (position
ub4
)
+ (valuep :pointer-void)
+ (value_sz
sb4
)
+ (dty
ub2
)
+ (indp
(* sb2)
)
+ (rlenp (*
ub2
))
+ (rcodep
(* ub2
))
+ (mode
ub4
))
(def-oci-routine ("OCIStmtFetch" oci-stmt-fetch)
:int
(stmthp :pointer-void)
(errhp :pointer-void)
(def-oci-routine ("OCIStmtFetch" oci-stmt-fetch)
:int
(stmthp :pointer-void)
(errhp :pointer-void)
- (p2
:unsigned-long
)
- (p3
:unsigned-short
)
- (p4
:unsigned-long
))
+ (p2
ub4
)
+ (p3
ub2
)
+ (p4
ub4
))
(def-oci-routine ("OCITransStart" oci-trans-start)
:int
(def-oci-routine ("OCITransStart" oci-trans-start)
:int
- (svchp :pointer-void)
+ (svchp
:pointer-void)
(errhp :pointer-void)
(p2 :unsigned-short)
(p3 :unsigned-short))
(def-oci-routine ("OCITransCommit" oci-trans-commit)
:int
(errhp :pointer-void)
(p2 :unsigned-short)
(p3 :unsigned-short))
(def-oci-routine ("OCITransCommit" oci-trans-commit)
:int
- (svchp :pointer-void)
+ (svchp
:pointer-void)
(errhp :pointer-void)
(p2 :unsigned-short))
(errhp :pointer-void)
(p2 :unsigned-short))
@@
-266,7
+275,7
@@
;;; for setting up global environment.
(uffi:def-function "OCIInitialize"
;;; for setting up global environment.
(uffi:def-function "OCIInitialize"
- ((mode
:unsigned-long)
; ub4
+ ((mode
ub4)
; ub4
(ctxp :pointer-void) ; dvoid *
(malocfp :pointer-void) ; dvoid *(*)
(ralocfp :pointer-void) ; dvoid *(*)
(ctxp :pointer-void) ; dvoid *
(malocfp :pointer-void) ; dvoid *(*)
(ralocfp :pointer-void) ; dvoid *(*)
@@
-274,9
+283,9
@@
:returning :int)
(uffi:def-function "OCIEnvInit"
:returning :int)
(uffi:def-function "OCIEnvInit"
- ((envpp :pointer-void)
; OCIEnv **
- (mode
:unsigned-long)
; ub4
- (xtramem-sz
:unsigned-long)
; size_t
+ ((envpp :pointer-void) ; OCIEnv **
+ (mode
ub4)
; ub4
+ (xtramem-sz
size_t)
; size_t
(usermempp (* :pointer-void)))
:returning :int)
(usermempp (* :pointer-void)))
:returning :int)
@@
-284,8
+293,8
@@
(uffi:def-function "OCIHandleAlloc"
((parenth :pointer-void) ; const dvoid *
(hndlpp (* :pointer-void)) ; dvoid **
(uffi:def-function "OCIHandleAlloc"
((parenth :pointer-void) ; const dvoid *
(hndlpp (* :pointer-void)) ; dvoid **
- (type
:unsigned-long)
; ub4
- (xtramem_sz
:unsigned-long)
; size_t
+ (type
ub4)
; ub4
+ (xtramem_sz
size_t)
; size_t
(usrmempp (* :pointer-void)))
:returning :int)
(usrmempp (* :pointer-void)))
:returning :int)
@@
-321,7
+330,7
@@
(defun oci-check-return (value)
(when (= value +oci-invalid-handle+)
(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*)
(defun oci-get-handle (&key type)
(if (null *oci-initialized*)
@@
-354,10
+363,11
@@
(:security
"OCISecurity")
(t
(: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))
(defun oci-environment ()
(let ((envhp (oci-get-handle :type :env)))
(oci-env-init envhp 0 0 +null-void-pointer+)
envhp))
-)