Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mensaje de error al asignar la ubicación de una base de datos a un objeto IBDATABASE (https://www.clubdelphi.com/foros/showthread.php?t=83823)

jscubillos5 02-08-2013 15:53:08

Mensaje de error al asignar la ubicación de una base de datos a un objeto IBDATABASE
 
1 Archivos Adjunto(s)
Hola comunidad, quisiera saber si alguno de ustedes sabe por que se presenta un error, de DataAccessViolation al asignar la ubicación de una base de datos a un objeto IBDATABASE, en la propiedad DatabaseName, ya que al asignarle la ruta en donde se encuentra la base de datos, (FIREBIRD 2.1), me arroja este error, y se detiene el proceso, he adjuntado una imagen con el mensaje de error, se llama Sin título.jpg.

De ante mano gracias por leer este hilo.

Jose Roman 02-08-2013 16:11:17

Hola,
Ya trabajaste con el ALIAS o ya hiciste el test de la conexion?

jscubillos5 02-08-2013 16:19:30

Probe el test, y ejecuto correctamente
 
1 Archivos Adjunto(s)
Hola Jose Roman gracias por tu respuesta, he realizado lo que me aconsejaste, probe con el test conexión y ejecuto con completa normalidad, pero igual al intentar asignarle dinamicamente la ubicación de la base arroja el mismo error. Adjunto pantallazo del test de la conexión, no probe con el alias por que no se como hacerlo.

Casimiro Noteví 02-08-2013 16:35:31

Pon el código que lo veamos, no somos adivinos ;)

jscubillos5 02-08-2013 16:41:35

Código
 
Hola Casimiro Notevi, este es el código:

En el evento Form Create recojo los parametros de entrada para cargar una variable con la ubicación de la base central, así:

Código Delphi [-]
UbicacionCentral:= ParamStr(1);

Luego se lo envío a une evento que tengo en mi DataModule, así:

Código Delphi [-]
DataModuleCarga.EjecutarScript(UbicacionCentral, UbicacionArchivoPreparacion);

Luego ya en el Data Module, en el evento EjeuctarScript, muestra el mensaje de error al asignar la UbicacionCentral así:


Código Delphi [-]
IBDatabaseCentral.DatabaseName := RutaBaseCentral;
IBDatabaseCentral.Open;

El error aparece en pantalla al ejeuctar la primera linea: IBDatabaseCentral.DatabaseName := RutaBaseCentral;

maeyanes 02-08-2013 18:49:17

Hola...

¿Y de casualidad el objeto IBDatabaseCentral ya está creado al momento de ejecutarse esa instrucción?


Saludos...

jscubillos5 03-08-2013 00:31:35

Respuesta
 
Hola maeyanes, efectivamente es lo que tu dices, en el pograma principal, creo el formulario antes del DataModule, es decir:

Código Delphi [-]
program Carga_Inicial;
uses
  Windows,
  Messages,
  SysUtils,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  Fform   in 'FormularioPrincipal.pas {FormPrincipal: TForm},
  MDatos in 'MDatos.pas' {DataModuleCarga: TDataModule};
Y por esta razón no encontraba el DataModule, esteba apuntando a un objeto aun no creado en RAM.

Jose Roman 05-08-2013 15:47:01

Bueno te comento del ALIAS, el cual lo utilizo mucho debido a que sin importar la ubicacion de la bases de datos no tengo que modificar nada en mi aplicacion porque en ella esta siempre el mismo ALIAS.

1. Ubica la carpeta de instalacion en mi caso que es un windows 32 bits es C:\Program Files\Firebird\Firebird_2_5
2. Encontraras un archivo de extencion CONF, editalo con un editor de texto
3. La sintaxis del alias es: NOMBRE_ALIAS = UBICACION_BASE_DATOS, ejemplo: ALD = E:\Documents\RAD Studio\Projects\ALD\Exe\BData.fdb, guardas este archivo.
4. En tu DATABASE COMPONENT EDITOR de interbase, en la seccion CONECCTION y en la parte de DATABASE en vez de colocar toda esa ubicacion solo pones el nombre que elegiste como alias y listo.


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

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