Interbase 7.5 и Visual Studio 2010 - PullRequest
       6

Interbase 7.5 и Visual Studio 2010

2 голосов
/ 07 февраля 2011

Последние несколько дней я потратил на поиск решения для разработки приложения ac #, которое подключается к базе данных Interbase 7.5.Я попробовал драйвер db из здесь и предоставленный драйвер ado.net («Драйверы подключения Interbase»).Когда я запускаю «Подключиться к базе данных» в VS2010, нет возможности подключиться к IB.Итак, что мне нужно сделать / установить / настроить, чтобы использовать этот драйвер в VS?

ОС - это WinXP SP3, работающий на виртуальной машине

Ответы [ 3 ]

1 голос
/ 17 января 2014

Если вы установили драйвер 2.0, то в каталоге установки есть файл с именем ADO_NETreadme.htm.В нем подробно описано, как установить и запустить драйвер, включая код для его подключения к объектам .net.Он добавляет, как добавить DLL в проект и другие вопросы настройки.Этот драйвер также предполагает, что interbase установлен на машине, на которой он работает, так как для аутентификации ему понадобится файл admin.ib.Я следовал за документом readme и успешно подключился без использования ODBC.

using Borland.Data;  //IB Database Connectivity

DbConnection dbconn = new TAdoDbxConnection();
string database = DatabasePath.tostring();
dbconn.ConnectionString = "DriverName=Interbase;Database="Datbasepath";RoleName="Password";User_Name="Userid"   + "SQLDialect=3;MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory,Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral,"    + "PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;VendorLib=GDS32.DLL";

try { dbconn.Open(); }
catch (Exception ex)
{ throw (ex); }

DbCommand cmd = dbconn.CreateCommand();
cmd.CommandText = "Select SQL statement..."
DbDataReader myreader = cmd.ExecuteReader();

или вы можете

cmd.CommandText = "Delete or Append...SQL"
cmd.ExecuteNonQuery();

Затем вы можете настроить набор данных и прочитать в него любые данныебазы данных с использованием DbDataReader и стандартного источника привязки.Оттуда это просто стандартное манипулирование данными .Net.

1 голос
/ 07 февраля 2011

Подключение к базе данных (из VS Server Explorer) показывает небольшое диалоговое окно, в котором вы можете выбрать в качестве источника данных, а затем указать в раскрывающемся списке ниже поставщика, которого хотите использовать, если даже после выбора выше вы все еще делаетеЕсли вы не видите разъем Interbase ADO.NET, вы можете выбрать ODBC и использовать источник данных ODBC, предварительно создав его с панели управления.

0 голосов
/ 27 октября 2014

Я добавил еще один ответ, потому что первый ответ действителен, но действителен только в 80% случаев при использовании более старого драйвера.Я обновил это, чтобы включить его для Visual Studio 2013.

Убедитесь, что вы получили последнюю версию InterBase_ADO.NET от embarcadero.Версией, которую я обновил, была версия 16.0.4327.44959 Borland.Data.AdoDbxClient.dll.(Щелкните правой кнопкой мыши файл, свойства, детали, чтобы увидеть номер версии).При установке также создается папка версии x64 для 64-битной версии, хотя я ее не использовал.Я нацелился на x86 без проблем.

Эту установку ADO.NET не нужно выполнять на каждой машине - вам просто нужно включить в проект указанные ниже файлы и установить Interbase на машине, на которой вы работаете.Я установил драйвер только на своем компьютере для разработки.

Программа установки извлечет все необходимые файлы, которые необходимо поместить в приложение для подключения к базе данных.Он также создаст файл readme ADO_NET 2_0 Драйвер для InterBase XE, файл Инструкции по установке и использованию .htm. ВАЖНОЕ ПРИМЕЧАНИЕ : примеры подключения к БД в этом 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установлен.

...