Depois de ler boa parte do manual do SQL Server acabei descobrinod o problema!
Infelizmente esta entre a cadeira e o teclado e SQL Server! Quando faço um select em qualquer tabela, inclusive a que está sendo alterada, é perdido o cursor para aquele registro que o delphi está trabalhando! A solução para o problema é colocar o codigo do select e do update dentro de uma stored procedure! Assim ele cria um novo cursor para o contexto da Stored Procedure! não interferindo no cursor da Trigger! Em 23/02/06, Filipe <[EMAIL PROTECTED]> escreveu: > > vá em "Tools / debugger options / Language Exceptions" e desmarque a > caixa "Stop on Delphi exceptions". > > Não sei o que pode estar causando o erro, mas desta maneira talvez > resolva, não mostrando a mensagem de erro. > > > > []'s > > Filipe Geyer > > > ----- Original Message ----- > From: Carlos Delfino Carvalho Pinheiro > To: delphi-br@yahoogrupos.com.br > Sent: Thursday, February 23, 2006 8:48 AM > Subject: [delphi-br] TRIGGER faz com que Delphi emita Erro, porque? > > > Pessoal, bons dias! > > Estou com um probleminha aqui me "apurrinhando"! > > Criei uma Trigger para validar a entrada de dados em uma tabela, mas > quando ativo esta Stored Procedure, o delphi emite o seguinte erro: > > --------------------------- > Debugger Exception Notification > --------------------------- > Project GerenteItensDeEstoque.exe raised exception class EOleException > with message 'A linha não pode ser localizada para atualização. Alguns > valores podem ter sido alterados desde que ela foi lida pela última > vez'. Process stopped. Use Step or Run to continue. > --------------------------- > OK Help > --------------------------- > > Quando verifico a Tabela ela está integra, os dados foram todos > armazenado! > > Depois de depurar a aplicação percebi que o o post é feito > corretamente, e o problema ocorre quando vou acessar a tabela para > leitura. Já tentei fechar e abrir a tabela, mas achei isto muito > despendioso e não resouveu o problema pois como perco o registro > dentro do delphi não consigo achar a chave primaria! > > abaixo segue a Trigger: > CREATE TRIGGER [ValidateItemDeEstoque] ON [siga][dbo].[ItemDeEstoque] > FOR INSERT, UPDATE > AS > BEGIN > DECLARE @v_Codigo VARCHAR(13) > -- PROCURA CODIGO EAN REPETIDO APOS A INSERÇÃO, > -- IGNORANDO OS NULLOS E BRANCOS > SELECT @v_Codigo = item.CodigoEAN > FROM ItemDeEstoque AS Item > INNER JOIN INSERTED > ON Item.CodigoEAN = inserted.CodigoEAN > WHERE item.CodigoEAN IS NOT NULL > AND item.CodigoEAN <> '' > -- SE OUVER MAIS DE UMA LINHA COM O MESMO CODIGO ELE CANCELA A > INSERÇÃO. > IF (@@ROWCOUNT >1) > BEGIN > RAISERROR('Codigo de EAN: %s já cadastrado!', 11, 1, > @v_Codigo) > ROLLBACK TRANSACTION > END > -- CASO NÃO EXISTA, ELE VÁLIDA O CODIGO > ELSE > BEGIN > -- SE O CODIGO EAN FOR BRANCO ELE DEFINE COMO NULO. > UPDATE ItemDeEstoque > SET CodigoEAN = CASE REPLACE(CodigoEAN, ' ', '') > WHEN '' THEN NULL > ELSE CodigoEAN > END > WHERE CodigoEAN IN (SELECT CodigoEAN FROM inserted) > END > END > > > > > -- > Carlos Delfino > Consultoria e Pesquisa > Desenvolvimento de Softwares. > Sun Certified Associate for Java Platform > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > Yahoo! Grupos, um serviço oferecido por: > PUBLICIDADE > > > > > > ------------------------------------------------------------------------------ > Links do Yahoo! Grupos > > a.. Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/delphi-br/ > > b.. Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED] > > c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo!. > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > *Yahoo! Grupos, um serviço oferecido por:* PUBLICIDADE > > <http://br.ard.yahoo.com/SIG=12fl7qb6g/M=396547.7942355.8848059.2369893/D=brclubs/S=2137111264:HM/Y=BR/EXP=1140708764/A=3310604/R=2/id=noscript/SIG=1540fueht/*http://lt.dell.com/lt/lt.aspx?CID=11377&LID=314739&DGC=BA&DGSeg=DHS&DURL=http://www1.la.dell.com/content/products/category.aspx/desktops?c%3dbr%26l%3dpt%26s%3ddhs> > ------------------------------ > *Links do Yahoo! Grupos* > > - Para visitar o site do seu grupo na web, acesse: > http://br.groups.yahoo.com/group/delphi-br/ > > - Para sair deste grupo, envie um e-mail para: > [EMAIL PROTECTED]<[EMAIL PROTECTED]> > > - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do > Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>. > > -- Carlos Delfino Consultoria e Pesquisa Desenvolvimento de Softwares. Sun Certified Associate for Java Platform [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html