2016-08-20 4 views
0

Я работаю над vb.net и пытаюсь подключиться к базе данных Informix. Как система, так и сервер находятся в 64-битном режиме, а файл DSN - из 64-битных источников данных ODBC. Строка что-то вроде этого: DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=userid;PWD=password;DATABASE=database;HOST=host;SERVER=server;SERVICE=9088;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.819Источник данных Имя не найден?

возвращает эту ошибку:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

Я уже проверил имя водителя, и это правильно, и драйвер установлен правильно, так как я использовал это раньше без проблем. Вот код, который я пытаюсь запустить, это просто подключение к базе данных, которая работала для меня раньше:

Imports System.Data.Odbc 

Public Class Form1 

    Dim x As New OdbcConnection 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim constr As String = "DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=uid;PWD=passwd;DATABASE=database;HOST=host;SERVER=server;SERVICE=9088;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.819" 
     Try 
      x.ConnectionString = constr 
      x.Open() 
      x.Close() 
      Console.WriteLine("Connection Succesful") 
     Catch ex As Exception 
      Console.WriteLine("Connection Unsuccesful: " & ex.Message & Environment.NewLine & "Check input data") 
     End Try 
    End Sub 
End Class 
+1

Я понятия не имею, как работает VB.NET и т. Д., Поэтому, если это звучит как бредящая магия обездоленного диппомана, это не слишком далеко от истины (но я отставал от потребления алкоголя). Похоже, что диспетчер драйверов Microsoft ODBC не знает, где и как работает драйвер ODBC Informix, - как будто такие драйверы должны быть зарегистрированы как-то, и соответствующий шаг не был сделан для драйвера ODBC Informix. Я не знаю, является ли это сбоем в установке или чем-то еще. Я могу указать Windows - L, I, N, U, X, ... что означает, что это «неправильно»? –

ответ

0

Я думаю, что ваше приложение 64 бит, в котором установлен и настроен 32 разрядный драйвер ODBC, или наоборот.

Если у вас установлен драйвер Informix, то в ODBC Driver Manager, конфигурирования источнике данных (конечно, с успешным тестированием соединения) и попытаться использовать DSN с гораздо более простым ConnectionString как:

test_odbc('DSN=ifx_test; Uid=username; Pwd=password;') 

Вы также можете увидеть мои рецепты Python что показать доступные источники ODBC: https://code.activestate.com/recipes/578782-printing-list-of-odbc-data-sources/?in=user-186902

Вы можете запустить его с 32-битным и 64-битным интерпретатором Python (я предпочитаю ActiveState, который поставляется с модулем odbc) и посмотреть, что DSN доступно для каждой среды.

0

Просто решил. Отладчик решил поработать на X86 по какой-то причине

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