次の方法で共有


OracleBFile.SetFileName メソッド

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

OracleBFile オブジェクトをオペレーティング システムの別のファイルにバインドします。

Public Sub SetFileName( _
   ByVal directory As String, _   ByVal file As String _)
[C#]
public void SetFileName(stringdirectory,stringfile);
[C++]
public: void SetFileName(String* directory,String* file);
[JScript]
public function SetFileName(
   directory : String,file : String);

パラメータ

  • directory
    物理ファイルを格納しているディレクトリ オブジェクトの別名。
  • file
    オペレーティング システムでのファイル名。

例外

例外の種類 条件
InvalidOperationException 操作はトランザクション内で行う必要があります。

解説

SetFileName 操作を正常に実行するには、トランザクション内で実行する必要があります。 BFILESetFileName を呼び出すだけでも、 OracleBFile オブジェクトは別のファイルに関連付けられますが、Oracle テーブルは更新されません。 SetFileName を呼び出した後に Oracle テーブルを更新するには、 OracleDataAdapterUpdate メソッドを呼び出し、続いてトランザクションをコミットする必要があります。

OracleBFile オブジェクトには、基になる Oracle の LOB ロケータが存在します。 OracleBFile のクローンを作成した場合、新しい LOB ロケータは作成されませんが、クローン間で元の LOB ロケータへの参照が共有されます。クローンに対して SetFileName を呼び出した場合、ファイル名が変更される LOB ロケータは 1 つだけです。これによって、すべてのクローンに新しいファイル名が反映されます。ただし、 OracleBFile のすべてのクローンは、以前の Position 設定を保持しているため、各クローンは異なる位置から読み取ることができます。 SetFileName 操作がクローンに対して実行された場合は、 SetFileName が呼び出されたクローンの Position だけがゼロにリセットされます。他のクローンは、現在の Position 設定を保持します。

次の C# の例では、Oracle テーブルにおいてこの方法を用いることを想定しています。

(col1 number, col2 BFILE)

SetFileName メソッド、 Read メソッド、および Seek メソッドを使用して OracleBFile オブジェクトにアクセスする例を次に示します。

byte[] buffer = new byte[100];
OracleDataReader myReader = myCommand.ExecuteReader();
using (myReader) {
    if (myReader.Read()) {
        OracleBFile myBFile = myReader.GetOracleBFile(1);
        using (myBFile) {
            myBFile.Seek(0, SeekOrigin.Begin);
            myBFile.Read(buffer, 0, 100);
            myCommand.Transaction = myConnection.BeginTransaction();
            myBFile.SetFileName("MYDIR", "MyFile2.jpg");
            myBFile.Read(buffer, 0, 100);
        }
    }
}

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

OracleBFile クラス | OracleBFile メンバ | System.Data.OracleClient 名前空間