none
Problemas con ODBC Y WebService en Windows Server 2008 64Bit RRS feed

  • Pregunta

  • Buen Día

    Estoy intentando crear un WebService en Visual Studio 2010 con el lenguaje Visual Basic, El WebService debe conectarse unas tablas .DBF de Microsoft Visual FoxPro 9.

    He creado un ODBC con la utilidad Odbcad32 con el nombre "test" y driver "Microsoft Visual FoxPro Driver" y la ruta de mis tablas

    He creado un formulario con un botón donde coloque el siguiente codigo, compile la aplicacion, la ejecuto en mi servidor y funciona perfectamente con el odbc:


    Dim conexion As OdbcConnection = New OdbcConnection("dsn=test;")
    Dim mystring As String = "Select * from tabla_prueba"
    Dim cmd As OdbcCommand = New OdbcCommand(mystring)

    conexion.Open()

    Dim comandoSQL As OdbcCommand = New OdbcCommand(mystring, conexion)
    Dim resultadoSQL As OdbcDataReader = comandoSQL.ExecuteReader()

    Dim table As New DataTable
    Dim ds As New DataSet

    ds.EnforceConstraints = False
    ds.Tables.Add(table)
    table.Load(resultadoSQL)

    MessageBox.Show(table(0)(2))

    conexion.Close()


    El Problema es que al poner el mismo código en mi WebService, el cual se ejecuta en el mismo servidor, me da el siguiente error cuando ejecuto la funcion Busca_ODBC() desde mi aplicación o desde algún navegador:

    "Server was unable to process request. ---> ERROR [IM002] [Microsoft][Administrador de controladores ODBC] No se encuentra el nombre del origen de datos y no se especificó ningún controlador predeterminado"

    Este es el código de la función del WebService

     <WebMethod()>
        Function Busca_ODBC() As String

            Dim conexion As OdbcConnection = New OdbcConnection("dsn=test;")
            Dim mystring As String = "Select * from tabla_prueba"
            Dim cmd As OdbcCommand = New OdbcCommand(mystring)

            conexion.Open()

            Dim comandoSQL As OdbcCommand = New OdbcCommand(mystring, conexion)
            Dim resultadoSQL As OdbcDataReader = comandoSQL.ExecuteReader()

            Dim table As New DataTable
            Dim ds As New DataSet

            ds.EnforceConstraints = False
            ds.Tables.Add(table)
            table.Load(resultadoSQL)

            conexion.Close()


            Return table(0)(2).ToString
        End Function

    jueves, 22 de agosto de 2013 14:21

Todas las respuestas