Fórum Dúvida TADOQuery? #217007

27/02/2004

0

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!


Twbernardes

Twbernardes

Responder

Posts

27/02/2004

Tnaires

Nenhuma :D
Pode meter Insert no ADO q ele aceita.


Responder

Gostei + 0

27/02/2004

Twbernardes

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?


Responder

Gostei + 0

27/02/2004

Tnaires

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é +


Responder

Gostei + 0

27/02/2004

Twbernardes

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?


Responder

Gostei + 0

27/02/2004

Tnaires

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í...


Responder

Gostei + 0

27/02/2004

Twbernardes

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!


Responder

Gostei + 0

27/02/2004

Twbernardes

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!


Responder

Gostei + 0

27/02/2004

Tnaires

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?


Responder

Gostei + 0

27/02/2004

Twbernardes

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!


Responder

Gostei + 0

27/02/2004

Tnaires

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?


Responder

Gostei + 0

01/03/2004

Twbernardes

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!


Responder

Gostei + 0

02/03/2004

Tnaires

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:
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


Responder

Gostei + 0

03/03/2004

Twbernardes

Ok. Valeu pela dica!!!


Responder

Gostei + 0

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

Aceitar