;;;; Purpose: Low-level ODBC API using UFFI
;;;; Authors: Kevin M. Rosenberg and Paul Meurer
;;;;
-;;;; $Id: odbc-package.lisp 7061 2003-09-07 06:34:45Z kevin $
+;;;; $Id$
;;;;
;;;; This file, part of CLSQL, is Copyright (c) 2004 by Kevin M. Rosenberg
;;;; and Copyright (C) Paul Meurer 1999 - 2001. All rights reserved.
(let ((size (gensym)))
`(let ((,size (length ,string)))
(when (and ,max-length (> ,size ,max-length))
- (error "string \"~a\" of length ~d is longer than max-length: ~d"
- ,string ,size ,max-length))
+ (error 'clsql:sql-database-data-error
+ :message
+ (format nil "string \"~a\" of length ~d is longer than max-length: ~d"
+ ,string ,size ,max-length)))
(with-cast-pointer (char-ptr ,ptr :byte)
(dotimes (i ,size)
(setf (deref-array char-ptr '(:array :byte) i)
(error
'clsql-sys:sql-database-error
:message error-message
- :sql-state sql-state)))
+ :secondary-error-id sql-state)))
(#.$SQL_NO_DATA_FOUND
(progn ,result-code ,@body))
;; work-around for Allegro 7.0beta AMD64 which
(SQLAllocStmt hdbc hstmt-ptr)
(deref-pointer hstmt-ptr 'sql-handle)))))
(if (uffi:null-pointer-p statement-handle)
- (error "Received null statement handle.")
+ (error 'clsql:sql-database-error :message "Received null statement handle.")
statement-handle)))
(defun %sql-get-info (hdbc info-type)
(prog1
(cond (flatp
(when (> column-count 1)
- (error "If more than one column is to be fetched, flatp has to be nil."))
+ (error 'clsql:sql-database-error
+ :message "If more than one column is to be fetched, flatp has to be nil."))
(loop until (= (%sql-fetch hstmt) $SQL_NO_DATA_FOUND)
collect
(read-data (aref data-ptrs 0)
data-ptr str
offset
data-length)))
- (error "wrong type. preliminary."))
+ (error 'clsql:sql-database-error :message "wrong type. preliminary."))
while (and (= res $SQL_SUCCESS_WITH_INFO)
(equal (sql-state +null-handle-ptr+ +null-handle-ptr+ hstmt)
"01004"))
data-ptr str
offset
(min out-len (1- +max-precision+))))
- (error "wrong type. preliminary."))
+ (error 'clsql:sql-database-error :message "wrong type. preliminary."))
while
(and (= res $SQL_SUCCESS_WITH_INFO)
#+ingore(eq (sql-state +null-handle-ptr+ +null-handle-ptr+ hstmt)