Ошибка SQLSetConnectAttr драйвера C # ODBC - PullRequest
0 голосов
/ 08 марта 2012

Я пытаюсь подключиться к базе данных Access 2007 (.accdb) с помощью консольного приложения .net. Я устанавливаю системный DSN в ODBC Manager. Вот как я настраиваю соединение:

conn = new OdbcConnection();
conn.ConnectionString = "DSN=HU-FU";
conn.Open();

На моей машине для разработки он работает отлично, но сегодня я попытался установить его на клиентскую машину и получаю следующую ошибку:

ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed

У кого-нибудь есть идея, в чем может быть проблема?


Вот источник трассировки ODBC:

UPSShipmentServ 1454-6f0 ENTER SQLDriverConnectW 
  HDBC                0x00424070
  HWND                0x00000000
  WCHAR *             0x69938B34 [      -3] "******\ 0"
  SWORD                       -3 
  WCHAR *             0x69938B34 
  SWORD                       -3 
  SWORD *             0x00000000
  UWORD                        0 <SQL_DRIVER_NOPROMPT>

UPSShipmentServ 1454-6f0 EXIT  SQLDriverConnectW  with return code -1 (SQL_ERROR)
  HDBC                0x00424070
  HWND                0x00000000
  WCHAR *             0x69938B34 [      -3] "******\ 0"
  SWORD                       -3 
  WCHAR *             0x69938B34 
  SWORD                       -3 
  SWORD *             0x00000000
  UWORD                        0 <SQL_DRIVER_NOPROMPT>

DIAG [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed (0)

UPSShipmentServ - это название моего приложения. Но это, к сожалению, ничего не значит для меня ...


Еще одно дополнение к вопросу. Я проверил версию драйвера доступа (ACEODBC.DLL) на обеих машинах, и моя версия намного новее, чем у клиента. Может ли это быть проблемой? Есть ли способ обновить свой драйвер?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 09 марта 2012

Хорошо, ребята, я должен извиниться за этот вопрос ...

Я знаю, в чем была проблема. Это глупая ошибка. В диспетчере ODBC при настройке DSN я не правильно выбрал файл accdb. Так что моя программа не удалась, потому что для DSN не был выбран файл базы данных.

Так что в следующий раз, если вы увидите эту ошибку, убедитесь, что ваш DSN настроен правильно. В любом случае, спасибо за ответы.

0 голосов
/ 08 марта 2012

зайдите к администратору источника данных odbc на клиентском компьютере, на котором вы его устанавливаете и добавьте источник данных 'HU_FU'

0 голосов
/ 08 марта 2012

Может быть, я выключен, но я обычно обращаюсь к Access bd файлам напрямую (это не обязательно правильно):

    String dbPath = "c:\access.accdb";
    OleDbCommand cmd = new OleDbCommand();
    OleDbConnection mycon = new OleDbConnection();
    mycon.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + dbPath + ";Jet OLEDB:Database Password=thePassword;";
    cmd = mycon.CreateCommand();
    cmd.CommandText = Query;
    mycon.Open();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...