Ir para conteúdo

Arquivado

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

André Castanheira

Gravando arquivos campo BLOB - ORACLE

Recommended Posts

PrezadosEstava olhando s forum e resolvi postar este material para vocês !!!Façam bom proveito:Para inserir um arquivo dentro de um campo blob no ORACLE, precisamos criar uma conexao com o banco utilizando o objeto OLEDB...Function SQL_Abre_Banco_OLEDB(ByVal pBaseDados As String, ByVal pUsuario As String, ByVal pSenha As String, rMessages As Collection) As Boolean On Error GoTo Erro_SQL_Abre_Banco SQL_Abre_Banco_OLEDB = True Set appbanco_oledb = New ADODB.Connection appbanco_oledb.Provider = "OraOLEDB.Oracle.1" appbanco_oledb.ConnectionString = "User ID=" & pUsuario & _ ";Password=" & pSenha & ";Data Source=" & pBaseDados & ";" & _ "FetchSize=200;" appbanco_oledb.CursorLocation = adUseClient appbanco_oledb.Open Exit Function Erro_SQL_Abre_Banco: SQL_Abre_Banco_OLEDB = FalseEnd FunctionApós feita a conexão ....Precisamos capturar o arquivoSub SCMU_Captura_BLOB(ByVal pstArquivo As String, _ ByRef rSTREAM_BLOB As ADODB.Stream, _ ByRef rboHouveErro As Boolean)On Error GoTo Erro_Inesperado 'Inicializa a variável rboHouveErro = False 'Verifica se o arquivo existe If BAS_Arquivo_Existe(pstArquivo) Then Set rSTREAM_BLOB = New ADODB.Stream 'Seta o tipo da variável rSTREAM_BLOB.Type = adTypeBinary rSTREAM_BLOB.Open 'Lê o arquivo rSTREAM_BLOB.LoadFromFile pstArquivo Else rboHouveErro = True End IfExit SubErro_Inesperado: rboHouveErro = TrueEnd Sub''''Função Auxiliar de verificação de arquivosPublic Function BAS_Arquivo_Existe(ByVal pArquivo As String) As BooleanOn Error GoTo TrataErro If Trim$(Dir$(pArquivo, vbArchive)) <> "" Then BAS_Arquivo_Existe = True Else BAS_Arquivo_Existe = False End IfOn Error GoTo 0Exit FunctionTrataErro: BAS_Arquivo_Existe = FalseEnd Function'''''' InclusãoSub Insert() Dim SQL As String Dim HouveErro As Boolean Dim RsExec As New ADODB.Recordset On Error GoTo INSERT_Error rExecute = "OK" SQL = "Select * From FIN_ARQUIVO_CONTRATO Where ROWNUM = 1" Call RsExec.Open(SQL, appbanco_oledb, adOpenKeyset, adLockOptimistic) RsExec.AddNew RsExec.Fields("SQ_ARQUIVO_CONTRATO").value = SQ_ARQUIVO_CONTRATO RsExec.Fields("TX_NOME_ARQUIVO").value = ARCO_TX_NOME_ARQUIVO.Valor RsExec.Fields("ARQUIVO").value = glbSTREAM_BLOB.Read RsExec.Update 'Fecha o recordset RsExec.Close Set RsExec = Nothing End Sub''' Consultar o arquivoSub Retorna_BLOB(ByVal pstTabela As String, _ ByVal pstWhere As String, _ ByVal pstCampo As String, _ ByVal pstDestino As String, _ ByRef rboHouveErro As Boolean)Dim vStream As New ADODB.Stream 'Variável para transformar o registro no arquivoDim vrsCons As New Recordset 'Variável para retorno dos registros do bancoDim vstSql As String 'Variável da sintaxe SQLDim vstDiretorio As String On Error GoTo Erro_Inesperado 'Verifica se o diretório existe If BAS_Diretorio_Existe(Mid(pstDestino, 1, InStrRev(pstDestino, "\"))) Then 'Abre a conexão com o banco If SQL_Abre_Banco_OLEDB(GlbBancoDados, GblSistema, GblConfigPWD, AppListaErros) Then 'Define o acesso a tabela vstSql = "" vstSql = vstSql & "Select " & pstCampo & vbCr vstSql = vstSql & " From " & pstTabela & vbCr 'Se cláusula WHERE preenchida If Trim(pstWhere) <> "" Then vstSql = vstSql & " Where " & pstWhere End If 'Executa o comando SQL Call vrsCons.Open(vstSql, appbanco_oledb, adOpenKeyset, adLockOptimistic) 'Seta o tipo do arquivo vStream.Type = adTypeBinary vStream.Open 'Transforma o registro em arquivo vStream.Write vrsCons.Fields(pstCampo).value 'Se o arquivo já existe If BAS_Arquivo_Existe(pstDestino) Then 'Exclui o contrato caso exista Call Kill(pstDestino) End If 'Salva o arquivo no destino vStream.SaveToFile pstDestino 'Finaliza o stream vStream.Close Set vStream = Nothing 'Finaliza a conexão vrsCons.Close Set vrsCons = Nothing 'Fecha a conexão com o BD appbanco_oledb.Close Else rboHouveErro = True End If Else rboHouveErro = True End If End SubDivirtam-se !!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabens...já tem alguns dias que procuro na net sobre conexão com oracle....gostaria de saber como faço para conectar num servidor remoto na minha redeusuario=videsenha=vide$#@!base=conexserver=192.168.2.8versão oracle=9iex. de sql= "select * dam00"grato

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.