+16 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
+ * Version 2.7.3: Implement RECONNECT
+
15 Apr 2004 Kevin Rosenberg (kevin@rosenberg.net)
* Version 2.7.2: Fix ODBC on Lispworks Windows
(define-condition clsql-simple-warning (simple-condition clsql-warning)
())
+(define-condition clsql-generic-error (clsql-error)
+ ((message :initarg :message
+ :reader clsql-generic-error-message))
+ (:report (lambda (c stream)
+ (format stream (clsql-generic-error-message c)))))
+
(define-condition clsql-invalid-spec-error (clsql-error)
((connection-spec :initarg :connection-spec
:reader clsql-invalid-spec-error-connection-spec)
closed. When non-nil (this is the default value) the connection is
closed without error checking. When FORCE is nil, an error is signaled
if the database connection has been lost."
- ;; TODO: Support all backends. Perhaps integrate with pools
- ;; Handle error and force keywords
- (declare (ignore database error force)))
+ (let ((db (etypecase database
+ (database database)
+ ((or string list)
+ (let ((db (find-database database :errorp nil)))
+ (when (null db)
+ (if (and database errorp)
+ (error 'clsql-generic-error
+ :message
+ (format nil "Unable to find database with connection-spec ~A." database))
+ (return-from reconnect nil)))
+ db)))))
+
+ (when (is-database-open db)
+ (if force
+ (ignore-errors (disconnect db))
+ (disconnect db :error nil)))
+
+ (connect (connection-spec db))))
(defun status (&optional full)
* Change depends (closes:243977)
* Add new backend
- -- Kevin M. Rosenberg <kmr@debian.org> Thu, 15 Apr 2004 17:13:52 -0600
+ -- Kevin M. Rosenberg <kmr@debian.org> Fri, 16 Apr 2004 11:47:51 -0600
cl-sql (2.6.7-1) unstable; urgency=low