Você já deve ter ouvido alguma vez a palavra Banco de Dados Multimidia, mas afinal o que é e como funciona um BD multimidia ?
Podemos considerar um BD Multimidia quando este armazena além de texto outros tipos de dados, por exemplo arquivo de imagem, video, audio e etc.
Dentre os SGBD (Sistema de Gerenciamento de Banco de Dados) mais utilizados (Microsoft SQL Server, Oracle e MySQL) todos estes oferecem suporte a este tipo de informação.
Você deve estar se perguntando agora, mas afinal onde são armazenados esse tipo de informação no Banco de Dados ?
Bom então deixe-me apresentar a vocês o BLOB (Binary Large Object
- grande Objeto binário).
É um campo criado para o armazenamento de qualquer tipo de informação em formato binário dentro de uma tabela em um Banco de dados.
Vamos ver em alguns SGBD como podemos utilizar este recurso:
MySQL
No MySQL esse tipo de dado é classificado em:
TinyBlob - campo blob de armazenamento máximo igual a 255 caracteres (8 bits) mais 1 de controle; Blob - o mesmo que o Tinyblob, porém armazenando até 16535 caracteres (16 bits) mais 2 de controle; MediumBlob - o mesmo que o Tinyblob, porém armazenando até 16777216 caracteres (24 bits) mais 3 de controle; LongBlob - o mesmo que o Tinyblob, porém armazenando até 4294967295 caracteres (32 bits) mais 4 de controle.
Oracle
No Oracle são utilizados os tipos Blob e cBlob que é quem são responsáveis pelo armazenamento destas informações.
Microsoft SQL Server
Ja no Microsoft SQL Server podemos utilizar o campo Image para realizar este serviço.
Bem, chega de teoria vamos ver na prática como isso funciona.
A primeira coisa é verificar qual a versão de seu MDAC no caso iremos precisar da versão igual ou superiror a 2.5, para isso basta entrar no menu Project e depois clicar na opção References. Veja abaixo:
Se você não tiver você pode baixar no site da microsoft
A ideia é criar uma aplicação em Visual Basic que grave em uma tabela o codigo, o nome, o setor e a foto da pessoa, ok.
O funcionamento do programa é simples, primeiramente você informa um código, um nome, e um setor nos campos correspondentes e em um outro campo, no nosso exemplo o text4, eu informo o local onde esta localizado a foto da pessoa, por exemplo se ela estiver no diretório raiz preenchemos c:\foto.jpg
O SGDB utilizado será o MySQL, estarei considerando que você ja sabe montar a string de conexão de acesso ao Banco, também não estou preocupado com a funcionabilidade deste programa, ok
Sendo assim crie uma tabela chamada funcionarios com os seguintes campos:
Agora crie um form com 4 TextBox, 4 Labels e 2 botões. No final ele ficará mais ou menos desta forma, ok
Agora crie um objeto na sessão General chamado MyStream.Stream veja o exemplo:
Você percebeu que temos um novo metodo para trabalhar o Stream, na verdade vai ser ele quem vai fazer o serviço pesado, mas vamos adiante.
No evento clique do seu botão salvar insira o seguinte código:
Vamos as explicações:
Antes de começarmos gostaria de comentar apenas que Mycon é o meu objeto de conexão com o banco e MyRS é o meu objeto RecordSet, no seu programa você utilizará o nome que você criou.
Dito isto vamos lá:
MyStream.type = adTypeBinary - nesta linha estou dizendo ao meu objeto MyStream que ele irá converter para valores do tipo binario.
MyStream.Open - estou abrindo o MyStream
MyStream.LoadFromFile (Text4.Text) - estou indicando para o MyStream que ele leia o arquivo indicado no campo text4
MyRS.Open "SELECT codigo, nome, setor, midia FROM Funcionarios", MyCon, , adLockOptimistic - Apenas estou abrindo o meu RecordSet, ideal é que quando o volume de registros aumentar você coloque depois do nome da tabela a clausula WHERE 1=2 pois assim economizará recurso computacional.
Agora preciso que você preste atenção nesta linha do codigo:
MyRS.Fields(3) = MyStream.Read - repare que neste campo estou recebendo o conteudo lido pelo MyStream, como definimos o tipo dele igual a binário (Mystream.type = adTextBinary) então iremos armazenar valores binário na tabela, incrivel não !!!
MyStream.close - estou fechando o objeto MyStream
Agora vamos executar o nosso programa:
Se tudo ocorrer bem irá aparecer uma mensagem de confirmação, após isso verifique na sua tabela o que está armazenado no campo foto.
Se você constatar que funcionou pode apagar o arquivo de seu disco pois ele está armazenado agora no Banco de Dados.
Para uma eventual consulta você pode estar colocando um componente PictureBox e um ADODC assim você associa a propriedade RecordSource do ADODC com o Picture.
É claro que em um projeto o mais correto é colocar um CommonDialog para procurar o arquivo e melhorar sua funcionabilidade e aparencia, mas como disse acima a ideia é apenas mostrar como utilizar o recurso, ok
E é isso, espero que tenham gostado do artigo e me desculpem de alguma falha pois este é o meu primeiro artigo pra web.