SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: ROBER.29 en Martes 18 de Marzo de 2003, 13:57
-
Yo tengo una base de datos en Sql Server 2000 en la que tengo una tabla que contiene fotos y lo que necesito es poder exportar esas fotos a una carpeta. Como lo puedo hacer?
Creo que me he explicado bien pero si no lo entienden les agradecería que me lo dijeran y sería mas detallado.
Muchas gracias de antemano.
Saludos,
Roberto García
-
Ehi colegas, toma esto va mogollon de bien. Saludos
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
-
Muchas gracias. Me ha servido de gran ayuda.
Hace tiempo hice una pregunta en el foro y todavia no me ha respondido nadie. No se si lo que quiero se podrá hacer si me pudieras ayudar te lo agradecería mucho.
Haber lo que quiero es crear un fichero udl en tiempo de ejecución mediante visual basic pero no se como acerlo. Yo tengo una aplicación, en la cual el usuario elige a que base de datos quiere conectarse. Para ello, utilizo el objeto datalink para que al usuario le salga una ventana identica al del udl y pueda elegir la conexión. Pues bien yo en cuanto el usuario hay elegido la base de datos lo que quiero es crear un udl que conecte a la base de datos que eligió para luego poderle utilizar.
Saludos y muchas gracias de nuevo por tu ayuda.
Roberto García.
-
De nada amigo, pero para solucionar lo de los udl deberias darme mas info, sobre todo, que es un archivo udl, ya que el tratamiento de un archivo u otro solo depende de eso, de como lo trates en el visual. Supongo que haciendolo en txt te serviria, ya que guardando la opcion por defecto en ese archivo y recuperandola se conectaria como tu quisieses y si cambia el proveedor se elimina esa y se guarda la otra. No se? dime algo mas. Un saludo.
-
te adjunto un fichero udl para que puebas ver como es. Un fichero udl es simplemente un vinculo de datos de Microsoft, es decir un fichero que conecta a la base de datos.
La verdad es que con un fichero de texto me vale de sobra, de echo lo tengo asi de forma momentanea, pero es que en el trabajo me piden que lo haga con ficheros udl y no tengo ni idea como conseguirlo.
-
Ya he conseguido hacer lo del fichero udl. Te adjunto la función por si te interesa.
Muchas gracias por tu ayuda.
Saludos,
Roberto García
-