Я добавил еще один ответ, потому что первый ответ действителен, но действителен только в 80% сценариев при использовании старшего драйвера. Я обновил это, включив его в Visual Studio 2013.
Убедитесь, что вы получили последнюю версию InterBase_ADO.NET от embarcadero. Версия, которую я обновил до версии 16.0.4327.44959 Borland.Data.AdoDbxClient.dll. (Щелкните правой кнопкой мыши файл, свойства, детали, чтобы увидеть номер версии). Установка также создает папку версии 64 для 64-разрядной версии, хотя я ее не использовал. Я нацелился на x86 без проблем.
Эта установка ADO.NET не требуется делать на каждой машине - вам просто нужно включить указанные ниже файлы в свой проект и установить Interbase на компьютере, на котором вы работаете. Я только установил драйвер на свой компьютер разработки.
Установка будет извлекать все необходимые файлы, необходимые для установки приложения для подключения к базе данных. Он также создаст readme ADO_NET 2_0 Драйвер для файла инсталляции и использования InterBase XE.htm. ВАЖНОЕ ПРИМЕЧАНИЕ: примеры подключения DB в этом файле справки htm не работают 100% времени. См. Мой пример кода ниже для решения.
Нет связи ODBC необходимо. Список файлов, которые будут включены в .NET проекта и копироваться местные являются:
- Borland.Data.AdoDbxClient.dll
- Borland.Data.DbxCommonDriver.dll
- Borland.Data. DBXInterBaseDriver.dll
- Borland.Delphi.dll
- Borland.VclDbRtl.DLL
- Borland.VclRtl.dll
- dbxadapter.dll (x86 или x64 версии)
- dbxint.dll (x86 или x64 версии)
- gds32.dll (из БД InterBase установки)
- InterBase .msg (из базы данных межбазисной базы данных)
Я нашел две строки соединения, которые сработали. Для подключения используйте одну из двух соединительных линий:
connectionstring1 = "DriverName=Interbase;Database=" + database + ";User_Name=" + userid + ";Password=" + password;
connectionstring1 = connectionstring1 + ";SQLDialect=3;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,";
connectionstring1 = connectionstring1 + "PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;VendorLib=GDS32.DLL";
connectionstring2 = “User_Name="+userid+";Password="+password+";Database="+database+";ServerType=0;Charset=NONE;LibraryName=.\\dbxint.dll;VendorLib=GDS32.DLL;GetDriverFunc=getSQLDriverINTERBASE;SQLDialect=3";
GlobalObjects.dbconn = (TAdoDbxConnection)TAdoDbxInterBaseProviderFactory.Instance.CreateConnection();
GlobalObjects.database = databasepath;
GlobalObjects.dbconn.ConnectionString = connectionstring1; //or connectionstring2
GlobalObjects.dbconn.Open();
Остальное похоже на пример, который я дал ранее.
Как я уже упоминал, это работало на машинах Server 2012 и Windows 8.1 с установленной только Interbase.
Вы можете добавить ODBC-соединение, чтобы использовать это, но это не обязательно и много дополнительных накладных расходов. Дополнительные накладные расходы, потому что тогда вам нужно установить соединение odbc на любом компьютере, на котором вы хотите использовать программу. Все, что вам действительно нужно сделать, это включить DLL-файлы в ваш проект, и он работает. –