Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 13-08-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola pmtzg.

Cita:
hay alguna manera para que mis procesos que estan en mi datamodulo los ejecute desde otro form en forma automatica colocando los procedure en el FormPaint sin q me marque error?
El problema es que al invocar el procedimiento:datamodule.crea_base_datos en el evento OnPaint del form, será llamado cada vez que el form necesite repintarse.
Para que compruebes esto:
DataModule:
Código Delphi [-]
procedure TDMDatos.Open_bdfb;
begin
  IBDatabase1.DatabaseName:=RutaBdFb;
  IBDatabase1.LoginPrompt:= False;  // login desactivado
  IBDatabase1.Params.Clear;
  IBDatabase1.Params.Add('user_name=SYSDBA');
  IBDatabase1.Params.Add('password=masterkey');
  if not IBDatabase1.Connected then
  begin
      //IBDatabase1.Connected:=true; (Debajo haces Open)
     IBDatabase1.Open;
     IBTransaction1.DefaultDatabase:=IBDatabase1;
  end;
  if not IBTransaction1.Active then
    IBTransaction1.Active:=true;
end;

Form invocador: (agrega un TEdit y un TButton)
Código Delphi [-]
...
procedure TForm1.FormPaint(Sender: TObject); 
begin
  DMDatos.Open_bdfb;
  if DMDatos.IBDatabase1.TestConnected then
    ShowMessage('Conectado correctamente')
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Visible:= not Edit1.Visible;
end;
...
Al abrir el form muestra: "Conectado correctamente", al primer click sobre el botón te va a mostrar: "No es posible realizar la operacion -- La Base de Datos está actualmente abierta". Y si cambias de ventana y volves al form, vas a ver el cartel de error en cascada tantas veces como lo hagas, ya que el form se repinta y el evento OnPaint es disparado.

En el caso de que llames a la función DMDatos.Open_bdfb desde el evento OnCreate del form, asegurate de que en el órden de creación esté primero DMDatos (Project-> Options ->Auto-create forms) . De no ser así, vas a recibir un error de EAccesViolation ya que al invocar el procedimiento Open_bdfb, en el evento OnCreate del form invocador, DMDatos aún no ha sido creado.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conexion a una BD Firebird FelipeDiaz Firebird e Interbase 4 11-10-2007 22:25:56
Conexion con Firebird dblx Conexión con bases de datos 1 25-05-2006 23:23:55
conexion con firebird Yoli Conexión con bases de datos 1 11-03-2005 11:27:47
conexion a FIREBIRD ronson JAVA 3 26-05-2004 16:15:42
Conexion Firebird VB6 pzhero Firebird e Interbase 6 04-05-2004 19:17:12


La franja horaria es GMT +2. Ahora son las 22:15:20.


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
Copyright 1996-2007 Club Delphi