2012-03-08 8 views
0

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

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 это имя моего приложения. Но это, к сожалению, ничего не значит для меня ...


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

Спасибо.

+1

У вас есть DSN на клиентской машине? – AnarchistGeek

+0

Вам нужно знать, сбой атрибута SQLSetConnectAttr. Включите трассировку в администраторе ODBC, затем попробуйте снова подключиться, затем посмотрите в трассировку, чтобы узнать, какой атрибут не может быть установлен. – bohica

+0

DSN установлен на клиентской машине, это не проблема. – bazsano1

ответ

0

Может быть, я прочь, но я обычно отношусь к доступу о.-д. файлов непосредственно (это не обязательно правильный путь):

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(); 
+0

Я могу попробовать это, но я не думаю, что это проблема. – bazsano1

0

в Ваш администратор ODBC источника данных на клиентском компьютере вашей установки на и добавьте DataSource «HU_FU»

2

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

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

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

Смежные вопросы