2011-02-07 15 views
2

私はここ数日、Interbase 7.5データベースに接続するc#アプリケーションを開発するソリューションを探しました。私は、hereと提供されたado.netドライバ( "Interbase Connectivity Drivers")からdbドライバを試しました。 VS2010で「データベースに接続」を実行すると、IBに接続するオプションがありません。では、VSでこのドライバを使用するには、/ install/configureを実行する必要がありますか?interbase 7.5とvisual studio 2010

OSは、あなたがダウンして、プロバイダの下にドロップで指定することができますそこにあなたがデータソースとして選択することができ、(VSサーバーエクスプローラから)データベースにVM

答えて

1

接続で実行してWinXPのSP3はあなたに小さなダイアログを示していますInterbase ADO.NETコネクタが表示されない場合でも、コントロールパネルから作成したODBCを選択してODBCデータソースを使用することができます。

+0

これを使用するためにODBC接続を追加することはできますが、それは必要ではなく、多くのオーバーヘッドが追加されます。余分なオーバーヘッドは、プログラムを使用するすべてのマシンにODBC接続をインストールする必要があるためです。あなたが本当にしなければならないのは、あなたのプロジェクトにdllファイルを含めることだけです。それは動作します。 –

1

2.0ドライバをインストールした場合は、インストールディレクトリにADO_NETreadme.htmというファイルを作成する方法があります。ドライバをインストールして実行する方法を詳しく説明しています。ドライバには、.netオブジェクトに接続するためのコードが含まれています。プロジェクトにdllを追加する方法やその他のセットアップの問題を追加します。このドライバはまた、認証のためにadmin.ibファイルが必要になるため、実行中のマシンにinterbaseがインストールされていることを前提としています。私は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の標準のBindingSourceを使用して、その中にデータベースからデータを読み取ることができます。そこから、単純な標準.Netデータ操作です。

+0

上記の接続文字列は、古いADO 2.0に基づいていました。Codegearドライバは、すべてのケースで動作せず、Windows 2012 Server/8.1マシンで問題が発生します。上記の答えが問題になる場合は、以下の私の追加の答えを見てください。 –

0

最初の回答は有効ですが、古いドライバを使用している場合は80%のシナリオでのみ有効ですので、別の回答を追加しました。私はこれをVisual Studio 2013で動作するように更新しました。

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

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

インストールは、データベースに接続するためにアプリケーションに配置する必要があるすべての必要なファイルを抽出します。また、InterBase XEインストールおよび使用Instructions.htmファイル用のREADME ADO_NET 2_0ドライバも作成します。 重要なお知らせ:このヘルプのhtmファイルのDB接続の例は、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のDBからインストール)
  • のInterBase .msg(ベースデータベースのインストールから)

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

残りは前に示した例と似ています。

私が言及したように、これはInterbaseのみがインストールされたServer 2012およびWindows 8.1マシンで機能しました。