Deletando por Data
Boa Tarde, estou querendo Deletar as registros por Data, ou seja Data Inicial e Final, com Paramentos vou passar o que eu fiz.
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
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
Curtidas 0
Respostas
Catunda
23/03/2006
Provavelmente o erro está localizado nas aspas, como vc está usando todas as aspas simples o delphi está lendo duas frases separadas unidas por um asterisco.
´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.
´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.
GOSTEI 0
Adriano Santos
23/03/2006
Provavelmente o erro está localizado nas aspas, como vc está usando todas as aspas simples o delphi está lendo duas frases separadas unidas por um asterisco.
´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.
É 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;
GOSTEI 0
Paullsoftware
23/03/2006
[quote:7813fe87c8=´Adriano Santos´]
É isso Catunda, suas informações estão corretas. Eu modifiquei o script do [b:7813fe87c8]bertocco[/b:7813fe87c8] e agora deve funcionar.
[/quote:7813fe87c8]
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´;
Provavelmente o erro está localizado nas aspas, como vc está usando todas as aspas simples o delphi está lendo duas frases separadas unidas por um asterisco.
´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.
É 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´;
GOSTEI 0
Paullsoftware
23/03/2006
desculpa cliquei no botão enviar se querer...
continuando o correto seria:
ao invés de
se assim:
ok!
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:
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:
GOSTEI 0
Adriano Santos
23/03/2006
desculpa cliquei no botão enviar se querer...
continuando o correto seria:
ao invés de
se assim:
ok!
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:
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
GOSTEI 0
Martins
23/03/2006
Este tópico está duplicado, o autor já obteve uma resposta funcional no outro tópico, a moderação poderia editar o dois tópicos tornando-os um só.
GOSTEI 0