o que é executado antes do OnCreate?
A problema esta no comando ´Application.CreateForm´.
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.
[b:a619163d50]Application.CreateForm(TComponentClass(FindClass(NomeClasse)), Formulario);
[/b:a619163d50]
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?
Dos quase 30 programas...somente um esta com esse problema.
Fausto.malheiros
Curtidas 0
Respostas
Fausto.malheiros
22/09/2009
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
GOSTEI 0
Afarias
22/09/2009
|A problema esta no comando ´Application.CreateForm´.
|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+
|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
Fausto.malheiros
22/09/2009
[b:48a6d2c162]1) Os índices foram criados na nova base?[/b:48a6d2c162]
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?
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
Afarias
22/09/2009
|2) A base foi convertida para ODS 11.1 (Fb 2.1)?
|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+
|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
Fausto.malheiros
22/09/2009
Belezinha.....Agora fechou!
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?
Database ´dbsaneamento.fbd´
Database header page information:
Flags0
Checksum12345
Generation253
Page size4096
[b:42cc0e6f85]ODS version11.1[/b:42cc0e6f85]
Oldest transaction243
Oldest active244
Oldest snapshot244
Next transaction245
Bumped transaction1
Sequence number0
Next attachment ID13
Implementation ID16
Shadow count0
Page buffers0
Next header page0
Database dialect3
Creation dateSep 22, 2009 15:37:15
Attributes
Variable header data:
Sweep interval:20000
*END*
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
Afarias
22/09/2009
|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?
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+
|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
Fausto.malheiros
22/09/2009
Blz!
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?
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
Afarias
22/09/2009
Firebird Embedded
T+
T+
GOSTEI 0
Fausto.malheiros
22/09/2009
Blz...Mandei uma MP pra vc...mas ta dando erro. Chegou?
GOSTEI 0