Поделиться через


Пример Transactions Technology

Обновлен: Ноябрь 2007

В этом примере демонстрируется использование транзакций в приложении .NET Framework. В нем специально иллюстрируются функции транзакций "фиксировать" и "отменить" при помощи извлечения значения из базы данных SQL Server с разрешением для пользователя изменять значение и отправлять новое значение в базу данных.

awsb14xh.alert_note(ru-ru,VS.90).gifПримечание.

Для построения и выполнения этого примера на компьютере необходим Microsoft SQL Server 2000 или более поздняя версия, а ядро базы данных должно быть настроено для использования проверки подлинности. Для других конфигураций необходимо редактирование строки подключения SQL в файле TxObj.cs или TxObj.vb.

Дополнительные сведения об использовании примеров см. в следующих разделах:

Создание базы данных TxDemoDB

  1. Откройте окно командной строки и перейдите к одной из вложенных папок в каталоге Technologies\ComponentServices\Transactions, соответствующей выбранному языку.

  2. В командной строке введите osql -E -S (local)\SQLExpress -i TxDB.sql. В качестве альтернативы откройте окно SQL Server Query Analyzer, загрузите TxDB.sql и выберите Выполнить.

    Результатом этих действий будет создание новой базы данных TxDemoDB в SQL Server.

Построение примера с использованием командной строки

  1. Откройте окно командной строки и перейдите к одной из языковых папок в каталоге Technologies\ComponentServices\Transactions или используйте такое же окно командной строки, какое использовалось выше для создания базы данных TxDemoDB.

  2. Введите в командной строке msbuild TransactionsCS.sln или msbuild TransactionsVB.sln, в зависимости от выбранного языка программирования.

Построение примера с использованием Visual Studio

  1. Откройте обозреватель Windows и перейдите к вложенной папке для данного примера, соответствующей выбранному языку.

  2. Дважды щелкните значок файла TransactionsCS.sln или TransactionsVB.sln, в зависимости от выбранного языка программирования, чтобы открыть его в Visual Studio.

  3. В меню Построение выберите команду Построить решение.

Выполнение примера

  1. Откройте окно командной строки или обозреватель Windows и перейдите в каталог, содержащий вновь собранный исполняемый файл.

  2. В командной строке введите TxDemo.exe или дважды щелкните значок исполняемого файла, чтобы запустить его в обозревателе Windows.

  3. Текущее значение считывается из базы данных и отображается.

  4. Введите число равное или больше 0 и меньшее или равное 10 в поле Новое значение и нажмите кнопку Отправить.

  5. Должно появиться сообщение "Готовность к фиксации транзакции". Нажмите кнопку ОК. Поле Текущее значение обновляется вновь введенным значением.

  6. Введите число меньшее 0 или большее 10 в поле Новое значение. Нажмите кнопку Отправить.

  7. Должно появиться сообщение "Готовность отмены транзакции, так как новое значение ([значение]) <0 или >10.". Нажмите кнопку ОК. Имейте в виду, что поле Текущее значение не изменяется. По этой причине во время транзакции текущее значение не менялось, но при откате транзакции значение было изменено на свое оригинальное значение.

  8. Теперь следует попробовать те же данные с кнопкой Автоотправка. При отмене транзакции примером создается COMException. Это делается для оповещения AutoComplete произвести отмену.

Удаление примера

  1. В окне командной строки перейдите в каталог, в котором запускался msbuild.exe или в котором открывался файл .sln.

  2. Введите в командной строке msbuild.exe TransactionsVB.vbproj /t:Clean или msbuild.exe TransactionsCS.csproj/t:Clean, в зависимости от выбранного языка программирования. Это действие вызывает regsvcs.exe и gacutil.exe с переключателем /u для удаления файлов примеров из каталога COM+ и глобального кэша сборок.

  3. В командной строке введите osql -E -S (local)\SQLExpress -i TxDBClean.sql. В качестве альтернативы откройте окно SQL Server Query Analyzer, загрузите файл TxDBClean.sql и выберите команду Выполнить. Результатом этого действия будет удаление базы данных TXDemoDB database из SQL Server.

Требования

Версия .Net Framework: 2.0, 1.1, 1.0

Примечания

Транзакция — это набор связанных операций. Могут выполняться либо все эти операции, либо ни одной. При сбое хотя бы одной операции в транзакции, должен быть произведен откат всех предыдущих операций, чтобы гарантировать отсутствие несогласованности.

Дополнительные сведения о создании двоичного образца и шагов регистрации см. в комментариях к файлам исходного кода. Компонент C# появляется в инструменте администрирования службы компонентов в виде TxDemoServerCS.TxObject. Версия VB появляется в виде TxDemoServerVB.TxObject.

См. также

Основные понятия

Локальные транзакции (ADO.NET)

Ссылки

AutoCompleteAttribute

ContextUtil

ServicedComponent

System.ComponentModel

System.Data

System.Data.SqlClient

System.Drawing

System.EnterpriseServices

System.Reflection

System.Runtime.InteropServices

System.Runtime.Serialization

System.Windows.Forms

TransactionAttribute

TransactionOption

WebMethodAttribute