X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fdb%2Fsql_functions.inc;h=85a25137df35b6b0997766b38bd4781421366f18;hb=17aa33a74912114ac4e0f00d830ae149a1e85e50;hp=b869f6bdd5fcec3bf1dc3b4b20b736dc3560e41b;hpb=a5242af68e65661edb7175412444dce536a7f311;p=fa-stable.git diff --git a/includes/db/sql_functions.inc b/includes/db/sql_functions.inc index b869f6bd..85a25137 100644 --- a/includes/db/sql_functions.inc +++ b/includes/db/sql_functions.inc @@ -9,21 +9,54 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ +// +// General database functions common for all modules. +// //------------------------------------------------------------------- +// Multilevel transaction control. +// function begin_transaction() { - db_query("BEGIN", "could not start a transaction"); + global $transaction_level; // set in set_global_connection() + + if (!$transaction_level) { + db_query("BEGIN", "could not start a transaction"); + } + $transaction_level++; } function commit_transaction() { - db_query("COMMIT", "could not commit a transaction"); + global $transaction_level; + + $transaction_level--; + + if (!$transaction_level) { + db_query("COMMIT", "could not commit a transaction"); + } } +/* + This function is called on end of script execution to cancel + all aborted transactions (if any) +*/ function cancel_transaction() { - db_query("ROLLBACK", "could not cancel a transaction"); + global $transaction_level; + + if ($transaction_level) { + db_query("ROLLBACK", "could not cancel a transaction"); + } } +//----------------------------------------------------------------------------- +// Update record activity status. +// +function update_record_status($id, $status, $table, $key) { + $sql = "UPDATE ".TB_PREF.$table." SET inactive = " + . db_escape($status)." WHERE $key=".db_escape($id); + + db_query($sql, "Can't update record status"); +} ?>