Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Abrir una Base de Datos en Tiempo de Ejecución (https://www.clubdelphi.com/foros/showthread.php?t=15214)

gluglu 14-10-2004 15:44:19

Abrir una Base de Datos en Tiempo de Ejecución
 
Hola a todos de nuevo,

Después de mi recuperación de una dichosa gripe que me ha mantenido apartado dos días vuelvo con esta duda.

Intento abrir una base de datos en tiempo de ejecución, pero el DBGrid correspondiente no me muestra nada de nada. Por supuesto si hago lo mismo en tiempo de diseño, todo me funciona de maravilla.
Código Delphi [-]
IBDatabase2.Connected    := False;
IBDatabase2.DatabaseName := IBQuery1.FieldByName('DIRECTORY').Value + '\MASTERH.IB';
IBDatabase2.Connected    := True;
IBTransaction2.Active    := True;
IBQuery2.Prepare;
IBQuery2.Open;
DBGrid2.SetFocus;
Estoy convencido de que abrirme la base de datos me la abre correctamente ya que me pide el Login con su clave correspondiente. Es más, si la base de datos no existe en el directorio indicado me da error.

Por lo tanto no sé donde puede estar el fallo para que el DBGrid2 no me muestre nada.

Saludos a todos.

quetzal 14-10-2004 16:07:31

Y despues de Abrir tu base de Datos, abriste tambien la tabla en la cual esta conectada al grid?

gluglu 14-10-2004 16:55:49

Gracias, quetzal

No utilizo ninguna tabla o componente TTable. Lo que utilizo, tal y como se muestra en mi hilo es un TIBQuery, cuyo comando SQL está indicado en tiempo de diseño.

Por ello creo que debe de bastar con IBQuery2.Prepare e IBQuery2.Open

El DBGrid2 está asociado en tiempo de diseño al DataSource2, que a su vez está asociado al DataSet IBQuery2.

La cuestión, insisto, es que todo me funciona correctamente no sólo en tiempo de diseño, sino que de hecho lo que hago con el código indicado es cambiar de una base de datos a otra. Al abrir el Form la primera vez me muestra todo correctamente pero al intentar cambiar la base de datos con ese código, ya el DBGrid2 se queda en blanco.

De cualquiera de las maneras, ante la duda, he probado con el siguiente código añadido y tampoco nada.
Código Delphi [-]
IBDatabase2.Connected    := False;
IBDatabase2.DatabaseName := IBQuery1.FieldByName('DIRECTORY').Value + '\MASTERH.IB';
IBDatabase2.Connected    := True;
IBTransaction2.Active    := True;
IBQuery2.Prepare;
IBQuery2.Open;
DataSource2.DataSet      := IBQuery2;
DBGrid2.DataSource       := DataSource2;
DBGrid2.SetFocus;


La franja horaria es GMT +2. Ahora son las 12:00:19.

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