[firebase-br] SQL com WITH LOCK
Daisson
daisson em gmail.com
Sex Ago 11 09:07:01 -03 2006
Bom dia lista.
Em algumas mensagens acima, eu apresentei um problema com relação a
"locar" um registro (lock exclusivo). O Cantu me respondeu dizendo que
para "locar" o registro é necessário utilzar WITH LOCK no comando SQL.
Um detalhe interessante é que, se eu executo o SQL abaixo no IBExpert,
e depois vou executá-lo na aplicação, acontece o seguinte.
SQL =====
SELECT SC00_CONTROLAIDS.*
FROM SC00_CONTROLAIDS
WHERE SC00_CONTROLAIDS.TABELA = 'CO01_DIARIO'
WITH LOCK;
Executo esse SQL no IBExpert, e corretamente o registro esta locado.
Então executo o mesmo SQL na minha aplicação e, depois do Open do
DataSet e sistema pára, fica esperando até a transação, no IBExpert,
for commit/rollbak (não é gerada nenhuma exceção).
Porém, se eu fizer o caminho inverso, ou seja, executo o SQL na
aplicação e depois no IBExpert, consigo alterar o registro (pelo
IBExpert) normalmente.
Posso estar enganado, mas pra mim isso parece problema de Driver de
conexão. Porque se eu abrir 2 janelas do SQL Editor no IBExpert e
executar o SQL acima, na segunda execução eu recebo uma exceção de
'lock conflict'.
Na aplicação utilizamos o driver da UIB para DBX, e o IBExpert usa o
driver InterXpress, correto ?
Baixei a última versão do driver no site da UIB, só que é bem
complicado para instalar (existe algum lugar onde eu posso baixar
somente a DLL ?).
Pergunto a vocês, isso realmente é um problema de driver ou não tem
ligação com isso?
Obrigado.
--
Daisson
Mais detalhes sobre a lista de discussão lista