Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Problemas con Firebird (https://www.clubdelphi.com/foros/showthread.php?t=71953)

Paulao 20-01-2011 17:24:20

Problemas con Firebird
 
En mi casa, funciona mi programa, pero en mi cliente no. El error es:
Missing DataBase Property
Pero mi archivo .ini es lo mismo que el de mi casa. Abajo mi archivo y mi fuente del DataModulo de conexion.
Código Delphi [-]
[conexao_atual]
banco_atual=Firebird

[MySql]
DriverName=MySql50
HostName=127.0.0.1
DataBase=global_forseq
User_Name=root
password=simbad
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000


[SqlServer]
DriverName=MsSql
HostName=SRVMAIRIBEL      
DataBase=Global_Mairibel
User_Name=
Password=
OS Authentication=True

[FireBird]
DriverName=InterBase
DataBase=F:\Inet\Servidor\Global_Cosmeticos.gdb
User_Name=sysdba
Password=masterkey
SQLDialect=3
Y mi fuente
Código Delphi [-]
procedure TDM_Principal.SQLConnection1BeforeConnect(Sender: TObject);
var
 arq_conexao: TiniFile;
 path,
 banco,
 arquivo,
 p_banco: String;
begin
  conexao := Sqlconnection1;
  path := ExtractFilePath(Application.ExeName);
  arquivo := path + ExtractFileName('Conexao_Global.ini');
  arq_conexao := TIniFile.Create(arquivo);

  banco   := arq_conexao.ReadString('conexao_atual','banco_atual','');
  p_banco := arq_conexao.ReadString('conexao_atual','path_banco','');
  if banco = 'SqlServer' then
  begin
    SqlConnection1.ConnectionName                          := 'Mairibel';
    SqlConnection1.DriverName                              := 'MSSQL';
    SqlConnection1.GetDriverFunc                           := 'getSQLDriverMSSQL';
    SqlConnection1.LibraryName                             := 'dbxmss30.dll';
    SqlConnection1.LoginPrompt                             := False;
    SqlConnection1.VendorLib                               := 'OleDb';
    SqlConnection1.Params.Values['DriverName']             := arq_conexao.ReadString('SqlServer','DriverName','');
    SqlConnection1.Params.Values['HostName']               := arq_conexao.ReadString('SqlServer','HostName','');
    SqlConnection1.Params.Values['DataBase']               := arq_conexao.ReadString('SqlServer','DataBase','');
    SqlConnection1.Params.Values['User_Name']              := arq_conexao.ReadString('SqlServer','User_Name','');
    SqlConnection1.Params.Values['Password']               := arq_conexao.ReadString('SqlServer','password','');
    SqlConnection1.Params.Values['OS Authentication']      := arq_conexao.ReadString('SqlServer','OS Authentication','');
  end
  else
  if banco = 'MySql' then
  begin
    SqlConnection1.ConnectionName                          := 'MYSQLCONNECTION';
    SqlConnection1.DriverName                              := 'MySQL';
    SqlConnection1.GetDriverFunc                           := 'getSQLDriverMYSQL';
    SqlConnection1.LibraryName                             := 'dbxmys30.dll';
    SqlConnection1.LoginPrompt                             := False;
    SqlConnection1.VendorLib                               := 'LIBMYSQL.dll';
    SqlConnection1.Params.Values['DriverName']             := arq_conexao.ReadString('MySql','DriverName','');
    SqlConnection1.Params.Values['HostName']               := arq_conexao.ReadString('MySql','HostName','');
    SqlConnection1.Params.Values['DataBase']               := arq_conexao.ReadString('MySql','DataBase','');
    SqlConnection1.Params.Values['User_Name']              := arq_conexao.ReadString('MySql','User_Name','');
    SqlConnection1.Params.Values['Password']               := arq_conexao.ReadString('MySql','password','');
  end
  else
  if banco = 'FireBird' then
  begin
    SqlConnection1.ConnectionName                          := 'Mairibel_FB';
    SqlConnection1.DriverName                              := 'Interbase';
    SqlConnection1.GetDriverFunc                           := 'getSQLDriverINTERBASE';
    SqlConnection1.LibraryName                             := 'dbxint30.dll';
    SqlConnection1.LoginPrompt                             := False;
    SqlConnection1.VendorLib                               := 'GDS32.DLL';
    SqlConnection1.Params.Values['DriverName']             := arq_conexao.ReadString('FireBird','DriverName','');
    SqlConnection1.Params.Values['HostName']               := arq_conexao.ReadString('FireBird','HostName','');
    SqlConnection1.Params.Values['DataBase']               := arq_conexao.ReadString('FireBird','DataBase','');
    SqlConnection1.Params.Values['User_Name']              := arq_conexao.ReadString('FireBird','User_Name','');
    SqlConnection1.Params.Values['Password']               := arq_conexao.ReadString('FireBird','password','');
  end;
end;

end.

Casimiro Notevi 20-01-2011 19:40:53

Por favor, recuerda usar títulos descriptivos cuando hagas preguntas.
No olvides nuestra guía de estilo, gracias.


DataBase=F:\Inet\Servidor\Global_Cosmeticos.gdb

F: ¿es una unidad física, o una unidad "mapeada" de red?

Recuerda que debes usar rutas completas y físicas, ejemplo:

192.168.0.100:c:\datos\cosmeticos.fdb

Paulao 20-01-2011 19:48:30

F es una unidad fisica

Casimiro Notevi 20-01-2011 19:52:50

¿Puede ser que tengas instaladas distintas versiones de firebird?

Paulao 20-01-2011 19:59:16

No, solo una. Yo baje y instale en el servidor de la empresa. No hay otra.

Casimiro Notevi 20-01-2011 21:18:30

Lo que no entiendo, entre otras cosas, es que pones algo sobre mysql, mssql, interbase, firebird, etc. ¿eso qué es?

juanelo 20-01-2011 22:55:32

Cita:

Empezado por Casimiro Notevi (Mensaje 388120)
Lo que no entiendo, entre otras cosas, es que pones algo sobre mysql, mssql, interbase, firebird, etc. ¿eso qué es?

Es su archivo de configuracion para DBExpress, donde pueden venir los datos para cualquier conexion que se quiera realizar.
Por otro lado, mirando precisamente ese archivo, lo unico que noto "raro", ademas de la unidad "F", es que el usuario maestro de FB es SYSDBA (con mayusculas) y él tiene con minusculas.
Saludos

RONPABLO 20-01-2011 23:29:48

Otra cosa que no veo es el HostName en la parte de configuración del archivo .ini en la sección de Firebird


Cita:

Empezado por Error
[FireBird]
DriverName=InterBase
DataBase=F:\Inet\Servidor\Global_Cosmeticos.gdb
User_Name=sysdba
Password=masterkey
SQLDialect=3

Cita:

Empezado por DeberíaSer
[FireBird]
DriverName=InterBase
DataBase=F:\Inet\Servidor\Global_Cosmeticos.gdb
User_Name=sysdba
Password=masterkey
SQLDialect=3
HostName=Localhost


Paulao 21-01-2011 12:04:31

Si, lo sé, pero en mi computadora funciona. Solo no en mi cliente.

RONPABLO 21-01-2011 15:33:00

A mi particularmente si no le digo la ruta del servidor (así sea el servidor el mismo equipo) nunca me funciona la conexión, yo probaría en colocar en el equipo de su cliente el nombre del servidor

pacopenin 21-01-2011 15:47:49

Hola.

En un ordenador, me ocurría que no conectaba con la base de datos si no ponía el Host cuando conectaba de modo local. Nunca me paré a estudiarlo ya que casi siempre lo pongo (y con él funcionaba sin problemas). Ni siquiera me abría con IBExpert. Lo que no recuerdo es el error que salía.Quizá no pierdas nada intentándolo.

Saludos,

RONPABLO 21-01-2011 23:24:54

y si no funciona de esta forma:

Cita:

[FireBird]
DriverName=InterBase
DataBase=F:\Inet\Servidor\Global_Cosmeticos.gdb
User_Name=sysdba
Password=masterkey
SQLDialect=3
HostName=Localhost
Pruebe de esta otra forma:

Cita:

[FireBird]
DriverName=InterBase
DataBase=Localhost:F:\Inet\Servidor\Global_Cosmeticos.gdb
User_Name=sysdba
Password=masterkey
SQLDialect=3


guillotmarc 23-01-2011 04:59:38

A mi me parece que casi con toda probabilidad es simplemente que en el equipo cliente no localiza el archivo dbxdrivers.ini donde está definida la conexión, y por eso no la puede abrir.

Había leído que en algunas versiones modernas de Delphi ocurre esto (lamentablemente solo utilizo dbExpress en Delphi 6, así que no te puedo ayudar a distribuir correctamente el archivo de configuración de las conexiones dbExpress, o bien configurar tu conexión para que no necesite de ningún archivo de configuración).

gmontes 06-02-2011 05:48:29

¿no abriras un clientdataset antes de cargar los parametros, o algo similar?


La franja horaria es GMT +2. Ahora son las 14:31:31.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi