Fórum o que é executado antes do OnCreate? #375144
22/09/2009
0
O menu nem chega a executar o showmodal...e no relatorio, o que esta no evento OnCreat nem chega a ser executado.
O que é Application.CreateForm faz?
Dos quase 30 programas...somente um esta com esse problema.
Fausto.malheiros
Curtir tópico
+ 0Posts
22/09/2009
Fausto.malheiros
Gostei + 0
22/09/2009
Afarias
|Application.CreateForm(TComponentClass(FindClass(NomeClasse)),
|Formulario);
|Formulario.ShowModal;
|O menu nem chega a executar o showmodal...e no relatorio,
|o que esta no evento OnCreat nem chega a ser executado.
|O que é Application.CreateForm faz?
Application.CreateForm
1) ´instancia´ a variavel a partir da classe informada, passando o objeto Application como Owner
2) se a classe for derivada de um TForm então, requer um Handle para a janela e caso não haja um MainForm definido torna este o MainForm.
Nesse seu caso, vai além deste comando pq o FindClass TEM q achar uma classe previamente registrada (com RegisterClass) de nome ´NomeClasse´
Note que consultas (Query e outros DataSets) q foram deixados com a propriedade Active:=True em DesignTime vão executar ANTES do código OnCreate.
|Dos quase 30 programas...somente um esta com esse problema.
Algum erro?
|Em tempo: Tem alguma coisa a ver com Banco de Dados, pois antes,
|quando estava com o interbase 6, demora uns 30 segundo mas abria,
|agora com o firibird 2.1.5 esta demorando uma eternidade
Com certeza Application.CreateForm não tem nada a ver com banco de dados.
Quanto a seu programa ficar lento quando trocou de IB para FB, apesar de estranho é possível que alguma consulta em particular (unsando IN principalmente) tenha ficado lenta por mudanças do FB, nesse caso seria necessário ajustá-las.
Outras coisas para verificar:
1) Os índices foram criados na nova base?
2) A base foi convertida para ODS 11.1 (Fb 2.1)?
3) A extensão do arquivo NÃO deve ser .GDB
4) Use o cliente correto do Fb 2.1 (gds32.dll do FB 2.1 e não IB6)
T+
Gostei + 0
22/09/2009
Fausto.malheiros
Sim!
[b:48a6d2c162]2) A base foi convertida para ODS 11.1 (Fb 2.1)?[/b:48a6d2c162]
Ai laskou! Onde vejo esse ODS 11.1? Só pra confirmar por que ja esta rodando.
[b:48a6d2c162]3) A extensão do arquivo NÃO deve ser .GDB[/b:48a6d2c162]
Ainda esta como GDB. Mou mudar.
[b:48a6d2c162]4) Use o cliente correto do Fb 2.1 (gds32.dll do FB 2.1 e não IB6) [/b:48a6d2c162]
Estou usando o ´C:\Arquivos de programas\Firebird\Firebird_2_1\bin\fbclient.dll´....Num é assim não?
Gostei + 0
22/09/2009
Afarias
|Ai laskou! Onde vejo esse ODS 11.1? Só pra confirmar por que ja esta
|rodando.
Para converter a base para ODS 11.1 é necessário algum trabalho. Primeiro vc tem q fazer um backup da base na versão antiga do IB/FB que ela foi criada. Depois tem q restaurar usando o FB 2.1
E então, pra completar 100¬ sem possibilidade de qualquer problema, é necessário executar o procedimento de atualização de metadata conforme orienta a documentação do FB 2.1
OU
Criar uma base nova com FB 2.1 e jogar os registros da base antiga na nova.
Para saber a versão da sua base vc pode usar o GSTAT:
gstat -h sua_base_firebird
observe o parâmetro ´ODS Version´
Só pra registrar, não é obrigatório a base ser ODS 11.1 para funcionar com FB 2.1. Entretanto, novas funcionalidades/melhorias só vão estar disponíveis com bases ODS 11.1.
|4) Use o cliente correto do Fb 2.1 (gds32.dll do FB 2.1 e não IB6)
|Estou usando o ´C:\Arquivos de
|programas\Firebird\Firebird_2_1\bin\fbclient.dll´....Num é assim não?
Perfeito. *SE* seu componente de acesso/driver é específico para Firebird e está realmente utilizando este cliente/dll.
T+
Gostei + 0
22/09/2009
Fausto.malheiros
Agora só falta encarar os clientes...cada um de um jeito...pois são varios sistemas na mesma maquina...Sybase, Interbase, SQL Microsoft e por ai vai....Outros rodando local e outros em rede....Vai ser só pena que vai voar.
Existe uma forma padrão para instalar o firebird, para que ele não tenha problema com rede, banco de dados diferentes? Ou cada caso é um caso?
Gostei + 0
22/09/2009
Afarias
|problema com rede, banco de dados diferentes? Ou cada caso é um caso?
Usando o instalador padrão já está OK.
O servidor FB não terá problema com nenhum outro servidor de banco de dados instalado, desde que esteja configurado para uma porta que não esteja em uso por nenhum outro programa (a porta padrão é 3050 tb usada pelo IB, eu geralmente mudo)
T+
Gostei + 0
22/09/2009
Fausto.malheiros
Quando for em Rede, Firebird Padrão na porta 3051.
Quando for local, somente aquele programinha que vc me disse qual é, e não to achando o post com o nome...:? :? :? Qual é mesmo?
Gostei + 0
22/09/2009
Afarias
T+
Gostei + 0
22/09/2009
Fausto.malheiros
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)