Array
(
)

Deletando por Data

Bertocco
   - 23 mar 2006

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


Catunda
   - 23 mar 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.


Adriano Santos
   - 24 mar 2006


Citação:
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 bertocco e agora deve funcionar.

#Código


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;



Paullsoftware
   - 24 mar 2006


Citação:

Citação:
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 bertocco e agora deve funcionar.

#Código


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´;


Paullsoftware
   - 24 mar 2006

desculpa cliquei no botão enviar se querer...
continuando o correto seria:
ao invés de
#Código

sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE   FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´;

se assim:
#Código

sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´´*´´ AND DATA BETWEEN :DTINI AND :DTFIM´´;
ok!

só um detalhe, essa dúvida já foi resolvida no tópico http://forum.clubedelphi.net/viewtopic.php?t=75239 estranho, nenhum Moderador viu isso :roll:


Adriano Santos
   - 24 mar 2006


Citação:
desculpa cliquei no botão enviar se querer...
continuando o correto seria:
ao invés de
#Código

sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE   FLAG_BAIXA = ´*´ AND DATA BETWEEN :DTINI AND :DTFIM´;

se assim:
#Código

sdsDelete.DataSet.CommandText:=´DELETE FROM ESTFISIC WHERE FLAG_BAIXA = ´´*´´ AND DATA BETWEEN :DTINI AND :DTFIM´´;
ok!

só um detalhe, essa dúvida já foi resolvida no tópico http://forum.clubedelphi.net/viewtopic.php?t=75239 estranho, nenhum Moderador viu isso :roll:

É verdade Pall, esqueci de corrigir do erro do asterísco, mas como Catunda ja havia corrigido nem me atentei ao fato.

Flw


Martins
   - 24 mar 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ó.