Блокировка таблицы с транзакцией в ODBCC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Блокировка таблицы с транзакцией в ODBC

Сообщение Anonymous »

Код: Выделить всё

ret = SQLExecDirect( stmt2, "BEGIN", SQL_NTS );
ret = SQLTables( stmt1 );
for( SQLFetch( stmt1 ); ; SQLFetch( stmt1 ) )
{
// get catalog
// get schema
// get table
ret = SQLExecDirect( stmt2, "IF NOT EXIST( SELECT * FROM  WHERE name =  AND schema =  ) INSERT INTO  VALUES( , , .... )", SQL_NTS );
}
ret = SQLExecDirect( stmt2, "COMMIT", SQL_NTS );
(проверка ошибок и подготовка опущены для ясности)
У меня есть пара вопросов относительно приведенного выше кода.
  • На период этой транзакции мне нужно, чтобы была заблокирована, чтобы невозможно было выполнить чтение/запись.
    Как я могу это сделать?
  • Думаю, мне нужна одна транзакция. Правильно ли я делаю это с помощью запроса оператора INSERT?
  • Должен ли я сделать 2 запроса в транзакции, разделив проверку записи и фактическую вставку?


Подробнее здесь: https://stackoverflow.com/questions/793 ... on-in-odbc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»