Fórum Instrução SQL. #195756

18/11/2003

0

Criei uma função para excluir determinadas informações em BD Interbase, já verifique e os registros estão sendo selecionados conforme parametro, o problema e que está escluir somente dois registro sendo que a tabela onde estou selecionando contem mais de 60.

Por favor alguel poderia me dizer o que esta acontecendo com está
acontecendo ?

[b]Obs: Estoque utilizando Ibquery com IBUpdateSql.

function Exclui_MapaDiario(VDATA: TdateTime): Boolean;
Var
wLanca: Boolean;
begin
Dm.Lmapa.Close;
Dm.Lmapa.SQL.Clear;
Dm.Lmapa.SQL.Add(´Select * From MAPADIARIO Where´);
Dm.Lmapa.SQL.Add(´Data < :iData´);
Dm.Lmapa.ParamByName(´iData´).AsDateTime := VDATA;
Dm.Lmapa.Prepare;
Dm.Lmapa.Open;
if not (Dm.Transa1.InTransaction) then
Dm.Transa1.StartTransaction;
wLanca := true;
Dm.Lmapa.First;
While not Dm.Lmapa.Eof do
begin
Try
Dm.Lmapa.Delete;
except
wLanca := false;
end;
end;
if wLanca then begin
Dm.Transa1.CommitRetaining;
end else begin
Dm.Lmapa.CancelUpdates;
Dm.Transa1.RollbackRetaining;
end;
Dm.Lmapa.Close;
Result := wLanca;
end;


Marcotema

Marcotema

Responder

Posts

18/11/2003

Marcelo.c

Não há um campo com valores que diferenciem os registros ?


Responder

Gostei + 0

18/11/2003

Elbio

Pq não tenta utilizar uma instrução SQL semelhante a essa?

DELETE FROM MAPADIARIO WHERE DATA < :iDATA;



(Outra coisa que pode verificar é que se o seu campo for do tipo TimeStamp pode dar problema...)

Espero ter ajudado.

[]´s

EGS.

Criei uma função para excluir determinadas informações em BD Interbase, já verifique e os registros estão sendo selecionados conforme parametro, o problema e que está escluir somente dois registro sendo que a tabela onde estou selecionando contem mais de 60. Por favor alguel poderia me dizer o que esta acontecendo com está acontecendo ? [b]Obs: Estoque utilizando Ibquery com IBUpdateSql. function Exclui_MapaDiario(VDATA: TdateTime): Boolean; Var wLanca: Boolean; begin Dm.Lmapa.Close; Dm.Lmapa.SQL.Clear; Dm.Lmapa.SQL.Add(´Select * From MAPADIARIO Where´); Dm.Lmapa.SQL.Add(´Data < :iData´); Dm.Lmapa.ParamByName(´iData´).AsDateTime := VDATA; Dm.Lmapa.Prepare; Dm.Lmapa.Open; if not (Dm.Transa1.InTransaction) then Dm.Transa1.StartTransaction; wLanca := true; Dm.Lmapa.First; While not Dm.Lmapa.Eof do begin Try Dm.Lmapa.Delete; except wLanca := false; end; end; if wLanca then begin Dm.Transa1.CommitRetaining; end else begin Dm.Lmapa.CancelUpdates; Dm.Transa1.RollbackRetaining; end; Dm.Lmapa.Close; Result := wLanca; end;



Responder

Gostei + 0

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

Aceitar