2016-11-08 2 views
1

私はバージョン9.1.131.0です。Devart dotConnect Express for Oracleサービス名

サービス名を使用してOracle 12 DBに接続したいとします。 私はlogin、pw、serverを持っていますが、OracleConnectionStringBuilderにサービス名やポートを追加できないようです。

DBにサービス名で接続するにはどうすればよいですか?

私はOracle.ManagedDataAccessで問題を起こさせることができますが、パフォーマンス上の問題から、Devartドライバがうまく動作しているかどうかをテストしたいと考えています。

種類はSID代わりのService Nameを試してみてください

+1

ほとんどの場合、パフォーマンスは変更されません。とにかく、あなたの接続文字列とは何ですか?エラーは何ですか? –

+0

それは{"キーワードはサポートされていません: 'サービス名'。}} 接続文字列は$"ユーザーID = {myCSB.UserId};パスワード= {myCSB.Password};サーバー= {ホスト};サービス名= serviceName};ポート= 1521; – k4yaman

+1

DevArtが 'Server、Service Name、Port'をサポートしているかどうかわかりません。通常、これは 'tnsnames.ora'ファイルのエイリアスによって定義されます。代わりに 'Data Source'を試してみてください。 –

答えて

0

これが私の結論です:

私は以上の10メガバイト私のユーザーは、Oracleクライアントまたはインストールパッケージをインストールしたくないので、OracleのDevartキ繝ァ繝ヨExpressは動作しません。例外から
引用:助けを
"Express Edition doesn't support Direct mode. Do not use Direct parameter of connection string. Refer to dotConnect for Oracle editions matrix."

感謝。

種類について

+0

わからないあなたのパフォーマンスの問題は何ですか?しかし、ダイレクトモードの制限の大きな列挙を確認すると、それらのいくつかが確かにあなたのパフォーマンスを低下させるでしょう。配列バインディングのキャッシングまたはサポートがないステートメントがありません。 –

1

について。私はこの1つを見つけた:Using Direct Mode

SID **システム識別子(グローバルデータベース名)

**サービス名、接続文字列パラメータは、代わりにSIDを使用することができますが、ダイレクトモードであなただけ接続することができます(RACはサポートされていません)。私にとって

これは動作します:

var str = new DbConnectionStringBuilder(false); 
str.Add("Data Source", db); 
str.Add("User ID", user); 
str.Add("Password", pw); 
var con = new Devart.Data.Oracle.OracleConnection(str.ConnectionString); 
con.Open(); 

あなたはまた、例えば、データ・ソースの代わりに、tnsnames.oraファイルからエイリアスを取得するよう、完全な接続文字列を置くことができます

string db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={host})(PORT=1521))(CONNECT_DATA=(SERVICE_NAME={serviceName})))"; 
str.Add("Data Source", db); 
+0

私はこれも見つけましたが、クラスOracleConnectionStringBuilderにはこのメソッドがありません。IDK理由 – k4yaman

+1

汎用クラス[DbConnectionStringBuilder]を使用する(https://msdn.microsoft.com/en-us/library/system.data.common.dbconnectionstringbuilder(v = vs.110).aspx) –

関連する問題