scigliano
16-03-2017, 15:09:13
Saludos... :)
Por largo tiempo he utilizado un archivo .bat para ejecutar los backup del DB2 manualmente con la siguiente instrucción:
DB2CMD DB2 BACKUP DATABASE ABC ONLINE TO "C:\Backup\" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 COMPRESS WITHOUT PROMPTING
Hasta allí, todo bien, sin problemas.
El punto es que ahora estoy intentando ejecutar esta misma instrucción directamente desde un ejecutable desarrollado en Delphi, y lo he programado de la siguiente manera:
procedure TFrmMenuPrincipal.BtnBatClick(Sender: TObject);
var
i : Integer;
Sentencia: TStringList;
begin
Sentencia := TStringList.Create;
Sentencia.Clear;
Sentencia.Add('DB2CMD DB2 BACKUP DATABASE ABC... ');
if ShellExecute(Handle,'open',PChar(Sentencia[0]),nil,nil,SW_SHOWNORMAL) <= 32
then
Application.MessageBox('No se pudo ejecutar la aplicación','Error', MB_ICONEXCLAMATION);
Sentencia.Free;
end;
Pero al ejecutar el procedimiento, siempre se genera un error, y lo se por la condición del ShellExecute de que si es menor a 32, muestre el mensaje indicado. Imagino que el error es por un tema de que faltan mas parámetros, pero he googleado y no he conseguido nada positivo.
Agradezco si alguien ha pasado por esta situación, que me pueda orientar.
Gracias de antemano.
Scigliano
Por largo tiempo he utilizado un archivo .bat para ejecutar los backup del DB2 manualmente con la siguiente instrucción:
DB2CMD DB2 BACKUP DATABASE ABC ONLINE TO "C:\Backup\" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 COMPRESS WITHOUT PROMPTING
Hasta allí, todo bien, sin problemas.
El punto es que ahora estoy intentando ejecutar esta misma instrucción directamente desde un ejecutable desarrollado en Delphi, y lo he programado de la siguiente manera:
procedure TFrmMenuPrincipal.BtnBatClick(Sender: TObject);
var
i : Integer;
Sentencia: TStringList;
begin
Sentencia := TStringList.Create;
Sentencia.Clear;
Sentencia.Add('DB2CMD DB2 BACKUP DATABASE ABC... ');
if ShellExecute(Handle,'open',PChar(Sentencia[0]),nil,nil,SW_SHOWNORMAL) <= 32
then
Application.MessageBox('No se pudo ejecutar la aplicación','Error', MB_ICONEXCLAMATION);
Sentencia.Free;
end;
Pero al ejecutar el procedimiento, siempre se genera un error, y lo se por la condición del ShellExecute de que si es menor a 32, muestre el mensaje indicado. Imagino que el error es por un tema de que faltan mas parámetros, pero he googleado y no he conseguido nada positivo.
Agradezco si alguien ha pasado por esta situación, que me pueda orientar.
Gracias de antemano.
Scigliano