Ir al contenido


Foto

[RESUELTO] Base Firebird error de conexión con XE?


  • Por favor identifícate para responder
9 respuestas en este tema

#1 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 02 diciembre 2010 - 07:08

Hola, otro problema que estoy tratando de conectar la población de Firebird 2.5 con dbx y la nueva unidad de XE Delphi firebird.

Más  temprano, el problema era con el dbxfb.dll DLL, podría resolver el  problema de la mensaje de No se puede cargar falta dbxfb.dll ,  la instalación de este archivo dll en las carpetas

C:  Windows  System32
y
C:  Windows  SysWOW64

¿Por qué mi Windows Seven 64bits.Utimate

Ahora el problema ha cambiado, parece que no cree que la manera en que es el banco.

El código es este (incluso publicado la ruta donde está la orilla derecha allí para ver si iba a funcionar)


delphi
  1. unit uConexao;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, SqlExpr;
  7.  
  8. type
  9.   (* Tipo de banco de dados *)
  10.   TBancoDados = (ORACLE, FIREBIRD);
  11.   (* Herça de TSQLConnection para retornar a classe já toda configurada *)
  12.   TConexao = class(TSQLConnection)
  13.   private
  14.     { private declarations }
  15.     (* variavel static para realiza o padrão singleton *)
  16.     class var FTConexao: TConexao;
  17.     (* O contrutor tem ser privatdo *)
  18.     constructor create;
  19.     (* onde são passados as configurações de conexão *)
  20.     function ParametrosOracle: TConexao;
  21.     function ParametrosFirebird: TConexao;
  22.   protected
  23.     { protected declarations }
  24.   public
  25.     { public declarations }
  26.     (* ponto acesso da classe *)
  27.     class function GetIntance(Banco: TBancoDados): TConexao;
  28.     (* Metodo para retira da memória a instancia da classe *)
  29.     class procedure FreeIntance;
  30.   published
  31.     { published declarations }
  32.   end;
  33.  
  34. implementation
  35.  
  36. { TConexao }
  37.  
  38. constructor TConexao.create;
  39. begin
  40.   (* contrutor privado *)
  41. end;
  42.  
  43. class procedure TConexao.FreeIntance;
  44. begin
  45.   (* retira a variavel da memória *)
  46.   FreeAndNil(FTConexao);
  47. end;
  48.  
  49. class function TConexao.GetIntance(Banco: TBancoDados): TConexao;
  50. begin
  51.   (* padrão singleton caso não acha  instancia da classe ele cria *)
  52.   (* se houver alguma instancia ele retorna a mesma *)
  53.   if not Assigned(FTConexao) then
  54.   begin
  55.     case Banco of
  56.       ORACLE:
  57.         FTConexao := FTConexao.ParametrosOracle;
  58.  
  59.       //SQLSERVER:
  60.         //FTConexao := FTConexao.ParametrosSqlServer;
  61.  
  62.       FIREBIRD:
  63.         FTConexao := FTConexao.ParametrosFirebird;
  64.  
  65.       //MYSQL:
  66.         //FTConexao := FTConexao.ParametrosMySql;
  67.     end;
  68.   end;
  69.   Result := FTConexao;
  70. end;
  71.  
  72. //Conexao Firebird
  73. function TConexao.ParametrosFirebird: TConexao;
  74. var
  75.   Conn: TSQLConnection;
  76.   sCaminhoDB: String;
  77. begin
  78.   try
  79.     Conn := TSQLConnection.create(nil);
  80.     sCaminhoDB := 'localhost:C:Projeto MotoFreteBanco de Dadosmotofrete.fdb';
  81.     Conn.ConnectionName := 'FBCONNECTION';
  82.     Conn.DriverName := 'FIREBIRD';
  83.     Conn.LibraryName := 'dbxfb.dll';
  84.     Conn.VendorLib := 'fbclient.DLL';
  85.     Conn.GetDriverFunc := 'getSQLDriverINTERBASE';
  86.     (* passa o caminho do banco *) //Todo: Deixar flexivel depois
  87.     Conn.Params.Add('Database='+sCaminhoDB);
  88.     Conn.Params.Add('User_Name=SYSDBA');
  89.     Conn.Params.Add('Password=masterkey');
  90.     Conn.LoginPrompt := False;
  91.     Conn.Open;
  92.     //Linha comentada também não deu certo, o erro perciste
  93.     (*
  94.     with Conn do
  95.     begin
  96.       ConnectionName := 'FBCONNECTION';
  97.       DriverName := 'FIREBIRD';
  98.       GetDriverFunc := 'getSQLDriverINTERBASE';
  99.       LibraryName := 'dbxfb.dll';
  100.       LoginPrompt := False;
  101.       Params.Add('BlobSize=-1');
  102.       Params.Add('CommitRetain=False');
  103.       Params.Add('Database=' + sCaminhoDB);
  104.       Params.Add('ErrorResourceFile=');
  105.       Params.Add('LocaleCode=0000');
  106.       Params.Add('Password=masterkey');
  107.       Params.Add('RoleName=RoleName');
  108.       Params.Add('ServerCharSet=UTF8');
  109.       Params.Add('SQLDialect=3');
  110.       Params.Add('Interbase TransIsolation=ReadCommited');
  111.       Params.Add('User_Name=SYSDBA');
  112.       Params.Add('WaitOnLocks=False');
  113.       VendorLib := 'fbclient.DLL';
  114.  
  115.       Connected := true;
  116.     end; *)
  117.  
  118.     (* Cast para Tconexao *)
  119.     Result := (TConexao(Conn));
  120.   except
  121.     raise Exception.Create('Erro ao conectar com o Banco de Dados. Possíveis causas: '+#13+
  122.               ' 1- Usuario Inválido '+#13+
  123.               ' 2- Senha Inválida '+#13+
  124.               ' 3- Caminho do Banco incorreto');
  125.     Exit;
  126.   end;
  127. end;
  128.  
  129. //Conexao Oracle
  130. function TConexao.ParametrosOracle: TConexao;
  131. var
  132.   Conn: TSQLConnection;
  133. begin
  134.   (* configuração com banco *)
  135.   Conn := TSQLConnection.create(nil);
  136.   Conn.DriverName := 'ORACLE';
  137.   Conn.LibraryName := 'dbxora.dll';
  138.   Conn.VendorLib := 'oci.dll';
  139.   Conn.GetDriverFunc := 'getSQLDriverORACLE';
  140.   Conn.Params.Add('Database=XE');
  141.   Conn.Params.Add('User_Name=motofrefe');
  142.   Conn.Params.Add('Password=123');
  143.   Conn.LoginPrompt := False;
  144.   Conn.Open;
  145.  
  146.   (* Cast para Tconexao *)
  147.   Result := (TConexao(Conn));
  148. end;
  149.  
  150. end.



Chamo assim a classe


delphi
  1. procedure TfrmCadastroBase.btLocateClick(Sender: TObject);
  2. var
  3.     qryLocal: TSQLDataSet;
  4. begin
  5.   qryLocal := TSQLDataSet.Create(nil);
  6.   try
  7.     (* realiza a conexão com o banco *)
  8.     dsLocal.DataSet := qryLocal;
  9.     qryLocal.SQLConnection := TConexao.GetIntance(FIREBIRD);
  10.     qryLocal.CommandText := 'SELECT * FROM usuarios';
  11.     qryLocal.Open;
  12.   finally
  13.     FreeAndNil(qryLocal);
  14.   end;
  15. end;





¿No es el derecho de ... Más Aparece el siguiente error
Imagen Enviada
Que procurei tratar num bloco try/except... Mais eu não sei o pq aponta para este erro, algo que não acha o caminho do banco de dados.

Debugando achei o que "parece" que o codigo esta fazendo
Imagen Enviada
Não sei se é normal o que esta fazendo ai aonde aponto com a flecha.

Obrigado amigos.

Nota: Mi problema no es con el pájaro de fuego, pero con la XE nueva unidad para Delphi firebird. Lo siento si he publicado en la división equivocada del foro.
  • 0

#2 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 02 diciembre 2010 - 08:07

Hola,
¿el problema no estará en esta linea?



delphi
  1. sCaminhoDB := 'localhost:C:\Projeto MotoFrete\Banco de Dados\motofrete.fdb';



Deberías comprobar el acceso a esta ruta, intenta acceder de igual forma desde tu manejador y nos cuentas.


Saludos!
  • 0

#3 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 03 diciembre 2010 - 04:26

Hola,
¿el problema no estará en esta linea?



delphi
  1. sCaminhoDB := 'localhost:C:Projeto MotoFreteBanco de Dadosmotofrete.fdb';



Deberías comprobar el acceso a esta ruta, intenta acceder de igual forma desde tu manejador y nos cuentas.


Saludos!


Hola  amigo, gracias por ayudarme, me decidí a cambiar el modo de conectar  directamente por dbExpress por lo tanto no podía resolver de esta manera  alrededor.
  • 0

#4 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 03 diciembre 2010 - 04:48

¿Entonces pudiste solucionarlo?


Saludos!
  • 0

#5 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 03 diciembre 2010 - 05:33

¿Entonces pudiste solucionarlo?


Saludos!

Hola  amigo, pero se resolvió, pero no directamente en la aplicación, me estoy  conectando directamente a la SQLConnection con el dirve nuevo pájaro de  fuego. No voy a utilizar Oracle.

Pero voy a analizar el mejor sistema.

Por ahora se quedará de todos modos amigo.

Gracias.
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 diciembre 2010 - 05:38

Hola  amigo, pero se resolvió, pero no directamente en la aplicación, me estoy  conectando directamente a la SQLConnection con el dirve nuevo pájaro de  fuego. No voy a utilizar Oracle.

Pero voy a analizar el mejor sistema.

Por ahora se quedará de todos modos amigo.

Gracias.


Hola Adriano

pájaro de  fuego => Firebird. No necesitas traducir (y)

Salud OS
  • 0

#7 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 03 diciembre 2010 - 06:06


Hola  amigo, pero se resolvió, pero no directamente en la aplicación, me estoy  conectando directamente a la SQLConnection con el dirve nuevo pájaro de  fuego. No voy a utilizar Oracle.

Pero voy a analizar el mejor sistema.

Por ahora se quedará de todos modos amigo.

Gracias.


Hola Adriano

pájaro de  fuego => Firebird. No necesitas traducir (y)

Salud OS

Hola Egostar tudo bien?

perdón por el error en la traducción ...  :embarrassed:

Voy a  mostrar la imagen lo mismo que decir directamente en el componente hizo,  ¿por qué no la aplicación, voy a ver si puedo aquí.

Imagen Enviada

Thanks to all of the forum.



  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 diciembre 2010 - 08:06

Hola Adriano,

Tienes algún problema de conexión con Firebird ?

Salud OS
  • 0

#9 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 03 diciembre 2010 - 08:26

Hola Adriano,

Tienes algún problema de conexión con Firebird ?

Salud OS


Por lo que entiendo estaba creando su propia clase para conexión variando entre motor (Firebird - Oracle), pero al intentar abrir le daba ese error, por eso mi primer recomendación de verificar la ruta.
Ahora parece que se puede conectar bien usando directamente los componentes, pero ya no quiere usar Oracle como motor opcional.


Saludos!
  • 0

#10 adriano_servitec

adriano_servitec

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationCuritiba-Pr - Brasil

Escrito 04 diciembre 2010 - 02:15


Hola Adriano,

Tienes algún problema de conexión con Firebird ?

Salud OS


Por lo que entiendo estaba creando su propia clase para conexión variando entre motor (Firebird - Oracle), pero al intentar abrir le daba ese error, por eso mi primer recomendación de verificar la ruta.
Ahora parece que se puede conectar bien usando directamente los componentes, pero ya no quiere usar Oracle como motor opcional.


Saludos!

Sí, exactamente, no voy a usar el oracle de un tiempo y luego "standby" a sin mexer en la classe más ... Por ahora ...

Gracias gente
  • 0




IP.Board spam blocked by CleanTalk.