Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago Delalibera

Como preencher um DBGrid com dados de uma query?

Recommended Posts

Vou tentar explicar o que to tentando fazer da forma mais clara possível, é o seguinte galera, no sistema que to desenvolvendo (sou novo em delphi), todos os meus formulários de cadastro utilizam SQLConnection e SQLQuery do dbExpress, meu banco de dados é Interbase, eu apenas configuro o SQLConnection e o SQLQuery, mas deixo os dois como Active:=False, meus comandos para inserção no banco de dados acontecem quando o usuário clica no botão Cadastrar.

 

Ex:

procedure TFormClientes.ButtonCadastrar(Sender: TObject);

begin

Query.Active:=False;

Query.SQL.Clear;

Query.SQL.Append('INSERT INTO ...');

Query.ExecSql;

ShowMessage('Cadastro efetuado com sucesso!');

end;

 

Da tudo certo, ele cadastra as informações no banco de dados, mas agora quero colocar esses dados no dbgrid, sei que pelo dbExpress não tem jeito pq ele é unidirecional, então to usando os componentes do interbase: TIBConnection e TIBQuery, não sei quais outros devo usar, DataSource? DataSet?

 

mas a questão principal é, quero colocar um TEdit e um botão Pesquisar como acima:

entao esse botão vai executar a query que vai alimentar o DBGrid,

algo do tipo:

 

procedure TFormClientes.ButtonCadastrar(Sender: TObject);

begin

Query.Active:=False;

Query.SQL.Clear;

Query.SQL.Append('SELECT * FROM TBL_CLIENTES WHERE CLIENTE= :Cli');

Query.ParamByName('Cli').AsString:=dbPesquisa.Text;

Query.Open;

end;

 

Ai ele ta pegando o conteúdo do Edit com nome de dbPesquisa e realizando a consulta... beleza! mas e ai pra fazer isso aparecer no dbGrid??? :/

 

 

Obrigado desde já!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também sou novo em delphi, mas pelo que eu sei, no DBGrid tem um campo chamado DataSource.

Você precisa criar um DataSource ligado à sua Query e no DataSource(do DBGRID) você coloca o Name do componente Data Source, daê ele puxa tudo automático...

 

Tenta aí e me diz :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

O melhor é usar os métodos open e close da query ao invés do active... mas se sua consulta não recebe parâmetros, no onshow do form você pode dar o open na query e depois ir dando close e open no seu botão de pesquisa.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, tente fazer o seguinte:

 

1) Deixe a propriedade active do componente query como false;

 

2) Ligue ao componente conexão que deverá estar LIGADO (active = true)

 

3) Ligue a propriedade DataSource do componente DBgrid no componente query

 

 

Pronto....

 

Como o SQL que voce esta montando está correto, ao executar a linha de comando Query.Open, o DBGrid irá ser alimentado automaticamente com o resultado desta query.

 

Lembre-se:

 

Se quiser uma consulta automática ao abrir o formulario, coloque os comandos da query no evento Onshow do Form

Se quiser que apareça sua consulta quando clicar no botão, coloque no evento Onclick.

 

Simples assim.

 

Espero ter ajudado

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.