Как выключить AutoCommit в SDAC

uZver
Дата: 30.11.2007 12:34:32
Использую Delphi 7, SDAC, MS SQL Server 2005

Делаю insert into .... в MSQuery,
потом делаю MSConnection.Commit;
а он кричит что Commit уже был

Как выключить AutoCommit ?

Я хочу сделать Commit в конце, а не после каждой вставки.

Уже просмотрел свойства MSConnection и MSQuery вдоль и воперек, никак не могу найти :(
sqllex
Дата: 30.11.2007 14:43:22
А StartTransaction соединению вы делаете, чтобы потом вызвать ему Commit?
По умолчанию работает режим: 1 запрос - 1 транзакция.
uZver
Дата: 30.11.2007 23:04:30
Я уже нашел ответ на каком то английском форуме, но все равно спасибо !

У меня еще один вопрос:

Правильно ли я понимаю ниже сказанное ?

Когда открывать для редактирования DBF файл через TTable то блокируется весь файл.

А когда открыть для редактирования через компоненту MSTable (из набора SDAC, база MS SQL Server 2005), то блокируется только строка.
uZver
Дата: 01.12.2007 20:51:23
люди ну скажите пожалуйста что нибудь по моему вопросу ...
Doomer
Дата: 05.12.2007 12:13:18
uZver
люди ну скажите пожалуйста что нибудь по моему вопросу ...

Блокировки на время транзакции накладываются всегда. Но блокировки бывают разные (зависит от явного уровня изоляции, или хинтов). Начните транзакцию, выполните запрос и посмотрите, какие блокировки установились.
Забудьте про Table. Сразу используйте Query.
Поищите и почитайте статьи по запросу "блокировки MS SQL".
Тогда будете задавать уже более конкретные вопросы.
Petro123
Дата: 05.12.2007 12:25:56
uZver
люди ну скажите пожалуйста что нибудь по моему вопросу ...

скорее всего не парные команды:
- ADOConnection.BeginTran
- ADOConnection.Commit

IMHO
вставки этих 2-х строк достаточно, чтобы коммит не шёл автоматом
Petro123
Дата: 05.12.2007 12:27:18
Petro123
uZver
люди ну скажите пожалуйста что нибудь по моему вопросу ...

скорее всего не парные команды:
- ADOConnection.BeginTran
- ADOConnection.Commit

IMHO
вставки этих 2-х строк достаточно, чтобы коммит не шёл автоматом

пардон - делал в ADO.
SDAC ???
Кроик Семён
Дата: 06.12.2007 13:49:58
если в SDAC сделать Connection.StartTransaction перед инсертами, то пока не выполнишь Commit изменения зафиксированы не будут.