Changes from darcs patch:
authornathan@acceleration.net <nathan@acceleration.net>
Fri, 22 Feb 2008 21:50:18 +0000 (16:50 -0500)
committerNathan Bird <nathan@acceleration.net>
Mon, 2 Feb 2009 20:17:51 +0000 (15:17 -0500)
Mon Jun 18 14:14:21 EDT 2007  Nathan Bird <nathan@acceleration.net>
  * Converting update-record-from-slot to call update-record-from-slots

sql/oodml.lisp

index 8ffe50347e602c56027f761d13a814e600b3354c..b5a5907176bb44646287d2eef2bb2663e64f64b3 100644 (file)
                      *default-database*))
       (signal-no-database-error nil)))
 
-(defmethod update-record-from-slot ((obj standard-db-object) slot &key
-                                   database)
-  (let* ((database (choose-database-for-instance obj database))
-         (vct (view-table (class-of obj)))
-         (sd (slotdef-for-slot-with-class slot (class-of obj))))
-    (check-slot-type sd (slot-value obj slot))
-    (let* ((att (view-class-slot-column sd))
-           (val (db-value-from-slot sd (slot-value obj slot) database)))
-      (cond ((and vct sd (view-database obj))
-             (update-records (sql-expression :table vct)
-                             :attributes (list (sql-expression :attribute att))
-                             :values (list val)
-                             :where (key-qualifier-for-instance
-                                     obj :database database)
-                             :database database))
-            ((and vct sd (not (view-database obj)))
-             (insert-records :into (sql-expression :table vct)
-                             :attributes (list (sql-expression :attribute att))
-                             :values (list val)
-                             :database database)
-             (setf (slot-value obj 'view-database) database))
-            (t
-             (error "Unable to update record.")))))
-  (values))
+(defmethod update-record-from-slot ((obj standard-db-object) slot
+                                   &key database)
+  (update-record-from-slots obj (list slot) :database database))
 
 (defmethod update-record-from-slots ((obj standard-db-object) slots
                                     &key database)
                            :database database)
            (setf (slot-value obj 'view-database) database))
           (t
-           (error "Unable to update record"))))
+           (error "Unable to update record."))))
   (values))
 
 (defmethod update-records-from-instance ((obj standard-db-object) &key database)