ODBC распространенная ошибка - PullRequest
0 голосов
/ 31 мая 2011

Мне сложнее всего подключиться к этому распространенному серверу для приложения 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] Синтаксическая ошибка: Драйвер << ??? >> = {Pervasive ODBC Client Interface}

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 31 мая 2011

Линия:

OdbcCommand command = new OdbcCommand(myConnectionString, myConnection);

должен содержать в себе оператор SQL:

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

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

2 голосов
/ 31 мая 2011

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

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

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

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

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

...