Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2023
tiqui_loquito tiqui_loquito is offline
Miembro
 
Registrado: oct 2013
Posts: 56
Poder: 11
tiqui_loquito Va por buen camino
Gracias por la orientación Neftali y Casimiro

Por si alguien puede interesarle, realice lo siguiente:

Es un código para probar lo que necesito

Código Delphi [-]
procedure Form1.btn1Click(Sender: TObject);
var
  hInst: Cardinal;
  Paramt,path: string;

  BlobField: TBlobField;
begin
  Paramt := 'HC';
  path := ExtractFilePath(Application.ExeName) + 'Ecograma.exe';

  // Verifica si el archivo existe en la ubicación especificada
  if not FileExists(path) then
  begin
    ShowMessage('El archivo "Ecograma.exe" no se encuentra en la ubicación especificada.');
    Exit;
  end;

  //Aquí envío un parametro para poder ejecutar Ecograma.exe desde mí aplciativo
  //y no cuando le den clic directamenbet a Ecograma.exe
  hInst :=ShellExecute(0, 'open', PChar(path), PChar(Paramt), nil, SW_SHOWNORMAL);


  //Por si no se pudo abrir Ecograma.exe se informa al usuario
  if hInst <= 32 then
  begin
    case hInst of
      ERROR_FILE_NOT_FOUND:
        ShowMessage('El archivo no se encontró.');
      ERROR_PATH_NOT_FOUND:
        ShowMessage('La ruta especificada no se encontró.');
      ERROR_BAD_FORMAT:
        ShowMessage('El formato del archivo no es válido.');
      else
        ShowMessage('Se produjo un error al ejecutar el archivo.');
    end;
  end;

  //Se creo el campo ECOGRAMA en la BD
 IBQuery1.Close;
 IBQuery1.ParamByName('ECOGRAMA').DataType := ftGraphic;
 IBQuery1.ParamByName('ECOGRAMA').LoadFromFile('D:\mychart.sgp', ftBlob);
 IBQuery1.Open;

 IBQuery1.Transaction.CommitRetaining;

 IBQuery2.Close;
 IBQuery2.Open;

 BlobField := TBlobField(IBQuery2.FieldByName('ECOGRAMA'));
 SaveBlobToFile(BlobField, 'C:\mychart.sgp');

end;


//Procedimeinto para guardar el archivo que se descarga de BD
procedure form1.SaveBlobToFile(Blob: TBlobField;
  const FileName: string);
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    Blob.SaveToStream(Stream);
  finally
    Stream.Free;
  end;
end;


Con ese trozo de código hago lo siguiente:

Llamo a Ecograma.exe desde mi aplicativo y no permito que se ejecute si le doy doble click a Ecograma.exe, ya que este va a estar en la misma carpeta de mi aplicativo, además si quieren llevarlo
a otro pc y abrirlo no lo podrán hacer.

Código Delphi [-]
  Paramt := 'HC';  //en simplegra

  hInst :=ShellExecute(0, 'open', PChar(path), PChar(Paramt), nil, SW_SHOWNORMAL);

Una vez se abra Ecograma.exe, se guarde el diagrama (aquí debo modificar para que guarde el diagrama con ciertas condiciones), se guarda el fichero en BD(debo modificarlo para que lo guarde cuando le de guardar desde mi aplicativo, ingresando a la ubicación donde se guarda el diagrama ).

Código Delphi [-]
 IBQuery1.Close;
 IBQuery1.ParamByName('ECOGRAMA').DataType := ftGraphic;
 IBQuery1.ParamByName('ECOGRAMA').LoadFromFile('D:\mychart.sgp', ftBlob);
 IBQuery1.Open;

 IBQuery1.Transaction.CommitRetaining;


Finalmente se consulta el campo donde se guardo el fichero y se descarga en C: (aquí también debo hacer varios ajustes).

Código Delphi [-]
 IBQuery2.Close;
 IBQuery2.Open;

 BlobField := TBlobField(IBQuery2.FieldByName('ECOGRAMA'));
 SaveBlobToFile(BlobField, 'C:\mychart.sgp');



//Procedimeinto para guardar el archivo que se descarga de BD
procedure form1.SaveBlobToFile(Blob: TBlobField;
  const FileName: string);
var
  Stream: TFileStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    Blob.SaveToStream(Stream);
  finally
    Stream.Free;
  end;
end;

Probé abrir el fichero descargado y me abre normal y lo puedo editar.


Aun hay trabajo por hacer, pero por ahora va todo viento en popa

Gracias por su colaboración
Responder Con Cita
Respuesta



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
Guardar y recuperar imagen en bd Lizette Varios 17 26-11-2009 15:49:59
SQL Server - Grabar / Recuperar Imagen _Willa MS SQL Server 1 17-12-2008 13:37:30
Grabar imagen spia Tablas planas 4 12-03-2008 20:47:53
Recuperar IMAGEN de un QUERY natalinuyo Gráficos 31 12-02-2007 23:22:22
Cargar y recuperar imagen en bd MySQL??? burasu MySQL 2 22-08-2004 22:40:18


La franja horaria es GMT +2. Ahora son las 09:56:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi