Sección de tutoriales y manuales vb

Acceder y modificar datos de tipo BLOB en SQL server

Volver al índice

 



 

 

 

 

Este es un artículo traducido de la web de microsoft, que explica como leer y escribir datos binarios en un campo BLOB en una base de datos SQL.

 

 

 

 

 

 

Como utilizar ADO Stream para modificar datos BLOB en una BD SQL server

Este articulo se aplica a :

El objeto Stream introducido en ADO para simplificar el acceso y manipulación de datos binarios largos ( BLOB - Binary Large Object ) en una base de datos de SQL server.

Las versiones previas de ADO ( versiones anteriores a la 2.5 ), necesitaban recurrir a los métodos GetChunk y AppendChunk del objeto Field para leer y guardar datos BLOBs. Este artículo incluye código fuente de ejemplo para:

Nota. El ejemplo de código requiere la base de datos pubs demo de sql server.

Ejemplo 1 - Guardar los datos del campo a un archivo en disco

1 - Crear un nuevo proyecto EXE estandar.

2 - Seleccionar el menú Proyecto/Referencias y seleccione Microsoft ActiveX Data Objects 2.5 Object Library

3 - Agregar un botón al formulario ( por defecto Command1 )

4 - Pegue el siguiente código fuente en el formulario

Option Explicit

Dim cn          As ADODB.Connection ' -- Conexión
Dim rs          As ADODB.Recordset  ' -- Recordset
Dim m_stream    As ADODB.Stream     ' -- Objeto Stream para acceder a los datos


    
Private Sub Command1_Click()
    ' -- nueva conexión
    Set cn = New ADODB.Connection
    ' -- Abrir la conexión
    cn.Open "Provider=SQLOLEDB;data Source=;Initial Catalog=pubs;User Id=;Password="
    
    ' -- nuevo objeto recordset
    Set rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimistic

    Set m_stream = New ADODB.Stream
    
    m_stream.Type = adTypeBinary
    m_stream.Open
    m_stream.Write rs.Fields("logo").Value
    ' -- Guardar los datos en disco
    m_stream.SaveToFile "c:\publogo.gif", adSaveCreateOverWrite
    ' -- Cerrar
    rs.Close
    cn.Close
End Sub 

 

Ejemplo 2 - Transferir el archivo anterior a un campo de SQL

 

1 - Crear un nuevo proyecto EXE.

2 - añadir la referencia a Microsoft ActiveX Data Objects 2.5 Object Library

3 - Agregar un botón al formulario

4 - Pegar el siguiente código en Form1

Option Explicit

Dim cn          As ADODB.Connection
Dim rs          As ADODB.Recordset
Dim m_stream    As ADODB.Stream

Private Sub Command1_Click()
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB;data Source=;Initial Catalog=pubs;User Id=;Password="

    Set rs = New ADODB.Recordset
    rs.Open "Select * from pub_info", cn, adOpenKeyset, adLockOptimistic

    Set m_stream = New ADODB.Stream
    m_stream.Type = adTypeBinary
    m_stream.Open
    m_stream.LoadFromFile "path del archivo .gif"
    rs.Fields("logo").Value = m_stream.Read
    rs.Update

    rs.Close
    cn.Close
End Sub

 


Relacionados

 


Buscar en Recursos vb