Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2015-01

Enlazar tdbgrid con una tabla sqlite3

5 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Juan Perles

En un formulario llamado Principal tengo una tdbgrid. En otro formulario llamado Form3 tengo TSqlite3Dataset y el TDatasource. ( En esta unidad se trata todas las operaciones de la Base de Datos). En la definici�n de la TDbGrid no se ha podido especificar el DataSource. Con lo cual lo tengo que hacer en tiempo de ejecuci�n. En el evento FormCreate de Principal, pongo la siguiente instrucci�n

       Tdbgrid1.datasource :=Form3.contactsdatasource.

En tiempo de ejecuci�n me da un error de
El proyecto Pepe ha lanzado una excepci�n de la clase "External: EXC_BAD_ACCESS"
Justamente en la l�nea que tengo la asignaci�n del DataSource. �Que estoy haciendo mal?
Muchas gracias de antemano por vuestra ayuda.
Juan Perles
628.482.007
Enviado desde mi iPad

Reply by email

Victor Villalobos
to Juan Perles

1) Deberias crear un DataModule en vez de tener las connection en un Formulario e importar el modulo cuando sea necesario.
2) Estas importando correctamente el form? .
3) Trata de colocar el codigo de ejecucion de tu codigo en el evento "OnShow" de los formularios y no el "OnCreate", ya que muchos componentes que quieres inicializar no se han creado al momento en el que se ejecuta este evento.

Siguiendo estos pasos dudo que tengas algun problema, tambien recuerda que el datasource debe estar conectado a algun dataset, buen sea un Query o un Table y estos ultimos enlazados a un Connection en s propiedad "Connection".

Saludos y suerte, te recomiendo leer la documentacion de lazarus aca <http://wiki.freepascal.org/Lazarus_Database_Tutorial/es>

El 22 de enero de 2015, 6:37, Juan Perles <perlesj en gmail.com> escribi�:

Show quoted text 22 lines
En un formulario llamado Principal tengo una tdbgrid. En otro formulario llamado Form3 tengo TSqlite3Dataset y el TDatasource. ( En esta unidad se trata todas las operaciones de la Base de Datos). En la definici�n de la TDbGrid no se ha podido especificar el DataSource. Con lo cual lo tengo que hacer en tiempo de ejecuci�n. En el evento FormCreate de Principal, pongo la siguiente instrucci�n Tdbgrid1.datasource :=Form3.contactsdatasource. En tiempo de ejecuci�n me da un error de El proyecto Pepe ha lanzado una excepci�n de la clase "External: EXC_BAD_ACCESS" Justamente en la l�nea que tengo la asignaci�n del DataSource. �Que estoy haciendo mal? Muchas gracias de antemano por vuestra ayuda. Juan Perles 628.482.007 Enviado desde mi iPad _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150122/8598f192/attachment.html>

Reply by email

Juan Perles
to Victor Villalobos

Muchas gracias, he cambiado la instrucci�n al evento Show, como me dijo V�ctor, y me funciona. No obstante V�ctor me abre una perspectiva que desconoc�a y es el DataModule. Estoy estudiando esta posibilidad, sin embargo, a priori, no s� cu�ndo abrir la Base de Datos y por tanto poder establecer los link. Pero ya les digo que voy a estudiar y aprender, muchas gracias.

Juan Perles
628.482.007
Enviado desde mi iPad

Show quoted text 44 lines
El 22/1/2015, a las 14:52, Victor Villalobos <revxfire en gmail.com> escribi�: 1) Deberias crear un DataModule en vez de tener las connection en un Formulario e importar el modulo cuando sea necesario. 2) Estas importando correctamente el form? . 3) Trata de colocar el codigo de ejecucion de tu codigo en el evento "OnShow" de los formularios y no el "OnCreate", ya que muchos componentes que quieres inicializar no se han creado al momento en el que se ejecuta este evento. Siguiendo estos pasos dudo que tengas algun problema, tambien recuerda que el datasource debe estar conectado a algun dataset, buen sea un Query o un Table y estos ultimos enlazados a un Connection en s propiedad "Connection". Saludos y suerte, te recomiendo leer la documentacion de lazarus aca El 22 de enero de 2015, 6:37, Juan Perles <perlesj en gmail.com> escribi�: > En un formulario llamado Principal tengo una tdbgrid. > En otro formulario llamado Form3 tengo TSqlite3Dataset y el TDatasource. ( En esta unidad se trata todas las operaciones de la Base de Datos). > En la definici�n de la TDbGrid no se ha podido especificar el DataSource. Con lo cual lo tengo que hacer en tiempo de ejecuci�n. > En el evento FormCreate de Principal, pongo la siguiente instrucci�n > Tdbgrid1.datasource :=Form3.contactsdatasource. > > En tiempo de ejecuci�n me da un error de > El proyecto Pepe ha lanzado una excepci�n de la clase > "External: EXC_BAD_ACCESS" > Justamente en la l�nea que tengo la asignaci�n del DataSource. > �Que estoy haciendo mal? > Muchas gracias de antemano por vuestra ayuda. > Juan Perles > 628.482.007 > Enviado desde mi iPad > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es -- Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150123/0abe9b7a/attachment.html>

Reply by email

Victor Villalobos
to Juan Perles

Me alegra que te halla servido juan,

La conexion puedes abrirla al ejecturar tu programa en el evento OnShow de tu formulario principal, solo debes importar el DataModule normalmente como si fuese un formulario:

Uses

DataModule1

Y lo usas normalmente:

DataModule1.Connection.Connected := True;

Lo que si debes abrir solo cuando los necesites son tus dataset`s bien sea TTable o TQuery, o cualquiera que uses, yo lo hago de la siguiente forma, suponiendo que exista un formulario Clientes, haria esto:

Var
FormClientes: TFormClientes;
Begin
Try
DataModule1.TableClientes.Open;
FormClientes:= TFormClientes.Create(Self);
FormClientes.ShowModal();
DataModule1.TableClientes.Close;
Finally
FormClientes.Free;
End;

O puedes abrirlos en el evento OnShow del formulario que abriras, y cerrarlos en el OnClose del mismo, depende de la arquitectura de tu desarrollo.

Saludos.

El 23 de enero de 2015, 4:11, Juan Perles <perlesj en gmail.com> escribi�:

Show quoted text 76 lines
Muchas gracias, he cambiado la instrucci�n al evento Show, como me dijo V�ctor, y me funciona. No obstante V�ctor me abre una perspectiva que desconoc�a y es el DataModule. Estoy estudiando esta posibilidad, sin embargo, a priori, no s� cu�ndo abrir la Base de Datos y por tanto poder establecer los link. Pero ya les digo que voy a estudiar y aprender, muchas gracias. Juan Perles 628.482.007 Enviado desde mi iPad El 22/1/2015, a las 14:52, Victor Villalobos <revxfire en gmail.com> escribi�: 1) Deberias crear un DataModule en vez de tener las connection en un Formulario e importar el modulo cuando sea necesario. 2) Estas importando correctamente el form? . 3) Trata de colocar el codigo de ejecucion de tu codigo en el evento "OnShow" de los formularios y no el "OnCreate", ya que muchos componentes que quieres inicializar no se han creado al momento en el que se ejecuta este evento. Siguiendo estos pasos dudo que tengas algun problema, tambien recuerda que el datasource debe estar conectado a algun dataset, buen sea un Query o un Table y estos ultimos enlazados a un Connection en s propiedad "Connection". Saludos y suerte, te recomiendo leer la documentacion de lazarus aca <http://wiki.freepascal.org/Lazarus_Database_Tutorial/es> El 22 de enero de 2015, 6:37, Juan Perles <perlesj en gmail.com> escribi�: > En un formulario llamado Principal tengo una tdbgrid. > En otro formulario llamado Form3 tengo TSqlite3Dataset y el TDatasource. > ( En esta unidad se trata todas las operaciones de la Base de Datos). > En la definici�n de la TDbGrid no se ha podido especificar el DataSource. > Con lo cual lo tengo que hacer en tiempo de ejecuci�n. > En el evento FormCreate de Principal, pongo la siguiente instrucci�n > Tdbgrid1.datasource :=Form3.contactsdatasource. > > En tiempo de ejecuci�n me da un error de > El proyecto Pepe ha lanzado una excepci�n de la clase > "External: EXC_BAD_ACCESS" > Justamente en la l�nea que tengo la asignaci�n del DataSource. > �Que estoy haciendo mal? > Muchas gracias de antemano por vuestra ayuda. > Juan Perles > 628.482.007 > Enviado desde mi iPad > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -- Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150123/50a40ced/attachment.html>

Reply by email

Juan Perles
to Victor Villalobos

De nuevo muchas gracias por tu ayuda.

Juan Perles
628.482.007
Enviado desde mi iPad

Show quoted text 103 lines
El 23/1/2015, a las 14:57, Victor Villalobos <revxfire en gmail.com> escribi�: Me alegra que te halla servido juan, La conexion puedes abrirla al ejecturar tu programa en el evento OnShow de tu formulario principal, solo debes importar el DataModule normalmente como si fuese un formulario: Uses DataModule1 Y lo usas normalmente: DataModule1.Connection.Connected := True; Lo que si debes abrir solo cuando los necesites son tus dataset`s bien sea TTable o TQuery, o cualquiera que uses, yo lo hago de la siguiente forma, suponiendo que exista un formulario Clientes, haria esto: Var FormClientes: TFormClientes; Begin Try DataModule1.TableClientes.Open; FormClientes:= TFormClientes.Create(Self); FormClientes.ShowModal(); DataModule1.TableClientes.Close; Finally FormClientes.Free; End; O puedes abrirlos en el evento OnShow del formulario que abriras, y cerrarlos en el OnClose del mismo, depende de la arquitectura de tu desarrollo. Saludos. El 23 de enero de 2015, 4:11, Juan Perles <perlesj en gmail.com> escribi�: > Muchas gracias, he cambiado la instrucci�n al evento Show, como me dijo V�ctor, y me funciona. No obstante V�ctor me abre una perspectiva que desconoc�a y es el DataModule. Estoy estudiando esta posibilidad, sin embargo, a priori, no s� cu�ndo abrir la Base de Datos y por tanto poder establecer los link. > Pero ya les digo que voy a estudiar y aprender, muchas gracias. > > Juan Perles > 628.482.007 > Enviado desde mi iPad > >> El 22/1/2015, a las 14:52, Victor Villalobos <revxfire en gmail.com> escribi�: >> > >> 1) Deberias crear un DataModule en vez de tener las connection en un Formulario e importar el modulo cuando sea necesario. >> 2) Estas importando correctamente el form? . >> 3) Trata de colocar el codigo de ejecucion de tu codigo en el evento "OnShow" de los formularios y no el "OnCreate", ya que muchos componentes que quieres inicializar no se han creado al momento en el que se ejecuta este evento. >> >> Siguiendo estos pasos dudo que tengas algun problema, tambien recuerda que el datasource debe estar conectado a algun dataset, buen sea un Query o un Table y estos ultimos enlazados a un Connection en s propiedad "Connection". >> >> Saludos y suerte, te recomiendo leer la documentacion de lazarus aca >> >> >> >> El 22 de enero de 2015, 6:37, Juan Perles <perlesj en gmail.com> escribi�: >>> En un formulario llamado Principal tengo una tdbgrid. >>> En otro formulario llamado Form3 tengo TSqlite3Dataset y el TDatasource. ( En esta unidad se trata todas las operaciones de la Base de Datos). >>> En la definici�n de la TDbGrid no se ha podido especificar el DataSource. Con lo cual lo tengo que hacer en tiempo de ejecuci�n. >>> En el evento FormCreate de Principal, pongo la siguiente instrucci�n >>> Tdbgrid1.datasource :=Form3.contactsdatasource. >>> >>> En tiempo de ejecuci�n me da un error de >>> El proyecto Pepe ha lanzado una excepci�n de la clase >>> "External: EXC_BAD_ACCESS" >>> Justamente en la l�nea que tengo la asignaci�n del DataSource. >>> �Que estoy haciendo mal? >>> Muchas gracias de antemano por vuestra ayuda. >>> Juan Perles >>> 628.482.007 >>> Enviado desde mi iPad >>> _______________________________________________ >>> Lazarus-es mailing list >>> Lazarus-es en lists.lazarus.freepascal.org >>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es >> >> >> >> -- >> Victor Villalobos >> Bahia Pirata >> Inversiones Villalobos Balzan. >> 0412 6882141 >> _______________________________________________ >> Lazarus-es mailing list >> Lazarus-es en lists.lazarus.freepascal.org >> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -- Victor Villalobos Bahia Pirata Inversiones Villalobos Balzan. 0412 6882141 _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20150124/4042a09a/attachment.html>

Reply by email