Ir para conteúdo

POWERED BY:

Arquivado

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

carlocastor

[Resolvido] Conexão ASP/ Oracle Utilizando ADO

Recommended Posts

Pessoal,

 

Estou querendo conectar uma página ASP a um banco de dados oracle não utilizando ODBC.

 

Tentei a string de conexão abaixo:

 

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.cursorlocation=3

DSNTest = "Provider=OraOLEDB.Oracle.1; User ID=judprod; Password=sampaulo; Data Source=DES_DB"

Conn.open DSNtest

 

Quando executo a página ocorre o seguinte erro:

 

ADODB.Connection (0x800A0E7A)

Provedor não encontrado. É possível que ele não esteja instalado corretamente.

 

Alguém já passou por este problema?

Obrigado, Carlo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu costumo usar essa:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=3
DSNTest = "Provider=msdaora; User ID=judprod; Password=sampaulo; Data Source=DES_DB"
Conn.open DSNtest
Quanto ao erro, verifique se no arquivo tnsnames.ora está este data source DES_DB, configurado com o IP e Porta corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, tá configurado corretamente no tnsnames.ora porque eu estou conseguindo conectar via SQL PLUS e TOAD.

 

Eu costumo usar essa:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=3
DSNTest = "Provider=msdaora; User ID=usuario01; Password=senha01; Data Source=DES_DB"
Conn.open DSNtest
Quanto ao erro, verifique se no arquivo tnsnames.ora está este data source DES_DB, configurado com o IP e Porta corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, estou aqui novamente...

 

Funcionou mas não para campos CLOB e BLOB. Ocorreu o seguinte erro.

 

Microsoft OLE DB Provider for Oracle (0x80004005)

Não há suporte para o tipo de dados.

 

Obrigado, Carlo.

 

Que bom!!!

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, a página que você me indicou para verificar este problema utiliza o ODBC para a conexão com o banco, não é verdade? Pois é, ai eu volto ao meu problema inicial. Eu queria acessar o banco oracle sem utilizar o ODBC, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Anderson, eu tentei esta conexão utilizando OLEDB mas ocorreu problemas como descrito acima.

 

Set Conn = Server.CreateObject("ADODB.Connection")

Conn.cursorlocation=3

DSNTest = "Provider=OraOLEDB.Oracle.1; User ID=judprod; Password=sampaulo; Data Source=DES_DB"

Conn.open DSNtest

 

 

 

Você testou usando conexão OLEDB?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você já me sugeriu isto anteriormente mas o provider msdaora não serve para trabalhar com campos do tipo CLOB e BLOB, ocorre o seguinte erro:

 

Microsoft OLE DB Provider for Oracle (0x80004005)

Não há suporte para o tipo de dados.

 

 

Troque o Provider:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.cursorlocation=3
DSNTest = "Provider=msdaora; User ID=judprod; Password=sampaulo; Data Source=DES_DB"
Conn.open DSNtest

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então para trabalhar com campos BLOB e CLOB eu tenho de fazer conexão ao banco oracle utilizando ODBC? É o que o link que você me enviou sugere, não é verdade?

 

 

 

Exato, o link que te enviei é para contornar o problema com campos CLOB e BLOB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, ele faz uso de ODBC, o que pedi pra você fazer é aplicar o que explica no site, porém alterando o método de conexão de ODBC para OLEDB.

Pelo que li, ele altera somente o RecordSet e não a conexão em si.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Set Conn = Server.CreateObject("ADODB.Connection")

DSNTest = "Provider=msdaora; User ID=user01; Password=senha01; Data Source=DB"

Conn.open DSNtest

 

sql = "select conteudo from ARQUIVO_IRPF"

 

set rs = Server.CreateObject("ADODB.recordset")

Set rs = conn.Execute(sql)

 

Erro:

Microsoft OLE DB Provider for Oracle (0x80004005)

Não há suporte para o tipo de dados.

 

Como o campo conteudo da tabela ARQUIVO_IRPF é CLOB então já ocorre o erro na abertura do RecordSet.

 

Microsoft OLE DB Provider for Oracle (0x80004005)

Não há suporte para o tipo de dados.

 

 

No Caso do Link que você me passou, o rapaz utiliza ODBC como no código descrito abaixo:

 

'create objects

Set Conn = Server.CreateObject("ADODB.Connection")

set recordset = server.createobject("ADODB.Recordset")

 

 

'open connection object to database

conn.open "DSN=theDatabase;User ID=userid;password=password"

sql="select CLOBField from CLOBFieldtable"

 

 

'open recordset object

recordset.Open sql, conn

 

Neste caso, o ASP consegue conectar no banco oracle e o recordset retorna valor mas a conexão é feita utilizando ODBC.

 

 

 

Sim, ele faz uso de ODBC, o que pedi pra você fazer é aplicar o que explica no site, porém alterando o método de conexão de ODBC para OLEDB.

Pelo que li, ele altera somente o RecordSet e não a conexão em si.

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.