Ir al contenido principal

Como guardar un PDF en un campo de una tabla en SQL SERVER utilizando PowerBuilder

1.- Crea un campo de tipo image en la tabla donde deseas guardar tu archivo.
2.- Luego lees el archivo pdf del path donde se encuentre
3.- Seguidamente actualizas el contenido leido en el campo de la tabla
Supongamos que tenemos una tabla que se llama prueba y utiliza una llave
unica sobre el campo tmp_llave. El campo campo image se llama tmp_archivo.
// Declaramos nuetros campos de tipo blog
blob lbl_data
blob lbl_temp
long ll_file, ll_long = 0, ll_tam
integer li_pos = 1
// leemos el archivo
ll_file = FileOpen("c:\temp\prueba.pdf",streammode!)
// barremos sus registros
Do While FileRead(ll_file,lbl_temp) > 0
lbl_data += lbl_temp
Loop
// cerramos el archivo
FileClose(ll_file)
// actualizamos nuestra base de datos
UPDATEBLOB prueba SET prueba.tmp_archivo = :lbl_data WHERE
prueba.tmp_llave = :li_llave;
// Para recuperar y mostrar el archivo:
SELECTBLOB tmp_archivo INTO :lbl_data FROM prueba WHERE
prueba.tmp_llave = :li_llave;
ll_file FileOpen("c:\temp\prueba2.pdf",StreamMode!,Write!)
ll_tam = len(lbl_data)
if ll_tam <= 32766 then
FileWrite(ll_file,lbl_data)
else
Do
lbl_temp = BlobMid(lbl_data,li_pos,32765)
ll_long = ll_long + FileWrite(ll_file,lbl_temp)
li_pos = li_pos + 32765
Loop While ll_long <= ll_tam
end if
// fin de la solucion

Comentarios

  1. Muy bueno el ejemplo, yo tengo varios dis buscando como hacer esto pero desde visual basic 6.0 y sql server 2000, por casualidad sabes como hacerlo?
    Me ayudaras muchisimo si me das almenos una idea, y me ahorraras muchos dias mas en mi busqueda.
    Te dejo mi mail por si acaso:
    e2mch@hotmail.es
    Muchas gracias desde ya

    ResponderEliminar
  2. Hola Alonso en realidad me parece interesante tu algoritmo ... pero si en determinado caso, quiero abrir el pdf sin indicarle la ruta exacta, es decir jalar desde el campo binario donde guarde.

    Saludos

    ResponderEliminar
  3. Dim ms1 As New System.IO.MemoryStream
    Do While rdrbusqueda.Read()
    If Not rdrbusqueda.IsDBNull(0) Then
    retval = rdrbusqueda.GetBytes(0, 0, outbyte, 0, buffersize)
    ms1 = New System.IO.MemoryStream(outbyte)
    mencontro = True
    End If
    Loop

    If mencontro Then
    pbProducto.Image = Image.FromStream(ms1)
    pbProducto.SizeMode = PictureBoxSizeMode.StretchImage ' Para ajustar la imagen al tamaño del objeto
    pbProducto.Invalidate()

    End If

    ResponderEliminar
  4. uhmmm.... en power builder no habra una forma??, o necesariamente armarlo en visual

    ResponderEliminar
  5. Hola quiero guardar una imagen en 3D en SQL Server y mostrar en Power Builder 11.5 nose si me podias ayudarme
    te dejo mi correo: gladyscc@hotmail.es

    ResponderEliminar
  6. esto esta bien pero cuando lo quiero vizualizar las paginas me las muestras unas en negro y otras bien , y las imagenes salen descoloridas, pero miro el original y estan bien

    ResponderEliminar
  7. esto esta bien pero al vizualizarlo las imagenes me salen descoloridas y distorcionadas, al igual algunas paginas me salen en negro y otras bien que puedo hacer helllllll

    ResponderEliminar
  8. Quiero abrir un pdf de mi base de datos oracle de un campo blob para imprimirlo.
    alguien me puede ayudar

    ResponderEliminar
  9. Alguien me puede ayudar tengo un campo blob y tengo un pdf guardado ahí quiero visualizarlo o colocarlo en algún lugar de mi pc para poder imprimirlo.
    Me podrian ayudar

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

GUARDAR DOCUMENTOS PDF EN LA BASE DE DATOS SQLSERVER DESDE .NET

Personalmente quiero contarles que para mi este proceso ha sido muy escabroso,he dedicado muchas horas de investigacion para encontrar la forma de hacerlos lo más sencillo posible. Anteriormente había guardado imagenes en la base de datos utilizando compos de tipo imagen, pero luego revisando la documentacion de sqlserver 2005 encontre que en el futuro este tipo de campo podría ser descartado, esto me llevo a buscar otras alternativas especialmente con los campos binarios o (varbinary(max)) . PASOS: 1.- Primero declare las siguientes variables de clase en su formulario windows form Dim fdlg As New OpenFileDialog Dim fs As System.IO.FileStream Dim mcorr_documento As Int32 Dim bw As System.IO.BinaryWriter ----- fin de las variables de clase 2.- Seguidamente en su formulario pegue un objeto de tipo OpenFileDialog que le servira para buscar el archivo que desea almacenar en la base de datos 3.- Cree un objeto de tipo Combo y agregue una lista de los tipos de archivos q...

GUIA PARA IMPLEMENTAR PUNTO DE VENTA

Cuando iniciamos con nuestro negocio, uno de los requerimientos de ley es la emisión de facturas, créditos fiscales y/o tiquetes en sustitución de facturas. Para esto necesitamos un software que nos permita crear y emitir estos documentos. Esta solución se conoce como un punto de venta (PDV). Cuáles son los componentes que requiere un punto de venta. Un punto de venta normalmente está compuesto por: Una computadora, Una Gaveta para depositar el dinero, Un impresor de tiquetes, un Lector de Barras y un software que administre nuestros productos y ventas. Los pasos para implementar la solución podrían ser los siguientes: 1.- Adquirir el equipo y el software 2.- Codificar nuestros productos con código de barras. Si soy una tienda muchos productos ya traen barra, de lo contrario tendré que buscar una solución para poner mi propio código de barras si deseo ser más ágil en mi proceso de facturación. 3.- Ingresar los productos al sistema, con su descripción y precios unitarios 4.- I...