]> git.joonet.de Git - adminer.git/commitdiff
Generalize transactions
authorJakub Vrana <jakub@vrana.cz>
Tue, 9 Jul 2013 18:43:01 +0000 (11:43 -0700)
committerJakub Vrana <jakub@vrana.cz>
Tue, 9 Jul 2013 18:43:01 +0000 (11:43 -0700)
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/simpledb.inc.php
adminer/include/driver.inc.php
adminer/select.inc.php

index 2d8dcb803c8c1708aa393e48f4717ded98f9e4f5..eb527ca772c07d583acbe99f653b74337123ed66 100644 (file)
@@ -258,6 +258,10 @@ if (isset($_GET["mssql"])) {
                        return true;
                }
                
+               function begin() {
+                       return queries("BEGIN TRANSACTION");
+               }
+               
        }
 
 
@@ -485,10 +489,6 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table)
                ;
        }
        
-       function begin() {
-               return queries("BEGIN TRANSACTION");
-       }
-       
        function last_id() {
                global $connection;
                return $connection->result("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT
index 122b9f0978ec39480a6d95724946ca4e916d7be7..07ccb89b6b893c1f5d64bc4a78b79ec1c92f4f80 100644 (file)
@@ -837,13 +837,6 @@ if (!defined("DRIVER")) {
                return array(); // "SQL" not required
        }
        
-       /** Begin transaction
-       * @return bool
-       */
-       function begin() {
-               return queries("BEGIN");
-       }
-       
        /** Get last auto increment ID
        * @return string
        */
index 8991d8176630f0971d3827d4ce9adf0b16c92a0b..3dbcbd31b79129fe630268f039fac4d70628fb51 100644 (file)
@@ -138,6 +138,10 @@ if (isset($_GET["oracle"])) {
                
                //! support empty $set in insert()
                
+               function begin() {
+                       return true; // automatic start
+               }
+               
        }
 
 
@@ -328,10 +332,6 @@ ORDER BY uc.constraint_type, uic.column_position", $connection2) as $row) {
                return apply_queries("DROP TABLE", $tables);
        }
 
-       function begin() {
-               return true; // automatic start
-       }
-       
        function last_id() {
                return 0; //!
        }
index e51a6b7dd32daeff2c96a89d8e1100088eef6377..70cc02a2a0214844878e15ec0b21f0739f0ede61 100644 (file)
@@ -539,10 +539,6 @@ ORDER BY p.proname');
                return get_vals("SELECT langname FROM pg_catalog.pg_language");
        }
        
-       function begin() {
-               return queries("BEGIN");
-       }
-       
        function last_id() {
                return 0; // there can be several sequences
        }
index ebef51ffbb56787cedb69e5a8170843e5c2901b9..9373ca88eadb33dd7efad29297472707dac9ffbd 100644 (file)
@@ -210,6 +210,18 @@ if (isset($_GET["simpledb"])) {
                        return true;
                }
                
+               function begin() {
+                       return false;
+               }
+               
+               function commit() {
+                       return false;
+               }
+               
+               function rollback() {
+                       return false;
+               }
+               
        }
        
        
index 31f805716fb506af988167be057c081f0656424c..30637f526e1153dd3ad490effe2a2f067ee878dc 100644 (file)
                return false;
        }
        
+       /** Begin transaction
+       * @return bool
+       */
+       function begin() {
+               return queries("BEGIN");
+       }
+       
+       function commit() {
+               return queries("COMMIT");
+       }
+       
+       function rollback() {
+               return queries("ROLLBACK");
+       }
+       
 }
index 421642244674604088165c0f44c487b403a415f4..252b11055e04805c460a662d18a4ba7c8ec09150 100644 (file)
@@ -173,7 +173,7 @@ if ($_POST && !$error) {
                        $cols = array_keys($fields);
                        preg_match_all('~(?>"[^"]*"|[^"\\r\\n]+)+~', $file, $matches);
                        $affected = count($matches[0]);
-                       begin();
+                       $driver->begin();
                        $separator = ($_POST["separator"] == "csv" ? "," : ($_POST["separator"] == "tsv" ? "\t" : ";"));
                        $rows = array();
                        foreach ($matches[0] as $key => $val) {
@@ -192,10 +192,10 @@ if ($_POST && !$error) {
                        }
                        $result = (!$rows || $driver->insertUpdate($TABLE, $rows, $primary));
                        if ($result) {
-                               queries("COMMIT");
+                               $driver->commit();
                        }
                        queries_redirect(remove_from_uri("page"), lang('%d row(s) have been imported.', $affected), $result);
-                       queries("ROLLBACK"); // after queries_redirect() to not overwrite error
+                       $driver->rollback(); // after queries_redirect() to not overwrite error
                        
                }
        }