Fórum Mudar o DataSource do DBGrid na mão #351324
03/01/2008
0
estou criando um DBGrid de consulta em que o usuario devera utilizar dois campos para pesquisa, ou ele usa o codigo ou ele usara o nome.
Para isso deve utilizar o mesmo DBGrid mas existe dois Edits em que um ele informa o Codigo e no outro o Nome. Mas ele deve usar um ou outro para efetuar tal pesquisa.
Estive pesando no evento onKeyDown qndo ele der enter no edit um ele utilizara uma query que faz a busca por codigo e no edit com o nome seria utilizado uma query que faria a busca por nome.
Estive pensando no seguinte codigo:
busca por codigo
1: ClientDataSet1.Close;
2: Query1.Params[0].Value := StrToInt(Edit1.Text)
3: ClienteDataSet1.Open;
4: DBGrid.DataSource := DataSet1;
Mas da erro na linha 4, creio q esteja faltando algo, procurei e nao encontrei nada que podesse me da uma luz,então se alguem poder me ajudar com um trecho de codigo ficaria grato,
desde ja obrigado pela ajuda
Ticopr
Curtir tópico
+ 0Posts
03/01/2008
Rjun
Gostei + 0
03/01/2008
Otto
Gostei + 0
03/01/2008
Ticopr
4: DBgrid1.DataSource.dataSet.Name := ´DM.DataSet1´;
da estouro de memoria quando chega nessa linha.
deixei o DBgrid sem DataSet e mesmo asism ocorre esse erro
Não rpecisa ser essa minha logica, se tiverem outra que poderia resolver esse problema de poder usar em uma consulta dois tipo de consulta para um mesmo grid, podendo pesquisar por nome ou por codigo mas as informações a apresentar no grid sao as mesma apenas a forma de consulta deve ter essas duas opções
Gostei + 0
03/01/2008
Rjun
Gostei + 0
03/01/2008
Ticopr
A outra solução encontrada foi substituir a query, mas estou tendo problema com os paramentros que tenho de passar, pois qndo chega na linhado paramatro da estou de que parametro nao existe, algo assim, não me recordo pois faz um certo tempo que estava mexendo com isso.
Gostei + 0
03/01/2008
Rjun
Faça assim:
DBgrid1.DataSource.dataSet := DM.DataSet1;
Lembre-se que você esta trabalhando com objetos.
Gostei + 0
04/01/2008
Devmedia
Tudo bom cara?
Você disse:
Já tentou isso:
4: DBGrid.DataSource := [color=blue:c5f595a4fb]ClientDataSet1[/color:c5f595a4fb];
Hehehe ... =]
Como creio que não deve ser isto, no seu DM ou no seu próprio Form aonde está o DBGrid que quer mostrar os dados. Insira um DataSource1 e nele Link seu DataSet para -> DM.ClientDataSet1
Depois no DBGrid -> DataSource -> DataSource1
*Um pequeno detalhe. Quando voce utiliza DBExpress e não ativa a conexão do ClientDataSet -> Connect := True ou Active := True
Oque estiver linkado a ele, no seu caso DBGrid, não irá exibir/retornar nenhum valor.
Um abraço.
Quaisquer dúvidas.
Att.
Gostei + 0
09/01/2008
Ticopr
desculpe a demora consegui fazer o que queria, acabei modificando a Query mesmo e deu certo.
Obrigado pela ajuda de todos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)