Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-08-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
php+blob_firebird+TRichview

Tengo un sistema de gestión administrativa en delphi7 win32 que edita textos a través del componente Trichview y los graba en firebird 1.5 como blob. Ahora estoy implementando algunas consultas web sobre estos registros y me encuentro con el problema de que tengo que convertir los textos blob a html para presentarlos en la web. Dado que TRichview tiene un formateo de textos propietario no consigo mostrarlos directamente con las funciones blob que trae el php.
La solución que se me ocurre es crear un pequeño ejecutable delphi que lea los registros, los transforme a hltm (esta función la realiza el componente Trichview) y los grabe en un fichero de texto que la web lee e imprime en el navegador.
Me surgen las siguientes dudas:
1. La más importante, será demaiado oneroso para el servidor este proceso.
2. Como hago para que el script php espere a que se acabe de ejecutar el programa delphi.
3. Que tipo de proyecto debo crear para que el programa delphi sea lo más pequeno posible.
Responder Con Cita
  #2  
Antiguo 05-08-2005
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 22
apicito Va por buen camino
Por si alguien consulta este hilo voy a exponer como solucioné el tema:
Hice un cgi (ahora quiero cambiarloa un apache share module) que hace la consulta a la base de datos y a través de streams trapaso el valor del campo a un objeto TRichview para que formatee el texto y, desde este, con el metodo para exportar a htmlstream lo devuelvo a la web.
A pesar de que TRichview en principio no está hecho para funcionar en web esto funcionó. Pongo un código de ejemplo:
Código:
procedure TWebModule1.WebModule1WebActionItem3Action(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var f : TStream;
    s : TMemoryStream;
    Rve: TRichView;
    Rvs : TRVStyle;
begin
  Rvs:=TRVStyle.Create(self);
  Rve:=TRichView.Create(self);
  Rve.Visible:=False;
  Rve.Style:=Rvs;
  with Query do
    begin
      Sql.Clear;
      Sql.Add('Select MOD_TEXTO from MOD where MOD_CODIGO=1007');
      try
        Open;
      except
        Response.Content:='<h1> tabla</h1><p><p>No se encuentran datos</p>';
        Exit;
      end;
    end;
  f:=TMemoryStream.Create;
  f := Query.CreateBlobStream(Query.FieldByName('MOD_TEXTO'), bmRead);
  rve.LoadRVFFromStream(f);
  f.Free;
  s:=TMemoryStream.Create;
  rve.SaveHTMLToStream(s,'','','',[]);
  s.Position:=0;
  Response.ContentStream:=s;
end;
y en el php
Código:
include("http://localhost/cgi-bin/p1/texto");
donde p1 es el cgi y texto el nombre de la acción (pathinfo).
Espero que le sirva a alguien.
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


La franja horaria es GMT +2. Ahora son las 08:39:22.


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