Hola neftali ....
durante la carga de la aplicacion se crean los distintos formularios asi como el modulo de datos (este va de primero) y dentro de el hay pues tablas y consultas (como 15 o menos de cada uno)
aca va el codigo del dpr
Código Delphi
[-]
Var
I:integer;
begin
FrmIntroProgreso:=TFrmIntroProgreso.Create(Application);
FrmIntroProgreso.Show;
FrmIntroProgreso.Update;
Application.Initialize;
Application.Title:='Nombre Aplicacion';
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+100;
Application.CreateForm(TDataSir, DataSir);
Application.CreateForm(TFrmPrincipal, FrmPrincipal);
Application.CreateForm(TFrmEst, FrmEst);
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+30;
Application.CreateForm(TFrmBuscador, FrmBuscador);
Application.CreateForm(TFrmConst, FrmConst);
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+30;
Application.CreateForm(TFrmCancelR, FrmCancelR);
Application.CreateForm(TFrmCancelRL, FrmCancelRL);
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+30;
Application.CreateForm(TfrmSancion, frmSancion);
Application.CreateForm(TFrmI, FrmI);
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+30;
Application.CreateForm(TFrmEg, FrmEg);
Application.CreateForm(TFrmTrasN, FrmTrasN);
FrmIntroProgreso.AlphaBlendValue:=FrmIntroprogreso.AlphaBlendValue+30;
Application.CreateForm(TFrmEgr, FrmEgr);
Application.CreateForm(TfrmS,FrmS);
Application.CreateForm(TFrmCr,FrmCr);
Application.CreateForm(TFrmGr, FrmGr);
for i:=FrmIntroProgreso.Barra.Position to FrmIntroProgreso.Barra.max do
begin
FrmIntroprogreso.Barra.Stepby(5);
sleep(10);
end;
FrmIntroProgreso.Hide;
FrmIntroProgreso.Free;
Application.Run;
end.
y durante la carga del primer form (modulo de datos)
Código Delphi
[-]
procedure TDataSir.DataModuleCreate(Sender: TObject);
begin
try
if not SqlConexion.Connected then SqlConexion.Connected:=true;
except
application.MessageBox('Imposible conectar con la Base de Datos'+#13+'Intente mas Tarde','Aviso del Sistema',MB_OK+MB_ICONEXCLAMATION);
application.Terminate;
end;
if Sqlconexion.Connected then
begin
Tabla1.Open;
Tabla2.Open;
tabla3.Open;
consulta1.Open;
tabla3.Open;
tabla4.Open;
consulta2.Open;
tabla5.Open;
consulta3.Open;
consulta4.Open;
consulta4.Last;
end;
end;
este codigo como ven se ejecuta durante el create del modulo de datos .
el que sigue es al final (aca no es el problema porque la aplicacion si que cierra )



Código Delphi
[-]
procedure TDataSir.DataModuleDestroy(Sender: TObject);
var
i:integer;
begin
if SqlConexion.Connected then SqlConexion.Connected:=false;
for i:=0 to self.ComponentCount-1 do
begin
if (self.Components[i] is TDataSet) then
if Tdataset(Components[i]).Active then Tdataset(Components[i]).Active:=false;
end;
end;
pues este es el codigo principal yo creo que la cosa esta en el modulo de datos ya que se crea primero alli durante la carga de la conexion y tablas lo que no se es identificar que elemento externo a puede estar afectando ..
por eso pregunto de que servicio depende una aplicacion como esta y como detectar si es el servidor de Bd o la red la que esta interfiriendo ....
GRacias ....