Exibir resultado de consulta no DBGrid
Pessoal,
Tenho um form contendo um TEdit, um TButton, um DBGrid e um DataSource. Neste form o usuário digita um nome (ou parte dele) e ao clicar no TButton, no DBGrid deve retornar as ocorrências. Tenho também um DataModule com os seguintes componentes: TSQLQuery, TDataSetProvider e TClientDataSet. Na propriedade SQLConnection do TSQLQuery vinculei a outro DataModule onde está o componente TSQLConnection para minha base de dados.
Na propriedade SQL do TSQLQuery, digitei o seguinte comando: SELECT NUM_ORDEM, NM_PAC, DT_NASC, DT_ATEND
FROM TB_ATEND WHERE NM_PAC CONTAINING :NOME
No DataSource do form de consulta, ajustei a propriedade DataSet para o ClientDataSet e o DBGrid está ligado a este DataSource.
No evento OnClick do TButton, coloquei as seguintes linhas de comando:
DMConsAtend.cdsConsAtend.Close;
DMConsAtend.cdsConsAtend.FetchParams;
DMConsAtend.cdsConsAtend.Params.ParamByName(´Nome´).AsString := Edit.Text;
DMConsAtend.cdsConsAtend.Open;
Quando rodo a aplicação, abro o form, digito no Edit o nome e clico no botão, não está me retornando nada no DBGrid.
O que pode estar de errado? Estou usando D6 com Firebird 1.5.
Tenho um form contendo um TEdit, um TButton, um DBGrid e um DataSource. Neste form o usuário digita um nome (ou parte dele) e ao clicar no TButton, no DBGrid deve retornar as ocorrências. Tenho também um DataModule com os seguintes componentes: TSQLQuery, TDataSetProvider e TClientDataSet. Na propriedade SQLConnection do TSQLQuery vinculei a outro DataModule onde está o componente TSQLConnection para minha base de dados.
Na propriedade SQL do TSQLQuery, digitei o seguinte comando: SELECT NUM_ORDEM, NM_PAC, DT_NASC, DT_ATEND
FROM TB_ATEND WHERE NM_PAC CONTAINING :NOME
No DataSource do form de consulta, ajustei a propriedade DataSet para o ClientDataSet e o DBGrid está ligado a este DataSource.
No evento OnClick do TButton, coloquei as seguintes linhas de comando:
DMConsAtend.cdsConsAtend.Close;
DMConsAtend.cdsConsAtend.FetchParams;
DMConsAtend.cdsConsAtend.Params.ParamByName(´Nome´).AsString := Edit.Text;
DMConsAtend.cdsConsAtend.Open;
Quando rodo a aplicação, abro o form, digito no Edit o nome e clico no botão, não está me retornando nada no DBGrid.
O que pode estar de errado? Estou usando D6 com Firebird 1.5.
Faber
Curtidas 0
Respostas
Daniel Martins
20/06/2006
olá, já tentou colocar um Like ao invés de CONTAINING?
tipo
dpois no TButton vc Coloca:
o parametro :NOME tem q ser do tipo string...
tipo
SELECT NUM_ORDEM, NM_PAC, DT_NASC, DT_ATEND FROM TB_ATEND WHERE NM_PAC LIKE :NOME
dpois no TButton vc Coloca:
DMConsAtend.cdsConsAtend.FetchParams; DMConsAtend.cdsConsAtend.Close; DMConsAtend.cdsConsAtend.Params.ParamByName(´Nome´).AsString := Edit.Text+´¬´; DMConsAtend.cdsConsAtend.Open;
o parametro :NOME tem q ser do tipo string...
GOSTEI 0
Daniel Martins
20/06/2006
Tambem pode ser Sensivel a Maiúscula ou minúscula... vc pode tentar o código:
DMConsAtend.cdsConsAtend.FetchParams; DMConsAtend.cdsConsAtend.Close; DMConsAtend.cdsConsAtend.Params[0].AsString := Edit.Text+´¬´; DMConsAtend.cdsConsAtend.Open; ou DMConsAtend.cdsConsAtend.FetchParams; DMConsAtend.cdsConsAtend.Close; DMConsAtend.cdsConsAtend.Params.ParamByName(´NOME´).AsString := Edit.Text+´¬´; DMConsAtend.cdsConsAtend.Open;
GOSTEI 0