none
ODBC RRS feed

  • Pergunta

  • Alô,

    Alguém pode me ajudar ? A conexão ODBC abaixo não funciona em um Webform mas funciona perfeitamente em um Winform:

     

    Public Class Teste_Odbc
        Inherits System.Web.UI.Page

          Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Put user code to initialize the page here
            Dim cnFS As Odbc.OdbcConnection
            Try
                cnFS = New Odbc.OdbcConnection
                cnFS.ConnectionString = "DSN=AMS"
                cnFS.Open()
            Catch ex As Exception
                Stop
            Finally
                cnFS.Close()
            End Try

        End Sub

    End Class

     


    Já tentei diversas mudanças na ConnectionString sem sucesso.
     
    O resultado atual é:

    ?ex
    {System.Data.Odbc.OdbcException}
        [System.Data.Odbc.OdbcException]: {System.Data.Odbc.OdbcException}
        HelpLink: Nothing
        InnerException: Nothing
        Message: "ERROR [HY024] [Microsoft][Driver ODBC para Microsoft Access] '(desconhecido)' não é um caminho válido. Certifique-se de que o nome do caminho esteja escrito corretamente e que você esteja conectado ao servidor no qual o arquivo reside.
    ERROR [IM006] [Microsoft][ODBC Driver Manager] Falha de SQLSetConnectAttr do driver
    ERROR [HY024] [Microsoft][Driver ODBC para Microsoft Access] '(desconhecido)' não é um caminho válido. Certifique-se de que o nome do caminho esteja escrito corretamente e que você esteja conectado ao servidor no qual o arquivo reside."
        Source: ""
        StackTrace: "   at System.Data.Odbc.OdbcConnection.Open()
       at Projetos.Teste_Odbc.Page_Load(Object sender, EventArgs e) in D:\Projetos\Teste_Odbc.aspx.vb:line 29"
        TargetSite: {System.Reflection.RuntimeMethodInfo}


    O mesmíssimo código funciona perfeitamente em um Winform conforme teste abaixo:


    Public Class Form1
        Inherits System.Windows.Forms.Form

         Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim cnFS As Odbc.OdbcConnection
            Try
                cnFS = New Odbc.OdbcConnection
                cnFS.ConnectionString = "DSN=AMS"
                cnFS.Open()
            Catch ex As Exception
                Stop
            Finally
                cnFS.Close()
            End Try
        End Sub
    End Class


    Agradeço qquer ajuda.

    sexta-feira, 23 de junho de 2006 16:26

Todas as Respostas

  • Pelo que vi você está tentando conectar-se a um banco Access através do ODBC.

    Em aplicações Windows Forms, as fronteiras da aplicação é o computador local, porém em aplicações Web, a fronteira é a internet.

    O ideal é você montar a string de conexão na sua aplicação e quando for informar o caminho do banco de dados utilize a função MapPath, que retorna para a aplicação o caminho relativo do arquivo a partir da pasta em que está instalado a aplicação web.

    Este exemplo mostra uma string de conexão de sua aplicação web, acessando o banco de dados dados.mdb na pasta banco, localizada na pasta da aplicação:

    DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\banco\dados.mdb")

    sexta-feira, 23 de junho de 2006 17:09
  • Olá Paulo,

    Veja este link, encontrará diversas string de conexões para varios providers, vale apenas dar um conferida :

    http://www.connectionstrings.com/

  •  Standard security:
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;User Id=admin;Password=;"


  •  Workgroup (system database):
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:System Database=system.mdw;"


  •  With password:
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\somepath\mydb.mdb;Jet OLEDB:Database Password=MyDbPassword;"
  •  

sexta-feira, 23 de junho de 2006 21:36
Moderador
  • Realizei outro teste criando um ODBCDataAdapter object usando a ToolBox do
    Visual Studio 2003. No processo de configuração do DataAdapter criei
    um ODBC Connection object para um determinado banco
    de dados (na verdade é um banco de dados MDBS TITANIUN).

    Clicando com o botão direito no DataAdapter object a opção 'Data Adapter Preview'
    retornou com sucesso os registros da tabela do banco de dados.

    O problema é que na execução da linha: da.fill(ds) dá o erro
    ERROR [IM003] O driver especificado não pôde ser carregado devido ao erro de sistema 126.

    Nesta mesma página ASPX é feita sem problemas a atualização de um banco de dados SQL SERVER.
    O problema ocorre com qualquer tentativa que faço de acesso via ODBC.

    Algum detalhe talvez relacionado com autenticação?

    grato,

    Paulo

     

    segunda-feira, 26 de junho de 2006 18:55