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
У меня не было проблем с этой настройкой.