Главная ]
1.3.13.Вызов isc_start_transaction()
Программирование
Базы данных



 

Как только дескриптор транзакции и TPB подготовлены, транзакция может стартовать посредством вызова isc_start_transaction(), использующей следующий синтаксис:

ISC_STATUS isc_start_transaction(ISC_STATUS *status vector,

isc_tr_handle *trans_handle,

short db_count,

isc_db_handle *&db_handle,

unsigned short tpb_length,

char *tpb_ad);

Для транзакции, которая выполняется для единственной базы данных, установите  db_count в 1. db_handle должен быть установлен уже ф-ей isc_attach_database (), tpb_length - размер TPB, и isc_tpb - адрес TPB. Пример:

#include <ibase.h>

. . .

ISC_STATUS status_vector[20];

isc_db_handle db1;

isc_tr_handle tr1;

static char isc_tbp[] = {isc_tpb_version3,

isc_tpb_write,

isc_tpb_concurrency,

isc_tpb_wait};

. . .

/* Здесь инициализируем дескрипторы БД и транзакции */

db1 = 0L;

tr1 = 0L;

. . .

/* Код для подключения к БД здесь опущен*/

isc_start_transaction(status_vector, &tr1, 1, &db1, (unsigned short) sizeof(isc_tpb), isc_tpb);

Транзакция может быть открыта для нескольких БД. Для этого установите db_count в число БД для которых будет запущена транзакция, где для каждой БД повторяется группа параметров db_handle, tpb_length, and isc_tpb. Пример:

isc_start_transaction(status_vector, &tr1 ,2, &db1,(unsigned short) sizeof(isc_tpb), &tpb,

&db2,(unsigned short) sizeof(tpb),&tpb);  

<< Назад ] Содержание ] Далее >> ]

 

Дизайн: Piton Alien
Rambler's Top100 Рейтинг@Mail.ru
Сайт создан в системе uCoz