Conversing string error na sql query
FPedidos.Pedidos.SQL.Add('select * from PEDIDOS LEFT OUTER JOIN Clientes ON PEDIDOS.clicodigo = Clientes.cliCodigo where PedStatus=0 and peddatalocacao >='+QuotedStr(MaskEdit1.Text)+'and peddatalocacao <='+QuotedStr(MaskEdit2.Text));
FPedidos.Pedidos.SQL.Add('order by clientes.CLIRAZAOSOCIAL');
No banco os campos tao setados DATE no dbedit a mask ta 00.00.0000 pq nas tabelas do firebird ta assim o formato
E fica dando error converting string """""
Depois q mechi no SQl query ae q comeco a dar o erro to fazendo alguma sentenca errada na query?
Alguma luz?
Chadoiam
Curtidas 0
Respostas
Pablo Souza
10/08/2010
Na verdade, no firebird é melhor vc usar
QuotedStr(FormatDateTime('MM/DD/YYYY',DataaPesquisar))GOSTEI 0
Pablo Souza
10/08/2010
desculpa mas não achei um botão de edit.
O Ideal mesmo é você trabalhar com parametros tipo
O Ideal mesmo é você trabalhar com parametros tipo
...'where datapedido = :datapedido';SqlDataSet.Params.Params[0].AsDateTime := DataaPesquisar {em formato TDateTime mesmo};GOSTEI 0
Eriley Barbosa
10/08/2010
Pela mensagem ta passando as datas vazio.
Faça o seguinte teste, antes de abrir a query:
FPedidos.Pedidos.SQL.Add('select * from PEDIDOS LEFT OUTER JOIN Clientes ON PEDIDOS.clicodigo = Clientes.cliCodigo where PedStatus=0 and peddatalocacao >='+QuotedStr(Trim(MaskEdit1.Text))+
'and peddatalocacao <='+QuotedStr(Trim(MaskEdit2.Text)));
FPedidos.Pedidos.SQL.Add('order by clientes.CLIRAZAOSOCIAL');
ShowMessage(FPedidos.Pedidos.SQL.Text);
Ao aparecer a mensagem tecle CTRL + C e cole no IBExpert ou IBConsole, retire o que tiver além do código SQL e execute, se não der erro retire o ShowMessage.
Se der erro poste o erro e o SQL aqui.
Atenciosamente
Eriley
GOSTEI 0
Eriley Barbosa
10/08/2010
Antes do and tem um espaço.
Faça o seguinte teste, antes de abrir a query:
FPedidos.Pedidos.SQL.Add('select * from PEDIDOS LEFT OUTER JOIN Clientes ON PEDIDOS.clicodigo = Clientes.cliCodigo where PedStatus=0 and peddatalocacao >='+
QuotedStr(Trim(MaskEdit1.Text))+' and peddatalocacao <='+QuotedStr(Trim(MaskEdit2.Text)));
FPedidos.Pedidos.SQL.Add('order by clientes.CLIRAZAOSOCIAL');
ShowMessage(FPedidos.Pedidos.SQL.Text);
Ao aparecer a mensagem tecle CTRL + C e cole no IBExpert ou IBConsole, retire o que tiver além do código SQL e execute, se não der erro retire o ShowMessage.
Se der erro poste o erro e o SQL aqui.
Atenciosamente
Eriley
GOSTEI 0
Chadoiam
10/08/2010
Ta falando que formatdatetime called com eses argumentos
no caso estaria usando o maskedit pra jogar a data ali no sql query pq ta dando esse erro?
FPedidos.Pedidos.SQL.Add('select * from PEDIDOS LEFT OUTER JOIN Clientes ON PEDIDOS.clicodigo = Clientes.cliCodigo where PedStatus=0 and peddatalocacao >='+QuotedStr(FormatDateTime('MM/DD/YYYY',Maskedit1.text))+'and peddatalocacao <='+QuotedStr(FormatDateTime('MM/DD/YYYY',maskedit2.text)));
ficaria assim a query? ta dando erro acima
ficaria assim a query? ta dando erro acima
GOSTEI 0
Felipe Caputo
10/08/2010
pq vc está passando a maskedit e o valor tem q ser em TDateTime. Usa
e pode tb colocar a mask do seu maskedit com as barras 00/00/0000
mas eu recomendaria utilizar um DateTimePicker
FormatdateTime('MM/DD/YYYY',StrToDate(MaskEdit1.Text));e pode tb colocar a mask do seu maskedit com as barras 00/00/0000
mas eu recomendaria utilizar um DateTimePicker
GOSTEI 0
Chadoiam
10/08/2010
Galera consegui fazer oque queria usando o
Fpedidos.Pedidos.Params[0].value:=maskedit1.Text;
Fpedidos.Pedidos.Params[1].value:=maskedit2.Text; Ae so mudei o SQL ali do query do form pedidos e deu certo =)
Fpedidos.Pedidos.Params[1].value:=maskedit2.Text; Ae so mudei o SQL ali do query do form pedidos e deu certo =)
GOSTEI 0