Fórum Criar procedure / Função #40311

24/11/2003

0

Estou migrando meus sistemas de paradox para interbase, em um determinado sistema utilizo o seguinte para apagar os registros após um procedimento:

if Dm.banco.FindKey([wCodigo]) then begin
While (Dm.Banco.FieldbyName(´CODIGO´).AsInteger = wCodigo) and not Dm.Banco.Eof do
begin
if Dm.Banco.FieldbyName(´CODIGO´).AsInteger = wCodigo then
Dm.Banco.Delete;
end;

Agora preciso implementar procedimento paracido no bco interbase.
Ja tentei utilizar Query, seleciono todos os registro que satisfaçam a condição mas quando mando apagar:

While not Q1.Eof do
begin
Q1.Delete;
end;

mesmo que a Query tenha N registros somente dois são eliminados.

Pergunta: As funções no Db podem retornar por exemplo se foi bem sucedido ou não um determinada operação com no exemplo?

Se alguém puder me ajudar, desde já agradeço.






Preciso criar um procedure / função


Marcotema

Marcotema

Responder

Posts

25/11/2003

Paulo Renato

Ao invés de vc usar uma query para selecionar os registros e depois apagá-los via código experimente apagar diretamente via sql:
DELETE FROM TABELA WHERE CONDICAO;
Da forma que vc fez não está errado e talvez não esteja funcionando porque pode haver restrições em tabelas relacionadas. Se houver restrições o comando acima também apagará somente 2 registros, portanto é necessário eliminar onde os registros tem integridade referencial antes de apagá-los.


Responder

Gostei + 0

25/11/2003

Marcotema

Obrigado pela dica, deu certo.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar