|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
Добрый день всем! Старая история с новыми проблемами. Перехожу с PB9 (Ent) на PB11.5 (Prof), MS SQL 2005, ODBC. Не работает конструкция sqlca.AutoCommit = FALSE INSERT INTO Customer WITH (TABLOCK) (name, personType) VALUES (:ls_fullname, :li_type); IF sqlca.SqlCode = 0 THEN SELECT Max(personID) INTO :ll_personid FROM Customer; COMMIT; else ROLLBACK; end if sqlca.AutoCommit = True Приложение зависает на команде "INSERT", таблица не блокируется. Может, кто-нибудь сталкивался с такой бедой? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 11:24 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
1. AutoCommit лучше установить в true. 2. Кто-нибудь еще с этой базой работает? 3. Покажите что видно в Profiler'е. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 12:26 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
Profiler на SQL : set implicit_transactions on SET FMTONLY ON select * from Customer where 1=2 SET FMTONLY OFF В DBTRACE.LOG: (a3a0c10): BEGIN TRANSACTION:(DBI_START_TRAN) (117.434 MS) (a3a0c10): (DBI_SPECIAL_DECIMAL) (117.435 MS) (a3a0c10): (DBI_SPECIAL_DOUBLE) (117.435 MS) (a3a0c10): PREPARE WITH BIND VARIABLES: (a3a0c10): INSERT Customer WITH ( TABLOCK ) ( name , personType ) VALUES ( ? , ? ) (a3a0c10): VCHAR Length=52 ID=? *Носкова Надежда Филипповна* (a3a0c10): INT Length=0 ID=? (DBI_PREPARE_WITHPARM) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 12:31 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
Других соединений с базой нет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 12:33 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
В profiler'е это SET FMTONLY ON select * from Customer where 1=2 SET FMTONLY OFF statment complete? Если да, то поставьте большую детализацию событий в pofiler'е (из приведенного не ясно начала ли только исполняться инструкция или уже исполнилась). Попробуйте в PBParm транзакции поставить DisableBind=1. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 13:31 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
Добавила DisableBind=1, заработала команда. Мне непонятно, почему этот параметр помог, надо разбираться. Марк, спасибо большое за помощь. Боюсь, что пока я перейду с Native Driver на ODBC, еще не раз обращусь к вам за помощью ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 14:43 |
|
INSERT with TABLOCKX
|
|||
---|---|---|---|
#18+
nfiДобавила DisableBind=1, заработала команда. Мне непонятно, почему этот параметр помог, надо разбираться. Либо у Вас там где-то блокировки (обратите внимание, не открывает ли PB второе подключение), либо все зависает в самом PB. А DisableBind меняет способ генерации SQL кода и все то, что в логе у Вас приведено не генерируется. Кстати, если AutoCommit установить в true, то транзакцию начинать и заканчивать нужно явно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2010, 15:09 |
|
|
start [/forum/topic.php?fid=15&msg=36457770&tid=1336038]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 319ms |
total: | 560ms |
0 / 0 |