r11418: 30 Dec 2006 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / db-oracle / oracle-api.lisp
index 454011fafc5d81f97c63c4cbb8fab72264545c4f..19b3f6e37f98d7861b3bfa9d9d9bcdc6d5323297 100644 (file)
 (uffi:def-foreign-type oci-svc-ctx :pointer-void)
 (uffi:def-foreign-type oci-stmt :pointer-void)
 
-
-(defvar +null-void-pointer+ (uffi:make-null-pointer :void))
-(defvar +null-void-pointer-pointer+ (uffi:make-null-pointer :pointer-void))
+(uffi:def-pointer-var +null-void-pointer+
+  (uffi:make-null-pointer :void))
+(uffi:def-pointer-var +null-void-pointer-pointer+
+  (uffi:make-null-pointer :pointer-void))
 
 ;;; Check an OCI return code for erroricity and signal a reasonably
 ;;; informative condition if so.
@@ -65,7 +66,7 @@
           (if (= result #.+oci-success+)
               +oci-success+
               (handle-oci-result result database nulls-ok)))))))
-  
+
 
 (defmacro def-raw-oci-routine
   ((c-oci-symbol lisp-oci-fn) c-return &rest c-parms)
@@ -74,6 +75,7 @@
                             ,c-parms
                           :returning ,c-return)))
        (defun ,lisp-oci-fn (,@ll &key database nulls-ok)
+         (declare (ignore database nulls-ok))
         (funcall %lisp-oci-fn ,@ll)))))
 
 
@@ -92,7 +94,7 @@
   (mode ub4)                                   ; ub4
   (xtramem-sz size_t)            ; size_t
   (usermempp (* :pointer-void)))                    ; dvoid **
-  
+
 #-oci7
 (def-oci-routine ("OCIEnvCreate" oci-env-create)
     :int
   (envhp        :pointer-void)         ; env
   (errhp        :pointer-void)         ; err
   (svchpp       (* :pointer-void))     ; svc
-  (username     :cstring)              ; username
+  (username     (* :unsigned-char))    ; username
   (uname-len    ub4)                   ;
-  (passwd       :cstring)              ; passwd
+  (passwd       (* :unsigned-char))    ; passwd
   (password-len ub4)                   ;
-  (dsn          :cstring)              ; datasource
+  (dsn          (* :unsigned-char))    ; datasource
   (dsn-len      ub4))                  ;
 
 (def-oci-routine ("OCILogoff" oci-logoff)
     :int
   (stmtp      :pointer-void)
   (errhp      :pointer-void)
-  (stmt       :cstring)
+  (stmt       (* :unsigned-char))
   (stmt_len   ub4)
   (language   ub4)
   (mode       ub4))
   (position   ub4)
   (valuep     :pointer-void)
   (value_sz   sb4)
-  (dty        ub2)         
+  (dty        ub2)
   (indp       (* sb2))
-  (rlenp      (* ub2))          
-  (rcodep     (* ub2))          
+  (rlenp      (* ub2))
+  (rcodep     (* ub2))
   (mode       ub4))
 
 (def-oci-routine ("OCIStmtFetch" oci-stmt-fetch)
   :returning :int)
 
 
-(uffi:def-function "OCIHandleAlloc" 
+(uffi:def-function "OCIHandleAlloc"
     ((parenth      :pointer-void)              ; const dvoid *
      (hndlpp       (* :pointer-void))          ; dvoid **
      (type         ub4)                                ; ub4