Entendiendo BLOBs en VB6 y Oracle
Las BLOB son Binaries Large Objects, objetos binarios de gran tamaño. Es un tipo de dato que permite almacenar grandes cantidades de datos binarios, como imágenes o cualquier otro tipo de archivo multimedia.
La conexión Oracle y VB6
Llevar a cabo la tarea de grabar un BLOB en un sistema de base de datos Oracle usando el lenguaje de programación Visual Basic 6 (VB6) requiere inicialmente de una conexión exitosa entre la aplicación VB6 y la base de datos Oracle.
Dim conn As ADODB.Connection Set conn = New ADODB.Connection conn.Open "Provider=OraOLEDB.Oracle; Data Source=yourOracleDB;User Id=yourUsername;Password=yourPassword;"
Vinculación de un BLOB usando VB6 y Oracle
Para vincular un BLOB se necesita la ayuda de la biblioteca ADODB.Stream y la ADODB.Recordset para manipular los datos BLOB. Utilizaremos la ADODB.Stream para guardar un archivo en un campo BLOB y la ADODB.Recordset para seleccionar, actualizar, borrar e insertar datos en la base de datos Oracle.
Dim strFilePath As String strFilePath = "C:Documentsexample.txt" Dim objStream As ADODB.Stream Set objStream = New ADODB.Stream objStream.Type = adTypeBinary objStream.Open objStream.LoadFromFile strFilePath
Operaciones CRUD Básicas
Creando un Registro
El siguiente bloque de código ilustra cómo insertar un registro utilizando VB6. Este ejemplo insertará los datos binarios de un archivo en un campo BLOB en la tabla Oracle.
Dim cmd As ADODB.Command Set cmd = New ADODB.Command cmd.ActiveConnection = conn cmd.CommandType = adCmdText cmd.CommandText = "INSERT INTO TableName (Id, BlobField) VALUES (?, ?)" cmd.Parameters.Append cmd.CreateParameter("Id", adInteger, adParamInput, , YOUR_ID) cmd.Parameters.Append cmd.CreateParameter("BlobField", adLongVarBinary, adParamInput, , objStream.Read) cmd.Execute
Recuperando un BLOB
Podemos recuperar un BLOB de nuestra base de datos Oracle utilizando el siguiente código:
Dim rs As New ADODB.RecordSet rs.Open "SELECT BlobField FROM TableName WHERE Id = " & YOUR_ID, conn, adOpenStatic, adLockReadOnly Set objStream = New ADODB.Stream objStream.Type = adTypeBinary objStream.Open objStream.Write rs!BlobField objStream.SaveToFile strFilePath, adSaveCreateOverWrite
En este código, recuperamos los datos binarios del campo BLOB de la tabla Oracle que corresponden a un determinado identificador (YOUR_ID). Posteriormente, utilizamos la función SaveToFile para guardar los datos binarios en un nuevo archivo.