r10352: 03 Mar 2005 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / oodml.lisp
index b1a5d6adc117ef8481b06a697d6dd8ee4fb89cbe..4644bf1c1589fdb351bb5ea1833f688d68c7daa1 100644 (file)
            (error "Unable to update records"))))
   (values))
 
-(defmethod update-records-from-instance ((obj standard-db-object)
-                                         &key (database *default-database*))
-  (let ((database (or (view-database obj) database)))
+(defmethod update-records-from-instance ((obj standard-db-object) &key database)
+  (let ((database (or database (view-database obj) *default-database*)))
     (labels ((slot-storedp (slot)
               (and (member (view-class-slot-db-kind slot) '(:base :key))
                    (slot-boundp obj (slot-definition-name slot))))
                                :attribute (gethash :home-key tdbi) 
                                :table jc-view-table))
                          :where jq
-                         :result-types :auto)))
+                         :result-types :auto
+                         :database (view-database object))))
           (mapcar #'(lambda (i)
                       (let* ((instance (car i))
                              (jcc (make-instance jc :view-database (view-database instance))))
                   (list instance jcc)))
             (select (sql-expression :attribute (gethash :foreign-key tdbi) :table jc-view-table)
                     :from (sql-expression :table jc-view-table)
-                    :where jq)))))))
+                    :where jq
+                    :database (view-database object))))))))
 
 
 ;;; Remote Joins