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:
- 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.
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
Curtir tópico
+ 0
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;
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
Clique aqui para fazer login e interagir na Comunidade :)