Erro na query
é o seguinte ...
tenho 2 formularios de cadastro ...
2 querys em um datamodule ...
eu alterno as 2 querys entre os 2 formularios de cadastro ...
para alternar entre as tabelas uso o seguinte codigo ...
cadastro de armadores
cadastro de agentes de carga
por exemplo, s eeu entrar no form de armadores e depois sair e entrar no de agentes da pau ...
ele da a seguinte mensagem .. field ´codarmador´ not found .....
o procedimento openqy é o seguinte ...
alguem sabe me dizer, ou tem uma ideia da causa deste erro
tenho 2 formularios de cadastro ...
2 querys em um datamodule ...
eu alterno as 2 querys entre os 2 formularios de cadastro ...
para alternar entre as tabelas uso o seguinte codigo ...
cadastro de armadores
DmPrincipal.OpenQy(DmPrincipal.QyCad,´select * from tbarmadores´); DmPrincipal.OpenQy(DmPrincipal.QyCadDetail,´select * from tbarmadores where codarmador = :codarmador´); Application.CreateForm(TFrmCadArmadores,FrmCadArmadores); Application.CreateForm(TFrmArmadoresContato,FrmArmadoresContato);
cadastro de agentes de carga
DmPrincipal.OpenQy(DmPrincipal.QyCad,´select * from tbagentescarga´); DmPrincipal.OpenQy(DmPrincipal.QyCadDetail,´select * from tbagentescargacontatos where codagente = :codagente´); Application.CreateForm(TFrmCadAgente,FrmCadAgente); Application.CreateForm(TFrmAgenteContato,FrmAgenteContato); Application.CreateForm(TFrmCadAgenteContato,FrmCadAgenteContato);
por exemplo, s eeu entrar no form de armadores e depois sair e entrar no de agentes da pau ...
ele da a seguinte mensagem .. field ´codarmador´ not found .....
o procedimento openqy é o seguinte ...
procedure TDmPrincipal.OpenQy(Qy: TADOQuery; tb: string); begin Qy.Close; Qy.SQL.Clear; Qy.SQL.Text:= tb; Qy.Open; end;
alguem sabe me dizer, ou tem uma ideia da causa deste erro
Rafael Gomes
Curtidas 0
Respostas
Sremulador
08/03/2006
o que ele te diz e que o campo nao existe...
GOSTEI 0
Rafael Gomes
08/03/2006
o que ele te diz e que o campo nao existe...
isso eu sei ...
vejam bem ... quando eu executo u form por vez, fecho o programa e executo somente o outro nao da erro algum ...
o porblema esta ocorrendo na hora de alternar as tabelas da query..
GOSTEI 0
Rafael Gomes
08/03/2006
procedure TFrmPrincipal.Button1Click(Sender: TObject); begin DmPrincipal.OpenQy(DmPrincipal.QyCad,´select * from tbagentescarga´); DmPrincipal.OpenQy(DmPrincipal.QyCadDetail,´select * from tbagentescargacontatos where codagente = :codagente´); label1.Caption:= ´agentes´; end; procedure TFrmPrincipal.Button2Click(Sender: TObject); begin DmPrincipal.OpenQy(DmPrincipal.QyCad,´select * from tbarmadores´); DmPrincipal.OpenQy(DmPrincipal.QyCadDetail,´select * from tbarmadores where codarmador = :codarmador´); label1.Caption:= ´armadores´; end;
fiz esse codigo pra testar ...
quando seto a tabela de armador e depois clico no botao1 da um erro pedindo a chave primaria de armador
e vice e versa ...
se eu tirar as linhas referentes a QyCadDetail funciona perfeitamente ... o problema deve estar na estrutura detalhe ...
agora me digam pq???
=/
GOSTEI 0
Rafael Gomes
08/03/2006
eu descobri o que esta acontecendo, quando troco o sql da tabela detalhe ele nao esta atualizando .. entao ele vai procurar os campos da tabela master que estava ativa ...
só nao sei como resolver ...
alguem poderia me ajudar?
[]s
só nao sei como resolver ...
alguem poderia me ajudar?
[]s
GOSTEI 0
Martins
08/03/2006
[quote:55a10d94ff=´Rafael Gomes´]eu descobri o que esta acontecendo, quando troco o sql da tabela detalhe ele nao esta atualizando .. entao ele vai procurar os campos da tabela master que estava ativa ...
só nao sei como resolver ...
alguem poderia me ajudar?
[]s[/quote:55a10d94ff]
Seu banco de dados é MS-Access ou MS Sql-Server?
Caso seja SQL-Server vc não poderia montar um view dentro do Banco e só chamar?
só nao sei como resolver ...
alguem poderia me ajudar?
[]s[/quote:55a10d94ff]
Seu banco de dados é MS-Access ou MS Sql-Server?
Caso seja SQL-Server vc não poderia montar um view dentro do Banco e só chamar?
GOSTEI 0
Rafael Gomes
08/03/2006
na verdade trabalho com mysql e firebird ... sim, com ADO!
GOSTEI 0
Martins
08/03/2006
[quote:7b6a71b9a2=´Rafael Gomes´]na verdade trabalho com mysql e firebird ... sim, com ADO![/quote:7b6a71b9a2]
vc poderia usar [color=brown:7b6a71b9a2][b:7b6a71b9a2]join[/b:7b6a71b9a2][/color:7b6a71b9a2] para fazer a junção das duas tabelas ou não?
Esse mestre datalhe será usado em inserções, edições ou apenas na visualização (navegação) de registros?
vc poderia usar [color=brown:7b6a71b9a2][b:7b6a71b9a2]join[/b:7b6a71b9a2][/color:7b6a71b9a2] para fazer a junção das duas tabelas ou não?
Esse mestre datalhe será usado em inserções, edições ou apenas na visualização (navegação) de registros?
GOSTEI 0
Rafael Gomes
08/03/2006
Esse mestre datalhe será usado em inserções, edições ou apenas na visualização (navegação) de registros?
em insercoes, edicoes, e visualizacoes ....
apenas repetindo o conteudo da mp
seguinte, estou respondendo por aqui mas irei postar no forum tbm, se voce pudesse responderpor lá seria até melhor, assim beneficiaria a todos ...
vou explicar detalhadamente o problema ...
imagina 2 tabelas quaisquer ...
tabela cliente
codcli
nmcli
tabela telefone
codtelefone
codcli
numtelefone
para mim fazer mestre detalhe utilizando ADOQuery estou utilizando o seguinte codigo ...
Código:
procedure TDmPrincipal.OpenQy(Qy: TADOQuery; tb: string);
begin
Qy.Close;
Qy.SQL.Clear;
Qy.SQL.Text:= tb;
Qy.Open;
end;
para ativar as querys uso o seguinte codigo ...
Código:
DmPrincipal.OpenQy(QyCad,´select * from tbCli´);
DmPrincipal.OpenQy(QyCadDetail,´select * from tbTelefone where codcli = :codcli´);
agora imagine que eu tenha outras 2 tabelas distintas que tbm sejam estrutura e detalhe ...
se eu simplesmente chamar o metodo OpenQy para fazer a alternancia ele me retorna um erro ..
por exemplo, eu carrego as duas tabelas cliente e telefone, respectivamente nas querys QyCad e QyCadDetail ...
logo apos eu chamo o metodo openqy para alternar pra outras 2 tabelas
ai ele me da o seguinte erro ...
QyCad: Field ´codcli´ not found ...
to usando adoquery!!
[]ss
GOSTEI 0
Rafael Gomes
08/03/2006
[url]www.ellas.com.br/teste.rar[/url]
ai esta um link para baixar um pequeno exemplo ... esta dando erro .. se alguem puder baixar para dar uma olhada agradeceria ...
[]sss
ai esta um link para baixar um pequeno exemplo ... esta dando erro .. se alguem puder baixar para dar uma olhada agradeceria ...
[]sss
GOSTEI 0
Martins
08/03/2006
[quote:cbde528b7d=´Rafael Gomes´][url]www.ellas.com.br/teste.rar[/url]
ai esta um link para baixar um pequeno exemplo ... esta dando erro .. se alguem puder baixar para dar uma olhada agradeceria ...
[]sss[/quote:cbde528b7d]
Baixei o exemplo e vou tentar dar uma olhada nele.
ai esta um link para baixar um pequeno exemplo ... esta dando erro .. se alguem puder baixar para dar uma olhada agradeceria ...
[]sss[/quote:cbde528b7d]
Baixei o exemplo e vou tentar dar uma olhada nele.
GOSTEI 0
Rafael Gomes
08/03/2006
ok martins, aguardo sua resposta ...
[]s
[]s
GOSTEI 0
Rafael Gomes
08/03/2006
up, mais ninguem poderia me ajudar ? :cry:
GOSTEI 0
Martins
08/03/2006
[quote:466a01ed97=´Rafael Gomes´]up, mais ninguem poderia me ajudar ? :cry:[/quote:466a01ed97]
Ando meio sem tempo, mas esse fds dou uma olhada no teu exemplo, e vejo o q posso fazer.
valew!!
:wink:
Ando meio sem tempo, mas esse fds dou uma olhada no teu exemplo, e vejo o q posso fazer.
valew!!
:wink:
GOSTEI 0