Fórum Insert ou Edit #387226
25/09/2010
0
Fernando Ramos
Curtir tópico
+ 0Posts
25/09/2010
Marco Salles
Gostei + 0
26/09/2010
Wesley Batista
Tira uma dúvida você tem dois Adoquery1 ?
FormA - Adoquery1FormB - AdoQuery1
É isso ? Se for realmente não vai funcionar pois para gravar(post) um registro, o DataSet precisa esta em modo de Edit ou Insert mode, na propriedade AdoQUery1.State, você sabe em que State seu DataSet se encontra para saber isso faça o seguinte
If Adoquery1.State in [dsInsert, dsEdit] then AdoQuery1.Postelse ShowMessage('Não esta em insert ou edit');
Então imagina só: você esta dando insert no FormA.AdoQuery1;você esta dando post no FormB.AdoQuery1;
Apesar do mesmo nome eles são Objetos(Componentes), diferentes concorda comigo ?
Sendo assim lhe recomendo utilizar um DataSet para cada situação que você queria trabalhar, se o dataset faz a mesma coisa que o outro, coloque eles em um lugar comum, assim fica mais fácil dar manutenção concorda ?
Sendo assim lhe recomendo criar um DataModulo, Menu; File;New;Other - Delphi Files / DataModule
Ele funciona como um Form, save o mesmo só que nele só pode ser colocado componentes não visuais, ou seja seu AdoQuery, o legal é renomear ele para DM por exemplo dai ao inves de você fazer
Adoquery1.Insert;
Ficará assim : DM.Adoquer1.Insert ( melhor ainda é renomear este AdoQuery1 para QryCliente), por exemplo, pois futuramente quando teu projeto crescer já era! Você terá vários Adoquery1,2,3,4, como vai saber quem é quem, quando for dar manutenção? Sacou ?
Um abraço
Wesley Batista
Gostei + 0
26/09/2010
Fernando Ramos
FORMB.QryAluno.Edit; FORMB.ShowModal;
Gostei + 0
26/09/2010
Marco Salles
Gostei + 0
26/09/2010
Fernando Ramos
Gostei + 0
26/09/2010
William Galleti
Boa tarde.
Tenhos dois AdoQuerys, mas com nomes diferentes e funções diferentes.
No FORMA tenho um AdoQuery chamado QryAlunos e no FORMB tenho o AdoQuery chamado QryAluno
No FORMA utilizo o QryAlunos para listar os alunos em uma GRID. Ao clicar em algum botão de editar faço:
FORMB.QryAluno.Edit; FORMB.ShowModal;
Feito isso, ao abrir o FORMB ele aparece para edição do registro, porém ao clicar em OK onde está QryAluno.post aparece o erro, dizendo que o QryAluno não está em Insert ou Edit.
Abraços!
Boa tarde!
Ve se ajuda esse código.
Antes de abrir o formb, vc precisa fazer alguns tratamentos... vou tentar simplificar...
Colocando em edição um dataset que nao esta formA.
try formB := tformB.create(application); tformB(formB).qryAluno.edit; formB.showmodal; finally freeandnil(formB); end;
Para verificar, utilize esse codigo no evendo OnShow do formB
if qryAluno.state = dsEdit then Showmessage('Em edição');Para facilitar, eu faço essa verificação de STATE no proprio DataSet. Uso o evento BEFOREPOST.
if qryAluno.state in [dsEdit,dsInsert] then qryAluno.post; else begin ShowMessage('Data set não está em modo de edição ou inserção'); qryAluno.cancel; end; Espero ter ajudado!
Gostei + 0
26/09/2010
Marco Salles
Gostei + 0
26/09/2010
Fernando Ramos
Gostei + 0
27/09/2010
Marco Salles
Gostei + 0
03/10/2010
Fernando Ramos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)