Olá
colegas do iMasters, tudo certo?
O artigo que estamos publicando, refere-se ao objeto
“ADODB.Stream” que pode ser utilizado em aplicações
ASP para a solução de problemas envolvendo informações
binárias. A finalidade do artigo é saber como funciona
este objeto que não é um dos mais conhecidos pelos
novos programadores da tecnologia.
A classe “Stream” do objeto “Adodb”
tem a finalidade de trabalhar com dados em formatos texto ou binário,
dependendo da necessidade.
No código abaixo daremos um exemplo de como
incluir num Banco de Dados informações binárias
oriundas de arquivos localizados em diretórios locais.
<%
Option Explicit
‘DECLARANDO VARIAVEIS
Dim ObjStr
Dim ds_addr_imagem
Dim varBuffer
Dim Ors
Dim oConn
‘CRIANDO O OBJETO
“STREAM”
Set ObjStr = Server.CreateObject(“ADODB.Stream”)
‘INDICANDO O ENDEREÇO
DA IMAGEM
ds_addr_imagem = Server.MapPath(“imagens/minha_imagem.jpg”)
‘INDICA O TIPO DE
DADO QUE O OBJETO DEVERÁ LER
ObjStr.Type = 1 ‘AdBinary – Binário
‘ABRE O OBJETO
ObjStr.Open
‘LE INFORMAÇÕES
DO ARQUIVO
ObjStr.LoadFromFile ds_addr_imagem
‘DECARREGA INFORMAÇÕES
NA VARIAVEL
varBuffer = ObjStr.Read
‘DESTROI O OBJETO
“STREAM”
objStr.Close
Set ObjStr = nothing
‘CRIA OBJETO “CONECTION”
Set oConn = Server.CreateObject(“ADODB.Connection”)
‘CRIA OBJETO “RECORDSET”
Set Ors = Server.CreateObject(“ADODB.Recordset”)
‘ABRE CONEXÃO
oConn.open “Dbq=” & Server.MapPath(“../bd/meubanco.mdb”)
& “;Driver={Microsoft Access Driver (*.mdb)}”
‘ABRE RECORSET COM
ACESSO DIRETO À TABELA
Ors.Open “tb_arquivo”,oConn,1,3,2
‘ADICIONA O REGISTRO
Ors.Addnew
Ors(“bn_file”) = varBuffer
Ors.Update
‘DESTROI OBJETOS
Ors.Close
Ser Ors = Nothinf
Oconn.Close
Set oConn = nothing
%>
É importante salientar que, para o Script
funcionar corretamente, é imprescindível que, no
caso do banco de dados for o Access, o campo que receberá
as informações deve ser do tipo “OLE”,
único neste banco, capaz de receber este tipo de informação.
No caso de utilização do SQLServer,
o tipo “Image” é o mais recomendável.
Outros bancos como o Oracle e o MySQL, vai depender
da versão do banco de dados, mas em regra o tipo correto
seria “LongVarBinary”.
Bom, ficamos por aqui espero que façam bom
proveito.
Até mais.