FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Te importaría decirme cómo
Pues eso, te importaría decirme cómo lo solucionaste.
Gracias. |
#2
|
||||
|
||||
Cita:
|
#3
|
||||
|
||||
Pues no se bien cuando sucede
El caso es que en diseño todo esta correcto (aparentemente). En el onCreate del datamodule abro las tablas (en el datamodule no tengo datasources, salvo en aquellas que tienen estructura de maestro/detalle), en el create del form creo el datamodule, esto todo por código.
En diseño abro las bases de datos y asocio en el formulario dos datasouces de cada tabla (hago lo mismo en el caso de que se trate de informes - utilizo QuickReport) y en algunas ocasiones se pierde la asociación de los datasources y las tablas correpondientes pero no sabría decirte cuando. Lo soluciono abriendo bien el formulario bien el report y estableciendo otra vez las correpondencias y así cada vez que ocurre. Una pregunta ¿donde me recomiendas que ponga los datasources? en los datamodule y hacer referencia en los objetos de acceso a datos a los datasources del datamodule o crear los datasources en los formularios (o reports) y asociarlos con las tablas del datamodule. |
#4
|
||||
|
||||
En Delphi 4 lo asignaba a mano por código, creo recordar que en el oncreate del form (tendría que confirmártelo), es lo único "seguro" que encontré para que no se perdiera la asignación.
Luego con Delphi 5 me ocurrió en alguna ocasión (muy pocas), y con delphi 6 y 7 no me ha pasado nunca hasta ahora. En cuanto a los DataSources, yo los pongo en el form y los querys,transaction,database,etc los suelto en un DataModule para tener acceso a ellos desde los distintos forms que lo necesiten. |
#5
|
||||
|
||||
Eso es lo que intento
Lo que pretendo es precisamente eso hacerlo por código, lo intento con el código descrito a continuacion
Código:
dmClientes := nil; // datamodule dmClientes := TdmClientes.Create(Self); // creación del datamodule pDmConectado := dmClientes.fConectado; // si todo ha ido correcto o no if not pDmConectado then begin MessageDlg('Error de Conexión con la Base de Datos de Clientes',mtError,[mbOk],0); Close; // si no muestro mensaje y cierro el formulario end; if Not dsPrincipal.dataset.IsLinkedTo(dmClientes.IBTClientes) then dsPrincipal.DataSet := dmClientes.IBTClientes; // aquí es donde me dá el access violation (cuando pierde la conexión) Gracias por compartir la sabiduría Última edición por Jesús Pena fecha: 01-12-2005 a las 19:03:17. |
|
|
|