ヘッダーをスキップ
Oracle® Objects for OLE開発者ガイド
11gリリース2 (11.2) for Microsoft Windows
B58887-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OpenDatabaseメソッド

説明

データベースへのユーザー・セッションを確立します。これは、所定のデータベース名、接続文字列および指定したオプションを使用して、新しいOraDatabaseオブジェクトを作成します。

使用方法

Set oradatabase = orasession.OpenDatabase(database_name,connect_string, options) Set oradatabase = oraserver.OpenDatabase(connect_string, options)

引数

このメソッドの引数は、次のとおりです。

引数 説明
database_name データ・コントロールをデータベースに接続するときに使用するOracleネットワーク指定子。
connect_string Oracleデータベースに接続するときに使用するユーザー名とパスワード。
options データベースのオプション・モードの設定に使用するビット・フラグ文字。options = 0の場合は、デフォルトのモード設定が適用されます。次の表に、それぞれの値を追加することで組み合せることができる、使用可能なモードを示します。

定数

次の表に、オプション・フラグの定数とその値を示します。

定数 説明
ORADB_DEFAULT &H0& Visual Basicモード(デフォルト):

AddNewまたはEditメソッドの使用時に、明示的に設定されていないフィールド(列)の値はNULLに設定されます。NULL値は、データベースの列値のデフォルトを上書きします。Edit("SELECT...FOR UPDATE")の使用時に、行のロック解除を待機します。

SQLの非ブロック機能は、使用できなくなります。

ORADB_ORAMODE &H1& Oracleモード:

AddNewメソッドの使用時に、Oracleデータベースにより、デフォルトのフィールド(列)値が設定されます。挿入または追加操作の後、Oracleのデフォルトの列値はただちにデータベースから再度フェッチされます。

注意: トリガーを使用する場合は、完全なOracleモードを使用してデータを再度フェッチしてください。

ORADB_NOWAIT &H2& ロック非待機モード:

行のロック解除を待機しません。Editメソッドを使用して他のユーザーまたはプロセスがロックしている行を更新すると、ロック非待機モードでは、ただちにエラー・コードが戻されます。

注意: このオプションは、OraDynasetオブジェクトにのみ適用されます。これは、OraSQLStmtオブジェクトまたはExecuteSQLコールには影響しません。行がロックされている場合、これによってエラーが発生するのみです。

ORADB_NO_REFETCH &H4& Oracleモード(再フェッチなし):

Oracleモードと同様に実行されますが、データはローカル・キャッシュに再フェッチされません。これによってパフォーマンスが向上します。

注意: データベースの列のデフォルトのために、データベースのデータとローカル・キャッシュが不一致になるため、行を編集せずに挿入する場合にのみ、再フェッチなしモードを使用してください。このモードで挿入した後に編集しようとすると、「データは変更されています。」(4119)エラーが発生します。

ORADB_NONBLK &H8& 非ブロックモード:

SQL文の実行時は、非ブロック・モードをオンにします。非ブロック・モードは、ExecuteSQLCreateDynasetまたはCreateSQLメソッドを使用して処理するSQL文に影響を与えます。

注意: この機能は使用不可になっています。

ORADB_ENLIST_IN_MTS &H10& MTSモードでのリスト:

OraDatabaseオブジェクトをMicrosoft Transaction Server(MTS)モードでリストするかどうかを判断します。

ORADB_ENLIST_FOR_ CALLLBACK &H20& コールバック・モードでのリスト:

イベント通知をオンにします。フェイルオーバー通知を受信するには、このモードを使用可能にする必要があります。


これらの値は、oraconst.txtファイルにあります。有効なデータベース別名の作成方法については、『Oracle Net Services管理者ガイド』を参照してください。

有効なconnect_string引数の例は次のとおりです。

  • "scott/tiger"

  • "system/manager"

  • "/"

備考

OraConnectionオブジェクトは自動的に作成され、セッションのOraConnectionsコレクション内に表示されます。データベースのオープンは、接続のオープンに影響を与えますが、SQL処理は実行しません。

次の接続エラーが戻される可能性があります。

ORA-28001 "the password has expired"

ChangePasswordメソッドを使用すると、パスワードを変更できます。

この例では、ダイナセットおよび基礎となるすべてのオブジェクトをプログラムで作成する方法を示します。このコードをコピーして、txtEmpNoおよびtxtENameという名前のテキスト・ボックスのあるフォームの定義セクションに貼り付けてください。次に[F5]を押します。

Sub Form_Load ()
 
 'Declare variables
 Dim OraSession As OraSession 
 Dim OraDatabase As OraDatabase 
 Dim OraDynaset As OraDynaset 
 
 'Create the OraSession Object.
 Set OraSession = CreateObject("OracleInProcServer.XOraSession")
 
 'Create the OraDatabase Object by opening a connection to Oracle.
 Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
 
 'Create the OraDynaset Object.
 Set OraDynaset = OraDatabase.CreateDynaset("select empno, ename from emp", 0&)
 
 'Display the first record.
 txtEmpNo = OraDynaset.Fields("empno").value
 txtEName = OraDynaset.Fields("ename").value
 
End Sub