Problema com Transaçoes e UpdateSQL..

Delphi

28/07/2005

Tenho no formulário uma Grid uma query , um Database , e um UpdateSQL1

Inicio uma transição com database1.StartTransaction;

Faço as alteraçoes na grid

Mas apos todas as alteraçoes dou um comando

database1.Commit;

e saio do formulário... Mas não grava as alteraçoes realizadas

Alem disso quando faço as alteraçoes e dou um Database1.Rollback; não volto ao estado anterior... Isto so acontece quando eu fecho e abro o aplicativo

Conclusão ... Não esta adiantando nada o uso de transações :cry: :cry: :cry:

Isto so acontece quando eu utilizo um Componente UpdateSQL1 associado a query.. Pois eu necessito digitar dados , apos as consultas

Sera que o meu código da UpdateSQL1 De Inserção , edição , modificação esta errado e impede o funcionamento correto das Transações

O meu código é simples e não tem neda de anormal Vejam:

Para modificar:
update TabCheques
set
  Items = :Items,
  Compensacao = :Compensacao,
  Banco = :Banco,
  Agencia = :Agencia,
  Numero_Conta = :Numero_Conta,
  Numero_Cheque = :Numero_Cheque,
  Valor = :Valor,
  Data = :Data,
  Nome_Emitente = :Nome_Emitente,
  Telefone = :Telefone,
  Observacoes = :Observacoes,
  Compensado = :Compensado
where
  Items = :OLD_Items and
  Compensacao = :OLD_Compensacao and
  Banco = :OLD_Banco and
  Agencia = :OLD_Agencia and
  Numero_Conta = :OLD_Numero_Conta and
  Numero_Cheque = :OLD_Numero_Cheque and
  Valor = :OLD_Valor and
  Data = :OLD_Data and
  Nome_Emitente = :OLD_Nome_Emitente and
  Telefone = :OLD_Telefone and
  Observacoes = :OLD_Observacoes and
  Compensado = :OLD_Compensado


Para inserir:
insert into TabCheques
  (Items, Compensacao, Banco, Agencia, Numero_Conta, Numero_Cheque, Valor, 
   Data, Nome_Emitente, Telefone, Observacoes, Compensado)
values
  (:Items, :Compensacao, :Banco, :Agencia, :Numero_Conta, :Numero_Cheque, 
   :Valor, :Data, :Nome_Emitente, :Telefone, :Observacoes, :Compensado)


Para deletar:
delete from TabCheques
where
  Items = :OLD_Items and
  Compensacao = :OLD_Compensacao and
  Banco = :OLD_Banco and
  Agencia = :OLD_Agencia and
  Numero_Conta = :OLD_Numero_Conta and
  Numero_Cheque = :OLD_Numero_Cheque and
  Valor = :OLD_Valor and
  Data = :OLD_Data and
  Nome_Emitente = :OLD_Nome_Emitente and
  Telefone = :OLD_Telefone and
  Observacoes = :OLD_Observacoes and
  Compensado = :OLD_Compensado


a verdade estes codigos foram gerados automaticamente pelo GerateSql do UpdateSQL1.... Eu para falar a verdade não manjo nada desse componente e to desconfiado que esses codigos estão dificultando a minha edição na query... :cry: :cry: :cry:

[b:82df0c522f]O que pode estar ocorrendo[/b:82df0c522f] :?: :?: :?: :?: :?:

Obrigado....


Marco Salles

Marco Salles

Curtidas 0

Respostas

Rafael Santana

Rafael Santana

28/07/2005

NO IBUPDATE vc deve especificar, como condição pra atualização(update) APENAS AS CHAVES PRIMÁRIAS...por isso não dá certo...vc tá especificando todos os campos...


GOSTEI 0
Marco Salles

Marco Salles

28/07/2005

NO IBUPDATE vc deve especificar, como condição pra atualização(update) APENAS AS CHAVES PRIMÁRIAS...por isso não dá certo...vc tá especificando todos os campos...


voce ta dizendo isto

update TabCheques 
set 
  Items = :Items, 
  Compensacao = :Compensacao, 
  Banco = :Banco, 
  Agencia = :Agencia, 
  Numero_Conta = :Numero_Conta, 
  Numero_Cheque = :Numero_Cheque, 
  Valor = :Valor, 
  Data = :Data, 
  Nome_Emitente = :Nome_Emitente, 
  Telefone = :Telefone, 
  Observacoes = :Observacoes, 
  Compensado = :Compensado 
where 
  Items = :OLD_Items and 


:?: :?: :?: :?:


GOSTEI 0
Rafael Santana

Rafael Santana

28/07/2005

seria isso mesmo...deu certo?


GOSTEI 0
Marco Salles

Marco Salles

28/07/2005

seria isso mesmo...deu certo?


tive que fazer algumas outras pequenas alterações , mas sua ajuda foi de grande valia.. Obrigado... :P :P


GOSTEI 0
POSTAR