Dúvida TADOQuery?
Qual propriedade do componente TADOQuery devo alterar para inserir, editar, gravar dados?
No componente TQuery altero a propriedade RequestLive, qual propried. seria utilizando TADOQuery?
Valeu!
No componente TQuery altero a propriedade RequestLive, qual propried. seria utilizando TADOQuery?
Valeu!
Twbernardes
Curtidas 0
Respostas
Tnaires
27/02/2004
Nenhuma :D
Pode meter Insert no ADO q ele aceita.
Pode meter Insert no ADO q ele aceita.
GOSTEI 0
Twbernardes
27/02/2004
Então, estou tentando fazer um relacionamento utilizando dois TADOQuery, mas está dando ´Erro desconhecido´, porém se eu utilizo TQuery dá certo! O que pode ser?
GOSTEI 0
Tnaires
27/02/2004
Hmmm... não sei.
Como vc está fazendo usando BDE?
Coloca aí com detalhes q a gente vê. Não vou sair do fórum agora (são 4 e 10).
Té +
Como vc está fazendo usando BDE?
Coloca aí com detalhes q a gente vê. Não vou sair do fórum agora (são 4 e 10).
Té +
GOSTEI 0
Twbernardes
27/02/2004
Não estou acessando através do BDE, estou utilizando o ADOConnection(Acesso direto), e tem um detalhe, utilizando TADOQuery, se eu não fizer relacionamento entre as tabelas, funciona bem!, porém se eu faço, logo ao tentar abrir a query pelo fonte dá erro! Vc já fez este tipo de relacionamento utilizando TADOQuery, tem alguma diferença do que eu estou fazendo?
Vc tem messenger ou ICQ?
Vc tem messenger ou ICQ?
GOSTEI 0
Tnaires
27/02/2004
Blz, perguntei como vc fez com BDE pq vc falou q fazendo com TQuery (paleta BDE :) ) deu certo. Aí era só a gente ´traduzir´ pra ADO.
Vc disse q logo ao tentar abrir a query dá erro? Talvez haja algo errado no seu SQL. Poste pra nós aí...
Vc disse q logo ao tentar abrir a query dá erro? Talvez haja algo errado no seu SQL. Poste pra nós aí...
GOSTEI 0
Twbernardes
27/02/2004
TADOQuery1
SELECT * FROM TB_USUARIO
TADOQuery2
SELECT * FROM TB_DEPARTAMENTO
Depois insiro um novo campo na TADOQuery1 relacionando com o TADOQuery2 com intuito de apresentar os departamentos em uma combo!
SELECT * FROM TB_USUARIO
TADOQuery2
SELECT * FROM TB_DEPARTAMENTO
Depois insiro um novo campo na TADOQuery1 relacionando com o TADOQuery2 com intuito de apresentar os departamentos em uma combo!
GOSTEI 0
Twbernardes
27/02/2004
Opa esqueci de uma coisa...
Não sei se isso ajuda, mas sei usar o compon. TADOTable ou TADODataSet tenho o mesmo erro!
Mas como falei, se não faço o relacionamento, não dá problema!
Não sei se isso ajuda, mas sei usar o compon. TADOTable ou TADODataSet tenho o mesmo erro!
Mas como falei, se não faço o relacionamento, não dá problema!
GOSTEI 0
Tnaires
27/02/2004
Então, é um usuário para vários departamentos?
Nesse caso, é preciso inserir um novo campo na tabela de departamentos que armazene o código do usuário. Então, os SQLs ficariam assim:
SELECT * FROM TB_USUARIOS
SELECT * FROM TB_DEPARTAMENTOS, TB_USUARIOS
WHERE TB_DEPARTAMENTOS.CODUSUARIO = :CODUSUARIO
Depois, crie um DataSource e associe sua propriedade DataSet para a Query de Usuários.
Na Query de Departamentos, associe a propriedade DataSource ao DataSource que vc acabou d criar.
Desta maneira, qdo um registro na tabela de usuários for selecionado, todos os seus departamentos serão mostrados em um controle visual qualquer.
Faça aí e veja se dá certo, blz?
Nesse caso, é preciso inserir um novo campo na tabela de departamentos que armazene o código do usuário. Então, os SQLs ficariam assim:
SELECT * FROM TB_USUARIOS
SELECT * FROM TB_DEPARTAMENTOS, TB_USUARIOS
WHERE TB_DEPARTAMENTOS.CODUSUARIO = :CODUSUARIO
Depois, crie um DataSource e associe sua propriedade DataSet para a Query de Usuários.
Na Query de Departamentos, associe a propriedade DataSource ao DataSource que vc acabou d criar.
Desta maneira, qdo um registro na tabela de usuários for selecionado, todos os seus departamentos serão mostrados em um controle visual qualquer.
Faça aí e veja se dá certo, blz?
GOSTEI 0
Twbernardes
27/02/2004
Descupe a ignorância, mas estou comença agora com componentes ADO.
Vc está passando por parametro o código do usuário, como represento isto utilizando componentes ADO?
Obrigado!
Vc está passando por parametro o código do usuário, como represento isto utilizando componentes ADO?
Obrigado!
GOSTEI 0
Tnaires
27/02/2004
Não tem essa d ignorância cara, ninguém sabe d tudo! :)
Não precisa passar o parâmetro via código, basta criar essa estrutura e pronto!
Faça um teste:
Ponha dois DBGrids no Form. Associe cada um a um ADOQuery diferente. Vc verá q qdo vc clicar em um usuário no DBGrid1, todos os departamentos relativos a ele serão mostrados no DBGrid2, sem a necessidade d passagem dparâmetros via código (isso já é feito automaticamente).
Só revisando:
TB_USUARIOS
-----------------
CodUsuario - chave primária
etc...
TB_DEPARTAMENTOS
-------------------------
CodDep - chave primária
CodUsuario - chave estrangeira (relaciona-se com TB_USUARIOS.CodUsuario)
etc...
ADOQuery1:
- SQL: SELECT * FROM TB_USUARIOS
ADOQuery2:
- SQL: SELECT * FROM TB_DEPARTAMENTOS
WHERE CODUSUARIO = :CODUSUARIO
Blz?
Não precisa passar o parâmetro via código, basta criar essa estrutura e pronto!
Faça um teste:
Ponha dois DBGrids no Form. Associe cada um a um ADOQuery diferente. Vc verá q qdo vc clicar em um usuário no DBGrid1, todos os departamentos relativos a ele serão mostrados no DBGrid2, sem a necessidade d passagem dparâmetros via código (isso já é feito automaticamente).
Só revisando:
TB_USUARIOS
-----------------
CodUsuario - chave primária
etc...
TB_DEPARTAMENTOS
-------------------------
CodDep - chave primária
CodUsuario - chave estrangeira (relaciona-se com TB_USUARIOS.CodUsuario)
etc...
ADOQuery1:
- SQL: SELECT * FROM TB_USUARIOS
ADOQuery2:
- SQL: SELECT * FROM TB_DEPARTAMENTOS
WHERE CODUSUARIO = :CODUSUARIO
Blz?
GOSTEI 0
Twbernardes
27/02/2004
Amigo vou explicar bem o que eu preciso:
* Tenho uma tela de cadastro de usuários e nesta tela preciso entrar com o departamento deste usuário.
* Minhas tabelas são:
TB_USUARIO = ID_USU, NOME_USU, ID_DEPTO...
TB_DEPARTAMENTO = ID_DEPTO, DEPTO.
* Ou seja na minha query preciso relacionar Qu_Usuario com Qu_Departamento e não o contrario!
* Porém eu não posso dar select em duas tabelas na Qu_Usuario pois senão, não conseguiria ter as opções de Inserção, edição, ..., certo?
O que vc acha?
Valeu!
* Tenho uma tela de cadastro de usuários e nesta tela preciso entrar com o departamento deste usuário.
* Minhas tabelas são:
TB_USUARIO = ID_USU, NOME_USU, ID_DEPTO...
TB_DEPARTAMENTO = ID_DEPTO, DEPTO.
* Ou seja na minha query preciso relacionar Qu_Usuario com Qu_Departamento e não o contrario!
* Porém eu não posso dar select em duas tabelas na Qu_Usuario pois senão, não conseguiria ter as opções de Inserção, edição, ..., certo?
O que vc acha?
Valeu!
GOSTEI 0
Tnaires
27/02/2004
Aahhhhhhh blz
Então é só colocar um DBLookUpComboBox com as seguintes propriedades:
- ListSource: query d departamentos;
- ListField: campo DEPTO;
- KeyField: campo ID_DEPTO.
E na hora d dar o post na query vc atribui a propriedade KeyValue do DBLookUp ao valor do campo ID_DEPTO, assim:
Ou, se vc quiser q o Delphi cuide disso, configure o DBLookUp da maneira q segue:
- as mesmas configurações acima;
- DataSource: query d usuários;
- DataField: campo ID_DEPTO da tabela de usuários.
E na query de usuários, vc dá um select só na tabela d usuários.
Acho q agora acertei, né?
Abraços
Então é só colocar um DBLookUpComboBox com as seguintes propriedades:
- ListSource: query d departamentos;
- ListField: campo DEPTO;
- KeyField: campo ID_DEPTO.
E na hora d dar o post na query vc atribui a propriedade KeyValue do DBLookUp ao valor do campo ID_DEPTO, assim:
qrUsuariosID_DEPTO.Value := lkDeptos.KeyValue;
Ou, se vc quiser q o Delphi cuide disso, configure o DBLookUp da maneira q segue:
- as mesmas configurações acima;
- DataSource: query d usuários;
- DataField: campo ID_DEPTO da tabela de usuários.
E na query de usuários, vc dá um select só na tabela d usuários.
Acho q agora acertei, né?
Abraços
GOSTEI 0
Twbernardes
27/02/2004
Ok. Valeu pela dica!!!
GOSTEI 0