ODBC распространенная ошибка

У меня самое сложное время подключения к этому распространенному серверу для приложения asp.net, над которым я работаю. Прямо сейчас я могу получить доступ ко всей базе данных и просмотреть ее, используя строку подключения в обозревателе серверов в Visual Studio, однако при ее запуске я получаю сообщение об ошибке. Вот мой код:

    String myConnectionString = 
        "Driver={Pervasive ODBC Client Interface};servername=192.168.1.2;dbq=@Live;";
    OdbcConnection myConnection = new OdbcConnection(myConnectionString);
    OdbcCommand command = new OdbcCommand(myConnectionString, myConnection);

    try
    {
        myConnection.Open();
        OdbcDataReader reader = command.ExecuteReader();


        reader.Close();
        command.Dispose();
        myConnection.Close();
    }
    catch (OdbcException ex)
    {
        System.Diagnostics.Trace.WriteLine(ex.Message);
    }

Вот ошибка, которую я получаю при запуске:

ОШИБКА [42000] [Распространение] [Интерфейс клиента ODBC][LNA][Распространение] [Интерфейс механизма ODBC] Синтаксическая ошибка: Драйвер<>={Распространенный клиентский интерфейс ODBC}

Любая помощь будет принята с благодарностью, даже если это всего лишь дикое предположение, поскольку я сейчас немного отчаялся.

Спасибо

2 ответа

Решение

Линия:

OdbcCommand command = new OdbcCommand(myConnectionString, myConnection);

в нем должен быть ваш оператор SQL:

OdbcCommand command = new OdbcCommand("select * from table", myConnection);

а не строка подключения. Когда вы вызываете строку ExecuteReader, механизм SQL пытается выполнить строку подключения, которая не является допустимым оператором SQL.

Я бы всегда использовал Pervasive ADO.NET Data Provider. Он должен быть установлен с ядром базы данных, но если это не так, вы можете скачать его здесь: http://www.pervasivedb.com/psqlv11/pages/default.aspx

Много примеров также доступно на их веб-сайте.

Также попробуйте изменить строку подключения на базовую форму и использовать DSN:

ServerDSN=DSNData;UID=username;PWD=password;Server=SERVERNAME

У меня не было проблем с этой настройкой.

Другие вопросы по тегам