メモ : この名前空間、クラス、およびメンバは、.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 操作を正常に実行するには、トランザクション内で実行する必要があります。 BFILE で SetFileName を呼び出すだけでも、 OracleBFile オブジェクトは別のファイルに関連付けられますが、Oracle テーブルは更新されません。 SetFileName を呼び出した後に Oracle テーブルを更新するには、 OracleDataAdapter の Update メソッドを呼び出し、続いてトランザクションをコミットする必要があります。
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 名前空間