Fórum Database not assigned - Mas o DM está no auto-create #328580
04/09/2006
0
Tudo bem que o erro Database not assigned é quando a ibquery não está setada corretamente ao ibDatabase, mas o pior é q esse erro está acontecendo no meu formulário de cadastro.
O componente ibquery está apontado no ibdatabase(ambos no datamodule) e no form de cad. de clientes tem o datasource apontando para o ibquery. Quando roda a aplicação, na primeira vez que o cadastro de clientes é chamado, tudo ocorre normalmente, posso inserir, excluir, alterar...etc...etc... Mas aí quando eu fecho a tela de cadastro de clientes e abro novamente para fazer alguma coisa na tela. Esse erro persiste em minha aplicação!!! No Project > Options o DataModule onde está o IbDatabase e IbQuery estão apontados para serem criados automaticamente e a tela de cadastro no Available. Mas mesmo assim acontece tal erro!! To ficando maluco, com isso!!!!
Alguém, por gentileza pode me ajudar a solucionar esse problema???
[]´s
Edibertoalves
Curtir tópico
+ 0Posts
05/09/2006
Edibertoalves
Gostei + 0
05/09/2006
Mahdak
abraços!
Gostei + 0
05/09/2006
Edibertoalves
O procedimento que faço para destruir o form é (só esse código no evento OnClose):
procedure TfrmCadCliente.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frmCadCliente.Release;
frmcadcliente := nil;
end;
Para a conexão com o banco de dados eu faço em tempo de projeto.
Uso D7 + FB1.5.
O que faço????????
[]´s
Gostei + 0
05/09/2006
Martins
vc está fazendo a conexão com a base de dados em tempo de projeto não é isso?
Então vc abre a tela de cadastro a primeira vez e tudo normal, depois q vc fecha e libera da memória e então a chama novamente lhe é exibida a mensagem de que a base de dados não existe, é isso?
como vc está fazendo a abertura e fechamento dos componentes (IbTable, IbQuery)? E as trasações?
Sugiro q vc dê uma olhada mais detalhada em seu projeto para ver onde está acontecendo a falha, faça depuração.
boa sorte?
Gostei + 0
05/09/2006
Edibertoalves
Esses são os comandos que realizo:
// no main menu:
procedure TfrmMenu.Clientes1Click(Sender: TObject);
begin
frmCadCliente := TfrmCadCliente.create(self);
frmCadCliente.showmodal;
end;
// no oncreate do form de cad. de clientes
procedure TfrmCadCliente.FormCreate(Sender: TObject);
begin
dtsTelefone.DataSet.Close;
dtsTelefone.DataSet.Open;
//
dsHistorico.DataSet.Close;
dsHistorico.DataSet.Open;
//
dtsCadCliente.DataSet.Close;
dtsCadCliente.DataSet.Open;
dtsCadcliente.DataSet.last;
//
dsVendedor.DataSet.Close;
dsVendedor.DataSet.Open;
//
pgcPrincipal.ActivePage := tabGrid;
pgcGridTel.ActivePage := tabGridTel;
end;
Note-se que não há nada demais nesse código, utilizo as propriedades do TDataSet do TDataSource para navegar nas telas.
Agora suponha que eu feche e eu abra novamente a tela de cad. de clientes. O erro está aqui:
procedure TfrmMenu.Clientes1Click(Sender: TObject);
begin
frmCadCliente := TfrmCadCliente.create(self); // ERRO!!!
Bem na hora de criação do form, nem pula para o ShowModal!
O que estou fazendo de errado??????
[]´s
Gostei + 0
05/09/2006
Renato.pavan
Tenta colocar no evento OnClose do frmCadCliente
if Action = caFree then frmCadClientes := NIL;
E qdo for abrir faça assim:
if frmCadClientes = NIL then frmCadClientes := TfrmCadClientes.Create(self); frmCadClientes.Show;
Espero ter ajudado
Renato
[]´s
Gostei + 0
06/09/2006
Edibertoalves
O que vc passou deu certo aqui no sistema, não sei realmente o que aconteceu mas agora depois dessa dica a tela de cadastro voltou a funcionar normalmente!!!
Obrigado a todos que me ajudaram!
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)