• Domingo 19 de Mayo de 2024, 18:00

Autor Tema:  Re: Muy urgente por favor  (Leído 1878 veces)

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Muy urgente por favor
« en: Martes 18 de Marzo de 2003, 13:57 »
0
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
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

HurryCrack

  • Miembro MUY activo
  • ***
  • Mensajes: 206
    • Ver Perfil
Re: Muy urgente por favor
« Respuesta #1 en: Jueves 20 de Marzo de 2003, 18:42 »
0
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

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Muy urgente por favor
« Respuesta #2 en: Viernes 21 de Marzo de 2003, 09:32 »
0
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.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

HurryCrack

  • Miembro MUY activo
  • ***
  • Mensajes: 206
    • Ver Perfil
Re: Muy urgente por favor
« Respuesta #3 en: Sábado 22 de Marzo de 2003, 17:54 »
0
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.

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Muy urgente por favor
« Respuesta #4 en: Lunes 24 de Marzo de 2003, 10:58 »
0
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.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Muy urgente por favor
« Respuesta #5 en: Martes 25 de Marzo de 2003, 09:37 »
0
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
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

HurryCrack

  • Miembro MUY activo
  • ***
  • Mensajes: 206
    • Ver Perfil
Muy urgente por favor
« Respuesta #6 en: Viernes 28 de Marzo de 2003, 17:27 »
0