consulta SQL
Bom dia Pessoal.
Estou com um problema ao tentar consultar um dado da tabela no SQL Server 2000. Estou utilizando esse comando abaixo:
Mes:=edtParcela.Text;
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
dmParcelas.cdsValroPago.Open;
Estou usando um dbgrid. Mas não esta me retornando nada. Apenasa abre a tabela sem nenhuma informação.
como eu devo proceder para que me retorne a informação selecionanda.
Desde já obrigado
Wladmir
Estou com um problema ao tentar consultar um dado da tabela no SQL Server 2000. Estou utilizando esse comando abaixo:
Mes:=edtParcela.Text;
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
dmParcelas.cdsValroPago.Open;
Estou usando um dbgrid. Mas não esta me retornando nada. Apenasa abre a tabela sem nenhuma informação.
como eu devo proceder para que me retorne a informação selecionanda.
Desde já obrigado
Wladmir
Wladmir
Curtidas 0
Respostas
Jair Bg
23/12/2008
Este campo na DB ´mes´ é inteiro, ou string?
GOSTEI 0
Wladmir
23/12/2008
É um campo String.
GOSTEI 0
Jair Bg
23/12/2008
Bem, verifique já que se trata de string a posibilidade de ser formatado em duas casas, como zeros a direita, e a passagem do parâmetro por ´QuotedStr()´
GOSTEI 0
Wladmir
23/12/2008
Não o campo mes não tem referência com data, esse campo é o número de parcelas que será pago. eu utilizei Mes:=QuotedStr(edtParcela.Text); mas não tive resultado. O código todo ficou assim:
Mes:=QuotedStr(edtParcela.Text);
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
dmParcelas.cdsValroPago.Open;
While not dmParcelas.cdsValroPago.Eof do
begin
if dmParcelas.cdsValroPagochek.Value=´T´ then
valor:= dmParcelas.cdsValroPagoPRESTACAO.AsFloat;
dmParcelas.cdsValroPago.next;
end;
Mas ele não passa pelo if pois já vem com dmParcelas.cdsValroPago.Eof com True.
Mes:=QuotedStr(edtParcela.Text);
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
dmParcelas.cdsValroPago.Open;
While not dmParcelas.cdsValroPago.Eof do
begin
if dmParcelas.cdsValroPagochek.Value=´T´ then
valor:= dmParcelas.cdsValroPagoPRESTACAO.AsFloat;
dmParcelas.cdsValroPago.next;
end;
Mas ele não passa pelo if pois já vem com dmParcelas.cdsValroPago.Eof com True.
GOSTEI 0
Jair Bg
23/12/2008
veja isso:
=> Mes:=QuotedStr(edtParcela.Text);
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
Agora isso:
dmParcelas.cdsValroPago.ParamByName(Mes).AsString := edtParcela.Text;
dmParcelas.cdsValroPago.Open;
While not dmParcelas.cdsValroPago.Eof do
begin
if dmParcelas.cdsValroPagochek.Value=´T´ then
valor:= dmParcelas.cdsValroPagoPRESTACAO.AsFloat;
dmParcelas.cdsValroPago.next;
end;
=> Mes:=QuotedStr(edtParcela.Text);
dmParcelas.cdsValroPago.CommandText:=´Select Mes,Prestacao,chek from Parcelas where Mes=:Mes´;
Agora isso:
dmParcelas.cdsValroPago.ParamByName(Mes).AsString := edtParcela.Text;
dmParcelas.cdsValroPago.Open;
While not dmParcelas.cdsValroPago.Eof do
begin
if dmParcelas.cdsValroPagochek.Value=´T´ then
valor:= dmParcelas.cdsValroPagoPRESTACAO.AsFloat;
dmParcelas.cdsValroPago.next;
end;
GOSTEI 0
Wladmir
23/12/2008
Jair, agora ele passou pelo IF certinho, mas não mostrou as informações no grid.
GOSTEI 0
Jair Bg
23/12/2008
veja se o GRID como está conectado ao DataSet, se voce está ´fechando´ o DataSet?
GOSTEI 0
Wladmir
23/12/2008
Jair deu certo com a rotina que você passou, obrigado.
GOSTEI 0