質問

.NET / C#を使用してInterbase 7.1データベースに接続する最良の方法を誰か説明していただけますか?

アプリケーションは多くのエンドユーザーのコンピューターにインストールされるため、「アドオン」が少なくなります。アプリケーションと一緒にパッケージする必要があります。

役に立ちましたか?

解決

CodeGearは、InterBaseの登録ユーザー向けに無料のADO.NET 2.0ドライバーを提供しています。

http://cc.embarcadero.com/item/25497

「InterBaseの登録ユーザー」とは、無料のInterBase 2007 Developers Editionが含まれています。ダウンロードによると、2007年向けですが、InterBase 7で正常に動作し、CodeGearのInterBaseチームは、その目的でそれを使用しているユーザーには問題がないと言っています。

InterBaseとFirebirdのSQL構文は多少異なり、他の機能も異なるため、Firebird用に設計されたドライバーの使用はお勧めしません。特に、InterBaseでfbclient.dllに依存するドライバーを使用することはまったく危険だと思います。

他のヒント

Firebird .netプロバイダーはモノラルのものと同じだと思います。どちらも優れています。

ヘルプファイルのコードは多くの状況で機能しますが、すべてではなく、特にWindows 8.1、Windows Server 2012マシンで機能します。

embarcaderoから最新のInterBase_ADO.NETを入手してください。更新したバージョンは、Borland.Data.AdoDbxClient.dllのバージョン16.0.4327.44959でした。 (ファイル、プロパティ、詳細を右クリックしてバージョン番号を確認します)。インストールでは、64ビット用のx64バージョンフォルダーも使用しませんでしたが作成されます。私は問題なくx86をターゲットにしました。

このADO.NETインストールは、すべてのマシンで行う必要はありません–以下のファイルをプロジェクトに含め、実行中のマシンにInterbaseをインストールするだけです。開発用コンピューターにドライバーをインストールしただけです。

インストールにより、データベースに接続するためにアプリケーションに必要なすべてのファイルが抽出されます。また、InterBase XE Installation and Usage Instructions.htmファイル用のREADME ADO_NET 2_0ドライバーも作成します。 重要な注意:このヘルプhtmファイルのDB接続の例は、常に機能しません。ソリューションについては、以下のコード例を参照してください。

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 DBインストールから)
  • interbase.msg(interbase DBインストールから)

機能する2つの接続文字列が見つかりました。接続するには、次の2つの接続文字列のいずれかを使用します。

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();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top