12/08/2002, 09:45
|
| | Fecha de Ingreso: julio-2002
Mensajes: 4
Antigüedad: 22 años, 5 meses Puntos: 0 | |
Re: Guardar una Imagen en el SQL 2000 Hola .. mira tengo un codigo que esta hecho en visual basic que graba una imagen a sqlserver 7.0, lo que no cambiaria mucho desde asp a sqlserver 2000
Private Sub Form_Load()
Adodc2.Refresh
Adodc2.Recordset.AddNew
Call GrabaImagenEnBD(Adodc2.Recordset!foto, "C:\Balloon.bmp")
Adodc2.Recordset.Update
Adodc2.Refresh
If Adodc2.Recordset.RecordCount > 0 Then
Adodc2.Recordset.MoveLast
Call CogeImagenDeBD(Adodc2.Recordset!foto, "C:\temp.bmp")
End If
Picture1.Picture = LoadPicture("C:\temp.bmp")
Adodc2.Refresh
Adodc2.Recordset.MoveFirst
End Sub
Sub CogeImagenDeBD(f As adodb.Field, NombreImagen As String)
Dim Fichero As Integer
Const TamañoBuffer = 1024
Dim TamañoMinimo As Long
Dim Bloques As Long
Dim x() As Byte
Dim i As Long
On Error GoTo ErrorCogeImagenDeBD
Fichero = FreeFile
Open NombreImagen For Binary Access Write As Fichero
Bloques = Int(f.ActualSize / TamañoBuffer)
TamañoMinimo = f.ActualSize Mod TamañoBuffer
x() = f.GetChunk(TamañoMinimo)
Put Fichero, , x()
For i = 1 To Bloques
x() = f.GetChunk(TamañoBuffer)
Put Fichero, , x()
Next
Close Fichero
Exit Sub
ErrorCogeImagenDeBD:
MsgBox "CogeImagenDeBD", Err, Error
End Sub
Sub GrabaImagenEnBD(f As adodb.Field, NombreImagen As String)
Dim Fichero As Integer
Dim LongitudFichero As Long
Const TamañoBuffer = 1024
Dim TamañoMinimo As Long
Dim Bloques As Long
Dim x() As Byte
Dim i As Long
On Error GoTo ErrorGrabaImagenEnBD
Fichero = FreeFile
Open NombreImagen For Binary Access Read As Fichero
LongitudFichero = LOF(Fichero)
Bloques = Int(LongitudFichero / TamañoBuffer)
TamañoMinimo = LongitudFichero Mod TamañoBuffer
ReDim x(TamañoMinimo)
Get Fichero, , x()
f.AppendChunk x()
ReDim x(TamañoBuffer)
For i = 1 To Bloques
Get Fichero, , x()
f.AppendChunk x()
Next
Close Fichero
Exit Sub
ErrorGrabaImagenEnBD:
MsgBox "GrabaImagenEnBD", Err, Error
End Sub
espero que te sirva
JAMS1976 ;) |