Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo_phs82

Blob no oracle 10g express

Recommended Posts

Olá a todos, sou iniciante com desenvolvimento de aplicações com base Oracle.

Pesquisei sobre a variavel Blob, entendi sua função mas não sei como implementar ela em uma aplicação, como seria uma procedure insere algo num campo do tipo Blob.

obs: estou utilizando C# e Oracle.

 

até mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai pessoal, desde que postei minha duvida fiz uma correria e achei dois artigos que me ajudaram muito.

 

para quem estiver sofrendo com isso ai vai os links.

manupulando um campo Blob do oracle com C#.

e esse com SQL

 

espero que ajude algumem esses artigos, assim que meu código funcionar direitinho posto ele aqui para não ter perda de tempo kkkkk.

 

Mas com isso surgiu uma nova duvida, o campo Blob armazena outros arquivos como *.doc, *.pdf entre outros ou só imagem

http://forum.imasters.com.br/public/style_emoticons/default/excl.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qualquer tipo de arquivo.

 

No site do Imasters tem um artigo sobre isto na parte de Oracle.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal consegui fazer o insert e o select na base, o insert é igual ao do artigo que deixei o link, mas a extração ta ai.

Expliquei do meu jeito, caso alguem melhore o código ou tenha uma maneira mais eficaz para vazer isso, é só compartilhar o conhecimento. kkkkk

 

mas dessa forma ele ja funciona direto é só fazer a parada da conexão com o banco e ja era.

 


        /// <summary>
        /// Esse método extrai da base de dados um arquivo do campo Blob e faz a magica de transforma-lo em seu formato original,
        /// mas com o nome que desejarmos. beleza
        /// </summary>
        /// <param name="strFileName">este parametro é o nome do arquivo que vai ser salvo</param>
        /// <param name="strFileExtension"> é a extenção do arquivo que vai ser gerado doc, pdf, jpg e assim vai</param>
        /// <param name="strPath">é o caminho onde vai ser gerado o documento ex: D:/meusTestes</param>
        /// <param name="strSQL"> é a instrução sql que vai fazer o select no banco.</param>
        /// <param name="cmdType">é o timpo de comando ex: CommandType.text ou CommandType.storedProcedure</param>
        /// <param name="itColDataBlob">aqui vem o indice da coluna que o Blob esta ex: você tem um campo ID do tipo int e o campo blbFile do tipo blob, então deve passar o numero 1</param>
        private void getImage(string strFileName,string strFileExtension,string strPath,string strSQL,CommandType cmdType,int itColDataBlob)
        { 
            try
            {
                conecta();
                long lngSize;
                ora_command = new OracleCommand(strSQL, ora_connection);
                ora_command.CommandType = cmdType;
                ora_dataReader = ora_command.ExecuteReader(CommandBehavior.SequentialAccess);
                FileStream fStream = new FileStream(strPath + strFileName + "." + strFileExtension.Replace(".", ""), FileMode.OpenOrCreate, FileAccess.Write);
                BinaryWriter bWriter = new BinaryWriter(fStream);
                
                if (ora_dataReader.Read())
                {
                    byte[] bytBlob = new byte[Convert.ToInt32(ora_dataReader.GetBytes(itColDataBlob, 0, null, 0, 0))];
                    lngSize = ora_dataReader.GetBytes(0, 0, bytBlob, 0, Convert.ToInt32(ora_dataReader.GetBytes(0, 0, null, 0, 0)));
                    bWriter.Write(bytBlob);
                    bWriter.Flush();
                    bWriter.Close();
                    MessageBox.Show(" O arquivo " + strPath + strFileName + "." + strFileExtension.Replace(".", ""), "Extração", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Não foi possivel carregar o arquivo para o destino especificado", "Extração", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao carregar o arquivo " + "\n\n" + ex.Message.ToString());
            }
            
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.