Deletando por Data
23/03/2006
0
sdsDelete.DataSet.CommandText:=´ ´;
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA >= :DTINI AND DATA <= :DTFIM´;
sdsDelete.Params.ParamByName(´DTINI´).AsString:=edtDTINI.Text;
sdsDelete.Params.ParamByName(´DTFIM´).AsString:=edtDTFIM.Text;
sdsDelete.Execute;
Quando eu roda a aplicação, aparece o seguinte erro: Operador Invalido.
Abraço
Bertocco
Posts
23/03/2006
Catunda
´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA >= :DTINI AND DATA <= :DTFIM´;
Esperimente colocar aspa dupla no asterisco ´*´.
Um outro problema que poderá ocorrer é que, a menos que DATA seja do tipo char ou varchar, voce precisará converter o conteudo dos edits antes de passa-los como parametros.
24/03/2006
Adriano Santos
É isso Catunda, suas informações estão corretas. Eu modifiquei o script do [b:150c3dd033]bertocco[/b:150c3dd033] e agora deve funcionar.
sdsDelete.DataSet.CommandText:=´ ´; sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´; sdsDelete.Params.ParamByName(´DTINI´).AsDateTime := StrToDateTime(edtDTINI.Text); sdsDelete.Params.ParamByName(´DTFIM´).AsDateTime := StrToDateTime(edtDTFIM.Text); sdsDelete.ExecSql;
24/03/2006
Paullsoftware
É isso Catunda, suas informações estão corretas. Eu modifiquei o script do [b:7813fe87c8]bertocco[/b:7813fe87c8] e agora deve funcionar.
sdsDelete.DataSet.CommandText:=´ ´; sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´; sdsDelete.Params.ParamByName(´DTINI´).AsDateTime := StrToDateTime(edtDTINI.Text); sdsDelete.Params.ParamByName(´DTFIM´).AsDateTime := StrToDateTime(edtDTFIM.Text); sdsDelete.ExecSql;
acho que aqui deve ter um erro de digitação:
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´;
24/03/2006
Paullsoftware
continuando o correto seria:
ao invés de
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´;
se assim:
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´´*´´ AND DATA BETWEEN :DTINI AND :DTFIM´´;
só um detalhe, essa dúvida já foi resolvida no tópico [url]http://forum.clubedelphi.net/viewtopic.php?t=75239[/url] estranho, nenhum Moderador viu isso :roll:
24/03/2006
Adriano Santos
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´;
sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´´*´´ AND DATA BETWEEN :DTINI AND :DTFIM´´;
É verdade Pall, esqueci de corrigir do erro do asterísco, mas como Catunda ja havia corrigido nem me atentei ao fato.
Flw
24/03/2006
Martins
Clique aqui para fazer login e interagir na Comunidade :)