Bom dia Pessoal, Estou com um problema aqui que já esta me dando um trabalhão ..
Tenho um sistema de biblioteca, e tive que colocar essa Trigger na tabela de empréstimo que faz a função de dar baixa na reserva quando a pessoa realmente locar o livro. Ex.: Aluno Alex reservou o livro Ciranda e cirandinha que estava emprestado para outra pessoa, Quando esse livro retorno, o Alex faz o empréstimo dele. Para não precisar da funcionária ir lá no cadastro de reservas e dar baixa na reserva do alex, eu montei essa trigger para fazer esse trabalho. ( dar para resolver isso pelo sistema também, só que já tem bastante processos nele, e gostaria de dividir as tarefas com o Banco). Quando eu lanço diretamente no banco o empréstimo ele dar baixa filé, sem problemas. Só que, quando eu uso o sistema para lançar o empréstimo , ele lança e baixa também, só que o formulário fica no estado travado com o erro de : "A linha não pode ser localizada para atualização. Alguns valores podem ter sido alterados desde que foi lida pela ultima Vez". Já montei um sisteminha limpinho aqui só para fazer o teste, só um for e uma grid para lançar os valores(para ter certeza que não é a aplicação) e da no mesmo. O interessante que uso o ADO e com o provedor OLE DB Provider SQL Server... E quando eu mudo no ADO Conect para o Olé DB Provider for ODBC, não aparece o erro e funciona normal, só que em contra partida o sistema fica igual uma tartaruga. Parece que quando a conecção e via ODBC o sistema não captura os erros do banco, com isso funciona normal. Alguém pode me dar uma ajuda com isso, pois não sei o que fazer mais... Delphi 2005 com SQL Server CREATE TRIGGER BaixarTítuloReservado ON tb_BIB_Emprestimos FOR INSERT AS BEGIN DECLARE @Exempla INT --Declara Variável livro DECLARE @pessoas INT --Variável Pessoa set @Exempla = (SELECT fkExemplar From INSERTED ) --VARIÁVEL Exempla RECEBE o cod do exemplar set @pessoas = (SELECT fkPessoas From INSERTED ) UPDATE tb_BIB_Reservas SET baixa = 'false' where dbo.tb_BIB_Reservas.fkExemplar =...@exempla AND dbo.tb_BIB_Reservas.fkpessoa = @pessoas -- só dar baixa se for o mesmo exemplar e se for a mesma pessoa que reservou e END GO