Files
php-doc-ru/reference/sqlsrv/functions/sqlsrv-commit.xml
2021-11-15 09:55:06 +03:00

135 lines
4.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 66fffcdfbb9d97a1618b9e47f9be19a83f80e32b Maintainer: evvc Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.sqlsrv-commit" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>sqlsrv_commit</refname>
<refpurpose>Фиксирует транзакцию, начатую с помощью <function>sqlsrv_begin_transaction</function></refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>sqlsrv_commit</methodname>
<methodparam><type>resource</type><parameter>conn</parameter></methodparam>
</methodsynopsis>
<para>
Фиксирует транзакцию, начатую с помощью <function>sqlsrv_begin_transaction</function>.
Соединение возвращается в режим автоматической фиксации после вызова <function>sqlsrv_commit</function>.
Подтверждённая транзакция включает все операторы, которые были выполнены после вызова <function>sqlsrv_begin_transaction</function>.
Явные транзакции должны запускаться и фиксироваться или откатываться с использованием этих функций вместо выполнения SQL-операторов,
которые запускают и фиксируют/откатывают транзакции.
Для получения дополнительной информации смотрите <link xlink:href="&url.sqlsrv.transaction.handling;">Транзакции SQLSRV</link>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>conn</parameter></term>
<listitem>
<para>
Соединение, на котором должна быть совершена транзакция.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <function>sqlsrv_commit</function></title>
<para>
В следующем примере показано, как использовать <function>sqlsrv_commit</function>
вместе с <function>sqlsrv_begin_transaction</function> и
<function>sqlsrv_rollback</function>.
</para>
<programlisting role="php">
<![CDATA[
<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true ));
}
/* Начало транзакции. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
die( print_r( sqlsrv_errors(), true ));
}
/* Инициализация значения параметров. */
$orderId = 1; $qty = 10; $productId = 100;
/* Настройка и выполнение первого запроса. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );
/* Настройка и выполнение второго запроса. */
$sql2 = "UPDATE InventoryTable
SET Quantity = (Quantity - ?)
WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );
/* Если оба запроса были успешными, зафиксируйте транзакцию. */
/* В противном случае откатите транзакцию */
if( $stmt1 && $stmt2 ) {
sqlsrv_commit( $conn );
echo "Транзакция зафиксирована.<br />";
} else {
sqlsrv_rollback( $conn );
echo "Транзакция откачена.<br />";
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sqlsrv_begin_transaction</function></member>
<member><function>sqlsrv_rollback</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->