r10845: 26 Nov 2005 Kevin Rosenberg <kevin@rosenberg.net>
[clsql.git] / sql / transaction.lisp
index 089ce0c2aa899147849a12e939be26b78b779c1a..a9df87fd59f9f579c4aadf19a9b804c832397b30 100644 (file)
@@ -49,8 +49,10 @@ is called on DATABASE which defaults to *DEFAULT-DATABASE*."
       (setf (commit-hooks transaction) nil
             (rollback-hooks transaction) nil
             (transaction-status transaction) nil)
-      (unless (eq :oracle (database-underlying-type database))
-       (execute-command "BEGIN" :database database)))))
+      (case (database-underlying-type database)
+        (:oracle nil)
+        (:mssql (execute-command "BEGIN TRANSACTION" :database database))
+        (t (execute-command "BEGIN" :database database))))))
 
 (defmethod database-commit-transaction ((database database))
   (with-slots (transaction transaction-level autocommit) database