Hola amigos tengo mi base de datos en MySQL y el siguiente metodo en el evento onCreate del DataModule.
El caso es que compila y dice success, y obtengo el mensaje "datos actualizados" pero no abre la aplicacion. Ejecutando con F9 obtengo Thread kill, como que mato el proceso.
Código Delphi
[-]procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
admin: TIniFile;
i, x: integer;
rutadatos, nombredir: String;
fechanueva, fecha: TDate;
fechas: string;
begin
admin := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'CONFIG.ini');
with DataModule1.CONEXION do
begin
Close;
DriverName := 'MySQL';
Params.Values['HostName'] := admin.ReadString('admin', 'IP', '');
Params.Values['DataBase'] := admin.ReadString('admin', 'bd', '');
Params.Values['Port'] := admin.ReadString('admin', 'Port', '');
Params.Values['User_Name'] := admin.ReadString('admin', 'User', '');
Params.Values['Password'] := admin.ReadString('admin', 'Pass', '');
end;
try
CONEXION.Open;
try
rutadatos := ExtractFilePath(Application.ExeName) + 'datosxml\';
nombredir := rutadatos + 'copia' + FormatDateTime('ddmmyyyy', now());
if not (DirectoryExists(nombredir)) then
begin
CreateDir(nombredir);
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TClientDataSet then
begin
TClientDataSet(Components[i]).Active := True;
TClientDataSet(Components[i])
.SaveToFile(nombredir + '\' + TClientDataSet(Components[i]).Name
+ '.xml');
end;
end;
end
else
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TClientDataSet then
begin
TClientDataSet(Components[i]).Active := True;
end;
if Components[i] is TSQLTable then
begin
TSQLTable(Components[i]).Active := True;
end;
end;
end;
finally
ShowMessage('datos actualizados');
end;
except
on E: Exception do
showMessage(E.Message);
end;
end;