Fórum Conversing string error na sql query #383251

10/08/2010

0

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

Chadoiam

Responder

Posts

10/08/2010

Pablo Souza

Na verdade, no firebird é melhor vc usar 
QuotedStr(FormatDateTime('MM/DD/YYYY',DataaPesquisar))
Responder

Gostei + 0

10/08/2010

Pablo Souza

desculpa mas não achei um botão de edit. 
O Ideal mesmo é você trabalhar com parametros tipo
...'where datapedido = :datapedido';SqlDataSet.Params.Params[0].AsDateTime := DataaPesquisar {em formato TDateTime mesmo};
Responder

Gostei + 0

10/08/2010

Eriley Barbosa

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
Responder

Gostei + 0

10/08/2010

Eriley Barbosa

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
Responder

Gostei + 0

10/08/2010

Chadoiam

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
Responder

Gostei + 0

10/08/2010

Felipe Caputo

pq vc está passando a maskedit e o valor tem q ser em TDateTime. Usa
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
Responder

Gostei + 0

10/08/2010

Chadoiam

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 =)
Responder

Gostei + 0

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

Aceitar