FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
EAccessViotaton al intentar conectar
Hola a todos:
Tengo una tabla IB conectada con IBX. El código para conectarla funciona bien en el evento OnCreate de cualquier form que no sea el principal, e incluso en un procedure del form principal llamado desde una opción del menú, pero da error si lo pongo en el evento OnCreate del form principal. El error es: ... raised exception class EAccessViolation with message 'Violación de acceso en la dirección 0052B3E2 en módulo 'PComunidad.exe'. Leer de dirección 00000058. Código:
//en este procedure del form principal da error procedure TFMenu.FormCreate(Sender: TObject); begin //conectar base de datos, transación DM.IBDB.DatabaseName := ExtractFilePath(ExpandFileName(ParamStr(0))) + 'COMUNIDAD.GDB'; DM.IBDB.Connected := True; DM.IBT.Active := True; end; // en este procedure del mismo form funciona bien procedure TFMenu.AbrirperodoClick(Sender: TObject); begin //conectar base de datos, transación DM.IBDB.DatabaseName := ExtractFilePath(ExpandFileName(ParamStr(0))) + 'COMUNIDAD.GDB'; DM.IBDB.Connected := True; DM.IBT.Active := True; end; //en el evento OnCreate de cualquier otro form llamado desde este principal funciona bien Un saludo. Tomás. |
#2
|
|||
|
|||
Seguramente que si miras el DPR del proyecto verás que el DataModule DM se crea después del formulario principal. Invierte el orden o haz la conexión en el OnShow del formulario principal
|
#3
|
|||
|
|||
Hola:
Muchisimas gracias, cadetill. Efectivamente, tenía primero el form principal y luego el DM, los he invertido y funciona perfectamente. Un saludo. Tomás. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|