duas condições com estrutura IF THEN ELSE
Ola Colegas, Estou de Volta no Fórum
Obtive algumas Respostas dos Colegas, mas ainda tem alguma coisa confusa nas instruções SQL, que não estão dando certo, Alguem me Ajude !!!
tabela BDCOMPRAS (PARADOX7)
COD_CLI A 3
NOME_CLI A 50
PRODUTO A 50
DATA_COMPRA DATE
HORA_COMPRA
MES_COMPRA A 9
ETC.......
Como Disse Anteriormente, Quero consultar a tabela por duas condições
Tudo que o COD_CLI(100) comprou no MES_COMPRA(março)
Coloquei o Componente Query no Form, e no SQL(propriedades) SELECT * FROM BDCOMPRAS
No Evento BUTTONCLICK, Fiz.
[color=green:3454c87b66]procedure TfrmCONSULTA.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE COD_CLI=´+ QuotedStr(edit1.Text) and MES_COMPRA=´+QuotedStr(edit2.text));
Query1.Open;
end;[/color:3454c87b66]
Não está dando Certo, [color=red:3454c87b66]Só dá certo se excluir o COD_CLI[/color:3454c87b66] e deixar:
[color=green:3454c87b66]Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE MES_COMPRA=´+QuotedStr(edit2.text));[/color:3454c87b66]
Será que é por causa de o COD_CLI ser Numeros e o MES_COMPRA ser texto ????
Agradeço por qualquer Ajuda!!!
Aldo
Obtive algumas Respostas dos Colegas, mas ainda tem alguma coisa confusa nas instruções SQL, que não estão dando certo, Alguem me Ajude !!!
tabela BDCOMPRAS (PARADOX7)
COD_CLI A 3
NOME_CLI A 50
PRODUTO A 50
DATA_COMPRA DATE
HORA_COMPRA
MES_COMPRA A 9
ETC.......
Como Disse Anteriormente, Quero consultar a tabela por duas condições
Tudo que o COD_CLI(100) comprou no MES_COMPRA(março)
Coloquei o Componente Query no Form, e no SQL(propriedades) SELECT * FROM BDCOMPRAS
No Evento BUTTONCLICK, Fiz.
[color=green:3454c87b66]procedure TfrmCONSULTA.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE COD_CLI=´+ QuotedStr(edit1.Text) and MES_COMPRA=´+QuotedStr(edit2.text));
Query1.Open;
end;[/color:3454c87b66]
Não está dando Certo, [color=red:3454c87b66]Só dá certo se excluir o COD_CLI[/color:3454c87b66] e deixar:
[color=green:3454c87b66]Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE MES_COMPRA=´+QuotedStr(edit2.text));[/color:3454c87b66]
Será que é por causa de o COD_CLI ser Numeros e o MES_COMPRA ser texto ????
Agradeço por qualquer Ajuda!!!
Aldo
Aldo.junior1
Curtidas 0
Respostas
José Henrique
12/04/2008
Aldo,
É isso mesmo, só devemos colocar ´ se for string, número não. Troque para
Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE (COD_CLI=´+ edit1.Text + ´) and (MES_COMPRA=´+QuotedStr(edit2.text) + ´)´);
Também é bom isolar as condições com parênteses.
É isso mesmo, só devemos colocar ´ se for string, número não. Troque para
Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE (COD_CLI=´+ edit1.Text + ´) and (MES_COMPRA=´+QuotedStr(edit2.text) + ´)´);
Também é bom isolar as condições com parênteses.
GOSTEI 0
Aldo.junior1
12/04/2008
Brigadão, Colega,
Vou Tentar Aqui,
Valew!!!
Vou Tentar Aqui,
Valew!!!
GOSTEI 0
Aldo.junior1
12/04/2008
Henrique, Valeu mas não deu Certo
Retorna uma Caixa de Erro
[color=red:317c910d70]´TYPE MISMACTH IN EXPRESSION´[/color:317c910d70]
E não dá pra saber se o erro está no (COD_CLI) ou no (MES_COMPRA)
Tentei até incluir esta linha abaixo, mas não deu. :
[color=green:317c910d70]Query1.Params.ParamByName(´CODCLI´).AsInteger := IntToStr(Edit1.Text);[/color:317c910d70]
Grato
Aldo
Retorna uma Caixa de Erro
[color=red:317c910d70]´TYPE MISMACTH IN EXPRESSION´[/color:317c910d70]
E não dá pra saber se o erro está no (COD_CLI) ou no (MES_COMPRA)
Tentei até incluir esta linha abaixo, mas não deu. :
[color=green:317c910d70]Query1.Params.ParamByName(´CODCLI´).AsInteger := IntToStr(Edit1.Text);[/color:317c910d70]
Grato
Aldo
GOSTEI 0
Emerson Nascimento
12/04/2008
tente assim:
ou assim:
procedure TfrmCONSULTA.Button1Click(Sender: TObject); begin Query1.Close; Query1.Sql.Clear; Query1.Sql.add(´SELECT * FROM BDCOMPRAS WHERE COD_CLI=:CODCLI and MES_COMPRA=:MES´); Query1.ParamByName(´CodCli´).AsInteger := IntToStr(Edit1.Text); Query1.ParamByName(´Mes´).AsString := Edit2.Text; Query1.Open; end;
ou assim:
procedure TfrmCONSULTA.Button1Click(Sender: TObject); begin Query1.Close; Query1.Sql.Text := ´SELECT * FROM BDCOMPRAS WHERE COD_CLI=:CODCLI and MES_COMPRA=:MES´; Query1.ParamByName(´CodCli´).AsInteger := IntToStr(Edit1.Text); Query1.ParamByName(´Mes´).AsString := Edit2.Text; Query1.Open; end;
GOSTEI 0