Russian Qt Forum

Qt => Базы данных => Тема начата: ИГ от Ноябрь 03, 2005, 18:13



Название: Транзакции в Qt
Отправлено: ИГ от Ноябрь 03, 2005, 18:13
А существует ли в Qt способ установки уровня изоляции и других параметров транзации? Конкретно - интересует Firebird (Interbase). А то как-то не охота в исходниках драйвера копаться и модифицировать его...


Название: Re: Транзакции в Qt
Отправлено: carpovpv от Июль 05, 2011, 12:17
К сожалению, нет. Однако это легко можно модифицировать стандартный драйвер. Мало того настройки параметров по умолчанию очень плохо сказываются на производительности приложений.


Название: Re: Транзакции в Qt
Отправлено: forallstuff от Июль 26, 2011, 14:42
А с MySQL как дела? Можно ли в QSqlQuery писать весь код транзакции?
Код:
tran = "BEGIN TRANSACTION
INSERT СОТРУДНИКИ (TAB) VALUES (5)
INSERT ОТРАБОТАНО (TAB) VALUES (5)
IF @@ERROR = 0
COMMIT
ELSE
ROLLBACK ";
query.prepare( tran );
query.exec( );


Название: Re: Транзакции в Qt
Отправлено: lit-uriy от Июль 26, 2011, 16:50
>>Можно ли в QSqlQuery писать весь код транзакции?
попробуй и отпишись.
Я только на одну граблю в QSqlQuery наступал, точка с запятой не канает в выражении (не помню какую ошибку возвращает), тестил на FB и SQLite.
Например:
Код
SQL
CREATE  TABLE wrk (
id INTEGER PRIMARY KEY AUTOINCREMENT,
RefDes Text,
Type Text,
Value Text,
FullName Text,
RefName Text,
Pattern Text);
 
 
/*  ========== Заполнение таблицы wrk ===============   */
 
/* использование запроса */
INSERT INTO wrk (
RefDes,
Type,
Value,
FullName,
Pattern)
 
SELECT
RefDes,
ComponentName,
Value,
(ComponentName || (CASE WHEN Value = '' THEN '' ELSE (' ' || Value) END)),
PatternName
FROM PCB
нужно отдельными  запросами делать


Название: Re: Транзакции в Qt
Отправлено: Странник от Июль 26, 2011, 17:54
Я только на одну граблю в QSqlQuery наступал, точка с запятой не канает в выражении (не помню какую ошибку возвращает), тестил на FB и SQLite.
в MS SQL работает, так что зависит от драйвера.