На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> не работают транзакции в MS Access , при подключении к .mdb через ODBC
    подключаюсь из среды Qt 4 (C++) при помощи строки ODBC
    Цитата
    str_conn="DRIVER={Microsoft Access Driver (*.mdb)};FIL={MSAccess};DSN='MSAccess';DBQ=C:/db/my_base.mdb";
    Пытаюсь использовать транзакцию
    Цитата
    bool is_good=true;
    QSqlDatabase::database("my_conn").transaction();

    is_good=qry.exec("DELETE ...");
    if(is_good && .....)
    is_good=qry.exec("INSERT INTO ....");
    if()if()if()

    if(is_good)
    {
    QSqlDatabase::database("my_conn").commit();
    else
    QSqlDatabase::database("my_conn").rollback();
    Транзакция не срабатывает. Вообще, это возможно-использовать транзакции в Access через ODBC?
      Транзакции в MS Access - это не транзакции в том смысле, в каком их интерпретируют "нормальные" SQL-серверы, а просто эмуляция - снапшот + UNDO-буфер. Работают ТОЛЬКО из среды MS Access и ТОЛЬКО с таблицами в текущей БД - т.е. ни со связанными таблицами, ни с обновляемыми запросами не работают (хотя и обрабатываются синтаксически - ошибок не возникает).
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0160 ]   [ 16 queries used ]   [ Generated: 25.04.24, 00:40 GMT ]