Fórum Consulta sql onde esta o erro? #226746
18/04/2004
0
Awe pessoal fmz?
Tipo eu tenho 3 Tcheckbox que seriam o cbdata,cbnome,cbconvenio
E eu queria faze com que conforme o cara selecionasse qual ele queria faze a procura ela faria.
Eu to fazendo o codigo assim:
E com esse codigo quando seleciono so o cbdata e mando procura ele da esse erro:
Erro de sintaxe (operador faltando) na expressao de consulta ´(Data BETWEEN ? AND ?) Where ( Nome = ?)´
Quando seleciono so o cbnome da esse erro:
Objeto parameter definido incorretamente. As informacoes sao inconsistentes ou imcompletas
Se eu seleciono so o cbconvenio ele da esse erro:
Erro de sintaxe na clausula FROM.
Agora se eu seleciona o cbnome e convenio ele procura certinho e funciona bunito mesma coisa se eu seleciona cbnome e cbdata
E se eu seleciona cbdata com cbconvenio da esse erro:
Objeto parameter definido incorretamente. As informacoes sao inconsistentes ou imcompletas.
E ae pessoal oque que tah errado ai ?
Pois eu quero que independentemente de qual ele seleciona faca a procura direitinho.
Um brigadao pra quem tive podendo me ajuda
Tipo eu tenho 3 Tcheckbox que seriam o cbdata,cbnome,cbconvenio
E eu queria faze com que conforme o cara selecionasse qual ele queria faze a procura ela faria.
Eu to fazendo o codigo assim:
with FrmRelatorio.ADOQuery1 do begin close; SQL.Clear; SQL.Add(´Select * From Clientes´); If cbdata.Checked = true then begin SQL.add(´Where (Data BETWEEN :PL AND :PA)´); Parameters.ParamByName(´PL´).Value := edit1.text; Parameters.ParamByName(´PA´).Value := edit2.text; end; if cbnome.Checked = true and cbdata.Checked = true then begin Sql.add(´AND (Nome = :PI)´); parameters.ParamByName(´PI´).Value := edit3.Text; end; if (cbnome.Checked = true and cbdata.Checked = false) then begin Sql.add(´Where (Nome = :PI)´); parameters.ParamByName(´PI´).Value := edit3.Text; end; if cbconvenio.Checked = true and (cbdata.Checked = true or cbnome.Checked = true) then begin SQl.Add(´AND (Convenio = :PO)´); parameters.ParamByName(´PO´).Value := dbcombobox1.Text; end; if cbconvenio.Checked = true and cbdata.Checked = false and cbnome.Checked = false then begin SQl.Add(´Where (Convenio = :PO)´); parameters.ParamByName(´PO´).Value := dbcombobox1.Text; end; Sql.Add(´ORDER BY Data ASC´); Open; end;
E com esse codigo quando seleciono so o cbdata e mando procura ele da esse erro:
Erro de sintaxe (operador faltando) na expressao de consulta ´(Data BETWEEN ? AND ?) Where ( Nome = ?)´
Quando seleciono so o cbnome da esse erro:
Objeto parameter definido incorretamente. As informacoes sao inconsistentes ou imcompletas
Se eu seleciono so o cbconvenio ele da esse erro:
Erro de sintaxe na clausula FROM.
Agora se eu seleciona o cbnome e convenio ele procura certinho e funciona bunito mesma coisa se eu seleciona cbnome e cbdata
E se eu seleciona cbdata com cbconvenio da esse erro:
Objeto parameter definido incorretamente. As informacoes sao inconsistentes ou imcompletas.
E ae pessoal oque que tah errado ai ?
Pois eu quero que independentemente de qual ele seleciona faca a procura direitinho.
Um brigadao pra quem tive podendo me ajuda
Snipa
Curtir tópico
+ 0
Responder
Posts
18/04/2004
Everton
colega, tente esse código:
Procedure TForm1.SeiLa .... var fAux: String; begin fAux := ´´; with FrmRelatorio.ADOQuery1 do begin close; SQL.Clear; SQL.Add(´Select * From Clientes´); fAux := ´ WHERE ´; if cbdata.Checked then begin SQL.add(fAux + ´ (Data BETWEEN :PL AND :PA)´); Parameters.ParamByName(´PL´).Value := edit1.text; Parameters.ParamByName(´PA´).Value := edit2.text; fAux := ´ AND ´; end; if cbnome.Checked then begin Sql.add(fAux + ´ (Nome = :PI)´); Parameters.ParamByName(´PI´).Value := edit3.Text; fAux := ´ AND ´; end; if cbconvenio.Checked then begin SQl.Add(fAux + ´ (Convenio = :PO)´); Parameters.ParamByName(´PO´).Value := dbcombobox1.Text; end; Sql.Add(´ORDER BY Data ASC´); Open; end; end; Detalhe .... tente passar como AsInteger, AsString ou AsDate ... ao invés de value.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)