Jump to content

VB.NET com conexão ADODB...


marlonwg

Recommended Posts

Fala galera boas estou com um probleminha aqui na minha aplicação..... O problema eo seguinte estou a fazer uma conexao aki no sistema mas no meu pc passa de boa aonde ta o visual studio porque to importando as dlls e tudo mais o codigo e assim...

Imports ADODB     'Microsoft ADO ext 6.0 for DLL and Security DLL 

Imports JRO

Imports system.Oledb

 Dim CONN As ADODB.Connection
            CONN = New ADODB.Connection()
            CONN.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data source=C:\Teste\Banco.accdb; OLE DB Services =-1")
            Try
                repReplica.ActiveConnection = CONN
            Catch ex As Exception
            End Try

Então no meu pc este codigo le de boa so que quando instalo em outro pc o programa quando vai abrir ai  banco de dados aparece este erro..

Descrição do erro: Não é possível converter o objeto COM do tipo 'System.__ComObject' na interface tipo 'ADODB.Connection'. Esta operação falhou porque a chamada de QueryInterface no componente COM para a interface com IID '{00001550-0000-0010-8000-00AA006D2EA4}' falhou devido ao seguinte erro: Não há suporte para esta interface (Exceção de HRESULT: 0x80004002 (E_NOINTERFACE)).
 

Ai tentei importar no outro pc a dll , Tentei instalar o MDAC 2.8 Sp1 que li nuns forums que resolvia... Tentei varios Procedimentos sem sucesso ate agora... Se alguem ja passou por isso e tiver uma soluçao agradeceria se pudesse ajudar 😄

O windows meu e 7 sp1 64bits... E funciona 100% na maquina q ta o Visual studio instalado

A tanbem tentei fazer o seguinte usar um OLEDB mas parece que ele nao e compativel com ActiveConnectionTentei desta Forma e da erro.

   Dim Conexao As OleDb.OleDbConnection
            Conexao = New OleDb.OleDbConnection
            Conexao.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0; C:\Teste\Banco.accdb; OLE DB Services =-1")
            Conexao.Open()

            Try
                repReplica.ActiveConnection = Conexao
            Catch ex As Exception
            End Try

Porque se conseguir neste segundo metodo ai nao precizaria usar o ADODB

Eu mesmo

Link to comment
Share on other sites

Fala galera boas estou com um probleminha aqui na minha aplicação..... 

O problema eo seguinte estou a fazer uma conexao aki no sistema mas no meu pc passa de boa aonde ta o visual studio porque to importando as dlls e tudo mais o codigo e assim...

Imports ADODB     'Microsoft ADO ext 6.0 for DLL and Security DLL 

Imports JRO

Imports system.Oledb

 Dim CONN As ADODB.Connection
            CONN = New ADODB.Connection()
            CONN.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data source=C:\Teste\Banco.accdb; OLE DB Services =-1")
            Try
                repReplica.ActiveConnection = CONN
            Catch ex As Exception
            End Try

Então no meu pc este codigo le de boa so que quando instalo em outro pc o programa quando vai abrir ai  banco de dados aparece este erro..

Descrição do erro: Não é possível converter o objeto COM do tipo 'System.__ComObject' na interface tipo 'ADODB.Connection'. Esta operação falhou porque a chamada de QueryInterface no componente COM para a interface com IID '{00001550-0000-0010-8000-00AA006D2EA4}' falhou devido ao seguinte erro: Não há suporte para esta interface (Exceção de HRESULT: 0x80004002 (E_NOINTERFACE)).
 

Ai tentei importar no outro pc a dll , Tentei instalar o MDAC 2.8 Sp1 que li nuns forums que resolvia... Tentei varios Procedimentos sem sucesso ate agora... Se alguem ja passou por isso e tiver uma soluçao agradeceria se pudesse ajudar 😄

O windows meu e 7 sp1 64bits... E funciona 100% na maquina q ta o Visual studio instalado

A tanbem tentei fazer o seguinte usar um OLEDB mas parece que ele nao e compativel com ActiveConnection

Tentei desta Forma e da erro.

   Dim Conexao As OleDb.OleDbConnection
            Conexao = New OleDb.OleDbConnection
            Conexao.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0; C:\Teste\Banco.accdb; OLE DB Services =-1")
            Conexao.Open()

            Try
                repReplica.ActiveConnection = Conexao
            Catch ex As Exception
            End Try

Porque se conseguir neste segundo metodo ai nao precizaria usar o ADODB

Eu mesmo

Link to comment
Share on other sites

Isso parece-me ser um caso de falta de bibliotecas. Deves ter alguma DLL (ou semelhante) que está em falta.

Tens de ver as dependências do teu projeto e garantir que levas tudo o que necessitas ou, caso não possas levar com a aplicação, instalar o que necessitas no PC de destino.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Então  as DLLS necessárias estou importando na Referencias de DLLS a ADODB, eo JRO que o nome vem interop.ADODB.DLL

Ja tentei varias alternativas tentei registrar no windows,Tentei deixar elas na mesma pasta do Executável, engraçado se instalo o Vb.net no pc dai roda de boas mas se nao tem o vb.net instalado da este erro ai  e não to entendendo porque o teimoso não vai...😕 ??? 

Falaram para usar o Local Copy vi em alguns forums, Mas esta opção no meu não aparece sempre e FALSE , que indica se a referencia sera copiada para o diretório de saída.

....Ate se tivesse uma maneira de usar uma conexão do JRO.ReplicaActiveConnection  para OLEDB do tipo system.data.oledb eu faria mas como viu a conexão la em cima ele não reconhece da um erro tanbem.

Edited by marlonwg

Eu mesmo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.