次の方法で共有


OracleBFile.SetFileName(String, String) メソッド

定義

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

public:
 void SetFileName(System::String ^ directory, System::String ^ file);
public void SetFileName (string directory, string file);
member this.SetFileName : string * string -> unit
Public Sub SetFileName (directory As String, file As String)

パラメーター

directory
String

物理ファイルを格納しているディレクトリ オブジェクトの別名。

file
String

オペレーティング システムでのファイル名。

例外

操作はトランザクション内で行う必要があります。

注釈

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

または プロパティをDirectoryName取得すると、オブジェクトにOracleBFileキャッシュされ、 への複製されたOracleBFileオブジェクトの呼び出しSetFileNameや、データベース内の へのBFILE変更の影響を受FileNameけません。 つまり、サーバー内のオブジェクトの実際の値を BFILE 表していない可能性があります。

さらに、プロパティ (DirectoryName または FileName) を取得すると、両方のプロパティ値がサーバーから取得され、 オブジェクトに OracleBFile キャッシュされます。

次の C# の例では、Oracle テーブルでこのスキーマを想定しています。

(col1 number, col2 BFILE)  

この例では、 メソッド、および Seek メソッドをSetFileNameRead使用してオブジェクトにアクセスする方法をOracleBFile示します。

byte[] buffer = new byte[100];  
OracleDataReader dataReader = command.ExecuteReader();  
using (dataReader) {  
    if (dataReader.Read()) {  
        OracleBFile BFile = dataReader.GetOracleBFile(1);  
        using (BFile) {  
            BFile.Seek(0, SeekOrigin.Begin);  
            BFile.Read(buffer, 0, 100);  
            command.Transaction = connection.BeginTransaction();  
            BFile.SetFileName("TESTDIR", "File1.jpg");  
            BFile.Read(buffer, 0, 100);  
        }  
    }  
}  

適用対象