Leer Campo BLOB Oracle

Buenas tarde colegas del foro…
tengo un problemilla que no he podido resolver.
Resulta que tengo mi aplicacion y ste se conecta a una base de datos Oracle, dentro de la base de datos tengo una columna BLOB donde en Binario almaceno diferentes archivos en diferentes formatos(PDF’s, SWF, HTML, IMAGENES, ETC.)…
Las imagenes y los archivo de texto plano, los visualizo sin problemas. el problema est cuando quiero visualizar por ejemplo un archivo Flash(SWF), como extraigo los datos que estan almacenados en binario de mi base de datos y mostrarla en un HTMLVIEWER??
He publicado aqui en el foro varios temas referentes a eso, pero no encuentro la solucion… alguin quien pueda ayudarme por favor…

Tienes que guardar los datos a un fichero temporal que puedas cargar por html. Cuando usas una webview ests cargando el motor de navegador de tu plataforma y puede hacer lo que hara normalmente desde un navegador.

Doblemente obvio para cosas como Flash, que adems utilizan visualizadores propios y el usar una webview es solo un frontend para plugins.

Gracias Eduardo Por responder.

Mmmm, no entend muy bien.
Me puedes orientar un poco ms, con un ejemplo?
Este tipo de proyecto no lo haba realizado con Xojo, RS, ya se me est complicando…
Gracias de antemano.

[quote=18196:@Santiago Hernandez]Gracias Eduardo Por responder.

Mmmm, no entendí muy bien.
Me puedes orientar un poco más, con un ejemplo?
Este tipo de proyecto no lo había realizado con Xojo, RS, ya se me está complicando…
Gracias de antemano.[/quote]

Un HTMLViewer es un mininavegador web. Para poder desplegar un fichero de cualquier tipo necesita que el fichero exista físicamente. Dado que no tienes el fichero físicamente, sino en una base de datos como BLOB, tienes que guardarlo como fichero antes de poder utilizarlo en un HTMLViewer.

Como habías realizado este tipo de proyecto en lenguajes antes? Qué parte específica no habías entendido?

Yo utulizaba algo ms complicado porque no podia visualizar un SWF almacenado en un BLOB… y lo que hice fue hacer un html, subir los archivos SWF a un servidor externo, despues incrustar la direccion del SWF en mi HTML y subirlo a la Base de datos…
Es muy complicado as…
y nunca tenia necesidad de descargar nada temporalmente, solo hacia

dim TEXTOSQLas string=“select documento from manuales”
dim CONECTAR_BDas recordset= nombre_base_datos.sqlselect(TEXTOSQL)
IF CONECTAR_BD <> NIL THEN
WHILE NOT CONECTAR_BD.EOF
WEBHTMLVIEWER.loadpage(ConexionBasededatos.field(“DocumentoHTML”).nativevalue)
CONECTAR_BD.MOVENEXT
WEND
ELSE
MSGBOX “NO HAY DOCUMENTOS”
END IF

CONECTAR_BD.CLOSE

pero yo los quiero visualizar directo desde la base de datos sin realizar tantos pasos…
y no haba trabajado con datos Binarios como stos.

Perdona, te entend que lo que hacas antes era ms fcil.

Esto no es diferente. Antes, igual que ahora, necesitas que el SWF sea un fichero. Antes cargabas un fichero remoto y ahora lo haces localmente.

Cuando cargas un SWF remoto ersts descargando temporalmente. Al decidir guardar como BLOB ya no puedes llamar al fichero remoto asi que tienes que guardar el temporal tu mismo.

Los pasos no los realizas tu, los realiza la aplicacion, y la limitacion no es de Xojo sino de como funciona un motor HTML y como funciona un visualizador de SWF.

Si quisieras hacer lo mismo desde cualquier otro lenguaje tendras que seguir exactamente los mismos pasos ya que ni la BBD, ni el BLOB ni el visor HTML son parte del lenguaje.

mmm, entonces cualquiera de las dos maneras que eliga, estar correcto?
Seguir trabajando desde el server remoto
Gracias Eduardo

Más bien, la razón para guardar en un BLOB vs. en un fichero no se ven afectadas por esto. Si tienes otras razones para guardar los binarios en un BLOB entonces esta es una forma de trabajar con ello.

Yo, personalmente, no guardo jamás este tipo de cosas en BLOB. Me parece incorrecto en casi cualquier situación, honestamente. Prefiero guardar referencias a ficheros (aunque eso signifique más cuidado en la gestión luego). Llamar a un fichero siempre es más eficiente (ya que te saltas la capa de la BBD), es más versátil (puedes tenerlos en un disco diferente, en un servidor diferente, etc, solo cambias la referencia) y al final permite haer backups más eficientes (cuando haces un backup de una BBDD con BLOBS usualmente toda la base de datos cambia de un día para otro, mientras que si es una BBDD con referencias los cambios de un día a otro son más granulares).

muchas gracias por tus consejos eduardo… justo lo ultimo lo estoy haciendo, guardo solo las referencias de mis documentos en la abse de datos… asludos…