Fórum Pesquisa utilizando Delphi com Interbase #189283

17/10/2003

0

[b:17efd2ced4]Olá pessoal do Fórum![/b:17efd2ced4] :D

Sempre utilizei o Delphi com Access ou MSSQL-Server, e também sempre utilizei componentes ADO para comunicação com a Base de Dados, porém hoje tenho utilizar Interbase como BD e estou com dúvida na pesquisa de dados.

Gostaria que me ajudassem a resolver este problema. Segue abaixo o que utilizo (ou não sei utilizar. hehe)

- Para a conexão com a Base de Dados:
IBDataBase, IBTransaction

- Para a conexão com a Tabela Clientes:
IBTable, IBDataSource

- Criei um form onde posso cadastrar e pesquisar clientes.

Até aí beleza, consigo adicionar, excluir e atualizar os registros sem problemas.

- Arrastei um objeto Edit p/ o form p/ criar o campo pesquisa, nomeei-o de ED_proc_cliente.

Pessoal, as dúvidas começam agora, já que não tenho certeza se estou utilizando os objetos corretos e da forma correta...

- Arrastei o componente IBQuery p/ o form e editei suas propriedades da seguinte forma:
[b:17efd2ced4]Database:[/b:17efd2ced4] DB_TESTE
[b:17efd2ced4]DataSource:[/b:17efd2ced4] DS_clientes
[b:17efd2ced4]Name:[/b:17efd2ced4] QR_proc_clientes
[b:17efd2ced4]SQL:[/b:17efd2ced4] select * from clientes where cod_cliente = :proc_cod_clientes

Dessa forma foi criado, automaticamente, um Parâmetro com nome proc_cod_clientes.

- Editei as propriedades do parâmetro criado da seguinte forma:
[b:17efd2ced4]Value:[/b:17efd2ced4] Null
[b:17efd2ced4]Type:[/b:17efd2ced4] Null

- Voltei p/ o componente IBQuery (QR_proc_clientes) e editei mais uma propriedade:
[b:17efd2ced4]Active: True[/b:17efd2ced4]

- Programei o Edit proc_cliente no evento OnKeyPress, p/ que ao pressionar a tecla ´enter´ procurasse o cliente, segue o código utilizado:
if key = #13 then
   begin
      key := #0;
      DM.QR_proc_clientes.ParamByName(´proc_cod_clientes´).Value := ED_proc_cliente.Text;
      DM.QR_proc_clientes.ExecSQL;
   end;


- Ao compilar, e tentar executar a pesquisa, aparece a seguinte mensagem:
QR_proc_clientes: Cannot perform this operation on an open dataset.

E é isso amigos.... o que pode estar errado!?

Gostaria que, se pudessem, enviar Passo-a-Passo como fazer a pesquisa, desde qual componente utilizar.. ou enviem um link onde explique como fazer.



Desde já agradeço pela atenção! Muito Obrigado.

Ferreira.


C_eleite

C_eleite

Responder

Posts

17/10/2003

Marcelo.c

Deixe a Query desativada e ative em tempo de execução, mas use:

Query.Close;
Query.Open;

Ao invés de:

Query.Active:=True;


Responder

Gostei + 0

17/10/2003

Echoesofpinkfloyd

Deixe a Query desativada e ative em tempo de execução, mas use: Query.Close; Query.Open; Ao invés de: Query.Active:=True;


existe alguma diferença entre o active:=true e o open?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar