Como visualizo un campo tipo general de SQL server

03/11/2004 - 20:13 por VanzettyDurant | Informe spam
Hola grupo:
Tengo un problema y es el sgte. tengo un campo tipo general creado en una
tabla de SQLserver el cual guarda una foto tipo binario, cuando trato de
visualizar el campo en el formulario de VFP8 me da el siguiente error: OLE
object is invalid or corrupted. unbinding object olbfoto1.,
que puedo hacer?


Gracias por todo.

Vanzetty Durant
Aplicaciones & Desarrollo, Rep.Dominicana
 

Leer las respuestas

#1 Aldo Lavin
24/11/2004 - 22:26 | Informe spam
Hola...


lo que yo hago ( y no hice el codigo, lo baje de la pagina de ELGUILLE),
es usar ADO, te mando el codigo en VB , solo lo migras a VFP y debe jalar.

********************************************************
'
'Código para grabar y leer imagenes en campos de bases ( 9/Abr/98)
'
'Adaptado de un par de ejemplos de la ayuda de VB5
'
'©Guillermo 'guille' Som, 1998
'

Option Explicit

Dim DataFile As Integer
Dim Chunk() As Byte
Const conChunkSize As Integer = 16384


Public Sub LeerBinary(campoBinary As Field, unPicture As PictureBox)
'Leer la imagen del campo de la base y asignarlo al Picture
Dim lngCompensación As Long
Dim lngTamañoTotal As Long

'Se usa un fichero temporal para guardar la imagen
DataFile = FreeFile
Open "pictemp" For Binary Access Write As DataFile

lngTamañoTotal = campoBinary.FieldSize
Do While lngCompensación < lngTamañoTotal
Chunk() = campoBinary.GetChunk(lngCompensación, conChunkSize)
Put DataFile, , Chunk()
lngCompensación = lngCompensación + conChunkSize
Loop

Close DataFile
'Ahora se carga esa imagen en el control
unPicture.Picture = LoadPicture("pictemp")

'Ya no necesitamos el fichero, así que borrarlo
On Local Error Resume Next
If Len(Dir$("pictemp")) Then
Kill "pictemp"
End If
Err = 0
End Sub


Public Sub GuardarBinary(campoBinary As Field, unPicture As PictureBox)
'Guardar el contenido del Picture en el campo de la base
Dim i As Integer
Dim Fragment As Integer, Fl As Long, Chunks As Integer

'
'NOTA:
' El recordset debe estar preparado para Editar o Añadir
'

'Guardar el contenido del picture en un fichero temporal
SavePicture unPicture.Picture, "pictemp"

'Leer el fichero y guardarlo en el campo
DataFile = FreeFile
Open "pictemp" For Binary Access Read As DataFile
Fl = LOF(DataFile) ' Longitud de los datos en el archivo
If Fl = 0 Then Close DataFile: Exit Sub

Chunks = Fl \ conChunkSize
Fragment = Fl Mod conChunkSize
ReDim Chunk(Fragment)

Get DataFile, , Chunk()
campoBinary.AppendChunk Chunk()
ReDim Chunk(conChunkSize)
For i = 1 To Chunks
Get DataFile, , Chunk()
campoBinary.AppendChunk Chunk()
Next i
Close DataFile

'Ya no necesitamos el fichero, así que borrarlo
On Local Error Resume Next
If Len(Dir$("pictemp")) Then
Kill "pictemp"
End If
Err = 0
End Sub


********************************************************



Un saludo desde Acapulquito



LSCI Aldo Daniel Lavín Ruiz
Subdirección de Sistemas
Dirección de Catastro e impuesto Predial
Acapulco, Gro.

-
PortalFox :: Nada corre como un zorr
http://www.portalfox.co

PortalFox - NNTP Forum Gatewa

Preguntas similares