Re: ORA-01000: maximum open cursors exceeded
Kevin Rosenberg <kevin-HJRc7zDS/[email protected]> Thu, 8 Sep 2005 09:03:43 -0600
| Newsgroups | gmane.lisp.clsql.devel |
|---|---|
| Message-ID | <[email protected]> |
Edi Weitz wrote: > I had to apply the attached patch to make it compile but other than > that it seems to work fine and the problems I reported are gone. Thanks for the correction and the testing. > Once again - thanks for the quick fix! It's a pleasure working with you. Kevin > diff -ru /tmp/clsql-3.2.2-orig/db-oracle/oracle-sql.lisp clsql-3.2.2/db-oracle/oracle-sql.lisp > --- /tmp/clsql-3.2.2-orig/db-oracle/oracle-sql.lisp 2005-09-08 08:10:42.000000000 +0200 > +++ clsql-3.2.2/db-oracle/oracle-sql.lisp 2005-09-08 16:39:43.121126400 +0200 > @@ -129,7 +129,7 @@ > (cond > (database > (with-slots (errhp) database > - (let ((errcode (uffi:allocate-foreign-string :long)) > + (let ((errcode (uffi:allocate-foreign-object :long)) > (errbuf (uffi:allocate-foreign-string #.+errbuf-len+))) > ;; ensure errbuf empty string > (setf (uffi:deref-array errbuf '(:array :unsigned-char) 0) > @@ -469,35 +469,36 @@ > > (defun sql-stmt-exec (sql-stmt-string db result-types field-names) > (with-slots (envhp svchp errhp) db > - (let ((stmthp (uffi:allocate-foreign-object :pointer-void))) > + (let ((stmthp (uffi:allocate-foreign-object :pointer-void)) > + select-p) > + > (uffi:with-foreign-object (stmttype :unsigned-short) > - > (unwind-protect > - (progn > - (oci-handle-alloc (deref-vp envhp) > - stmthp > - +oci-htype-stmt+ 0 +null-void-pointer-pointer+) > - (oci-stmt-prepare (deref-vp stmthp) > - (deref-vp errhp) > - (uffi:convert-to-cstring sql-stmt-string) > - (length sql-stmt-string) > - +oci-ntv-syntax+ +oci-default+ :database db) > - (oci-attr-get (deref-vp stmthp) > - +oci-htype-stmt+ > - stmttype > - +unsigned-int-null-pointer+ > - +oci-attr-stmt-type+ > - (deref-vp errhp) > - :database db) > - > - (let* ((select-p (= (uffi:deref-pointer stmttype :unsigned-short) 1)) > - (iters (if select-p 0 1))) > - > - (oci-stmt-execute (deref-vp svchp) > - (deref-vp stmthp) > - (deref-vp errhp) > - iters 0 +null-void-pointer+ +null-void-pointer+ +oci-default+ > - :database db))) > + (progn > + (oci-handle-alloc (deref-vp envhp) > + stmthp > + +oci-htype-stmt+ 0 +null-void-pointer-pointer+) > + (oci-stmt-prepare (deref-vp stmthp) > + (deref-vp errhp) > + (uffi:convert-to-cstring sql-stmt-string) > + (length sql-stmt-string) > + +oci-ntv-syntax+ +oci-default+ :database db) > + (oci-attr-get (deref-vp stmthp) > + +oci-htype-stmt+ > + stmttype > + +unsigned-int-null-pointer+ > + +oci-attr-stmt-type+ > + (deref-vp errhp) > + :database db) > + > + (setq select-p (= (uffi:deref-pointer stmttype :unsigned-short) 1)) > + (let ((iters (if select-p 0 1))) > + > + (oci-stmt-execute (deref-vp svchp) > + (deref-vp stmthp) > + (deref-vp errhp) > + iters 0 +null-void-pointer+ +null-void-pointer+ +oci-default+ > + :database db))) > ;; free resources unless a query > (unless select-p > (oci-handle-free (deref-vp stmthp) +oci-htype-stmt+) > _______________________________________________ > CLSQL-Devel mailing list > [email protected] > http://lists.b9.com/mailman/listinfo/clsql-devel -- Kevin Rosenberg kevin-HJRc7zDS/[email protected]