Fórum Probelmas com Sql e Firebird 2.1 #364918
12/10/2008
0
Bom dia amigos, estou migrando uma base de dados do firebird 1.55 para o firebird 2.1.
[b:f9176fa7ee]Utilizo Delphi 7 e DBExpress[/b:f9176fa7ee]
Lembrando que os problemas relacionados com o DBX e Firebird 2.1 somente acontece com a versão 4 do dbx somente encontrada a partir do delphi 2007.
Como estou procedendo:
Backup no 1.5
Remoção do 1.5 (inclusive do registro e também a gds32.dll e fbclient.dll)
Reiniciar o pc
instalação do 2.1
Criação da base no 2.1
Restaure no 2.1
Ao acessar minha aplicação tenho obtido o seguinte erro:
[b:f9176fa7ee]SQL Error: Error Mapping Failed[/b:f9176fa7ee]
Este erro ocorre se eu informar o ip no path de localização do banco, se eu informar somente C:\MinhaApp\Dados\MeuBanco.FDB este erro não ocorre.
Verifiquei o firewall, a porta 3050 esta tudo certo, basta eu informar
LocalHost:C:\MinhaApp\Dados\MeuBanco.FDB e obtenho o erro mesmo em tempo de design ao tentar abrir o ClientDataSet.
O que achei estranho foi que, eu fiz um teste e antes de migrar para a 2.1 eu primeiro, converti para a 2.0 e na 2.0 funcionou normalmente.
Outra coisa que estou notando, tenho um DataModulo padrão, onde todos meus sistemas contemplan ele, neste DM estão as tabelas ref. a cadastros de usuários e autenticidade do sistema, ele é inserido no projeto,portanto tenho 2 dm´s um do sistema propriamente dito e este para as validações.
No evento BeforeConnect tenho o seguinte código:
Este código para ativar o DM onde estão as tabelas de usuários e validações do sistema e no DM do sistema tenho este codigo aqui:
A ordem de criação dos DMs no project options->Auto-CreateForms esta da seguinte forma:
DM do meu sistema
Tela principal do meu sistema
DM de senhas e tabelas de usuários.
O erro acontece justamente no open de uma das tabelas do dm de senhas.
Sei que estou fazendo algo errado ao trabalhar com 2 dms mas ainda não sei onde, já alterei a ordem de criação no auto create, alterei o nome do componente SqlConnections para que ambos ficassem iguais, mas creio não ser isso pois em design já tenho o erro e somente no dm de autorizações, no outro funciona normalmente, ou seja ele abre sem dar o erro.
Se alguém puder me dar uma explanação sobre isto eu agradeço e muito pois até agora não consegui nada.
Desculpem o texto longo, que mais parece um desabafo.
Grato
Fausto
[b:f9176fa7ee]Utilizo Delphi 7 e DBExpress[/b:f9176fa7ee]
Lembrando que os problemas relacionados com o DBX e Firebird 2.1 somente acontece com a versão 4 do dbx somente encontrada a partir do delphi 2007.
Como estou procedendo:
Backup no 1.5
Remoção do 1.5 (inclusive do registro e também a gds32.dll e fbclient.dll)
Reiniciar o pc
instalação do 2.1
Criação da base no 2.1
Restaure no 2.1
Ao acessar minha aplicação tenho obtido o seguinte erro:
[b:f9176fa7ee]SQL Error: Error Mapping Failed[/b:f9176fa7ee]
Este erro ocorre se eu informar o ip no path de localização do banco, se eu informar somente C:\MinhaApp\Dados\MeuBanco.FDB este erro não ocorre.
Verifiquei o firewall, a porta 3050 esta tudo certo, basta eu informar
LocalHost:C:\MinhaApp\Dados\MeuBanco.FDB e obtenho o erro mesmo em tempo de design ao tentar abrir o ClientDataSet.
O que achei estranho foi que, eu fiz um teste e antes de migrar para a 2.1 eu primeiro, converti para a 2.0 e na 2.0 funcionou normalmente.
Outra coisa que estou notando, tenho um DataModulo padrão, onde todos meus sistemas contemplan ele, neste DM estão as tabelas ref. a cadastros de usuários e autenticidade do sistema, ele é inserido no projeto,portanto tenho 2 dm´s um do sistema propriamente dito e este para as validações.
No evento BeforeConnect tenho o seguinte código:
var ArqIni : tIniFile;
Caminho,Porta :string;
begin
SPortas := TStringList.Create;
SPortas.Add(´COM1´);
SPortas.Add(´COM2´);
SPortas.Add(´COM3´);
SPortas.Add(´COM4´);
SPortas.Add(´COM5´);
SPortas.Add(´COM6´);
SPortas.Add(´COM7´);
SPortas.Add(´COM6´);
SPortas.Add(´COM9´);
ArqIni := tIniFile.Create(ExtractFilePath(Application.ExeName) + ´Conecta.ini´);
Caminho := ArqIni.ReadString(´CAMINHO´, ´PATH´, ´´);
SenhaCon.Params.Values[´DATABASE´] := Caminho;
Porta := ArqIni.ReadString(´ECF´, ´PORTA´, ´´);
VPorta := SPortas.IndexOf(Porta) + 1;
ArqIni.Free;
Este código para ativar o DM onde estão as tabelas de usuários e validações do sistema e no DM do sistema tenho este codigo aqui:
var
ArqIni: tIniFile;
Caminho, Porta, PortaT: string;
Modelo, ModeloT, AvancoT: Integer; // TempT: Integer;
begin
ArqIni := tIniFile.Create(ExtractFilePath(Application.ExeName) + ´Conecta.ini´);
Caminho := ArqIni.ReadString(´CAMINHO´, ´PATH´, ´´);
Leitor := ArqIni.ReadString(´LEITOR´, ´TIPO´, ´´);
LPorta := ArqIni.ReadString(´LEITOR´, ´LPORTA´, ´´);
Modelo := ArqIni.ReadInteger(´ECF´, ´MODELO´, 0);
Porta := ArqIni.ReadString(´ECF´, ´PORTA´, ´´);
//Dados da Impressora Termica, se houver.
ModeloT := ArqIni.ReadInteger(´IMPTERMICA´, ´MODELOTERM´, 0);
PortaT := ArqIni.ReadString(´IMPTERMICA´, ´PORTATERM´, ´´);
AvancoT := ArqIni.ReadInteger(´IMPTERMICA´, ´AVANCOTERM´, 0);
//TempT := ArqIni.ReadInteger(´IMPTERMICA´, ´TEMPTERM´, 0);
ModeloImp := ArqIni.ReadString(´IMPTERMICA´, ´MARCATERM´, ´´);
Lojascon.Params.Values[´DATABASE´] := Caminho;
if (Modelo > 13) then
Modelo := 0;
Ecf.Modelo := TACBrECFModelo(Modelo);
Ecf.Porta := Porta;
EtqBarras.Modelo := TACBrETQModelo(ModeloT);
EtqBarras.Porta := PortaT;
EtqBarras.Avanco := AvancoT;
ArqIni.Free;
A ordem de criação dos DMs no project options->Auto-CreateForms esta da seguinte forma:
DM do meu sistema
Tela principal do meu sistema
DM de senhas e tabelas de usuários.
O erro acontece justamente no open de uma das tabelas do dm de senhas.
Sei que estou fazendo algo errado ao trabalhar com 2 dms mas ainda não sei onde, já alterei a ordem de criação no auto create, alterei o nome do componente SqlConnections para que ambos ficassem iguais, mas creio não ser isso pois em design já tenho o erro e somente no dm de autorizações, no outro funciona normalmente, ou seja ele abre sem dar o erro.
Se alguém puder me dar uma explanação sobre isto eu agradeço e muito pois até agora não consegui nada.
Desculpem o texto longo, que mais parece um desabafo.
Grato
Fausto
Faustoalves
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)