Freigeben über


OracleBFile.SetFileName(String, String) Methode

Definition

Bindet das OracleBFile-Objekt an eine andere Datei im Betriebssystem.

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)

Parameter

directory
String

Der Alias des Verzeichnisobjekts, das eine physikalische Datei enthält.

file
String

Der Name der Datei im Betriebssystem.

Ausnahmen

Die Operation muss Teil einer Transaktion sein.

Hinweise

Der SetFileName Vorgang muss innerhalb einer Transaktion erfolgen, um erfolgreich zu sein. Das Einfache Aufrufen SetFileName eines BFILE ordnet das OracleBFile Objekt einer anderen Datei zu, aktualisiert aber nicht die Oracle-Tabelle. Um die Oracle-Tabelle nach dem Aufruf zu SetFileNameaktualisieren, müssen Sie die Update -Methode von OracleDataAdapter aufrufen und dann die Transaktion committen.

Sobald Sie die DirectoryName - oder FileName -Eigenschaft abgerufen haben, werden sie im OracleBFile -Objekt zwischengespeichert und sind nicht von den Aufrufen geklonter OracleBFile Objekte oder SetFileNamevon Änderungen an in BFILE der Datenbank betroffen. Mit anderen Worten, sie stellen möglicherweise nicht die tatsächlichen Werte des BFILE -Objekts auf dem Server dar.

Darüber hinaus führt das Abrufen von Eigenschaft (DirectoryName oder FileName) dazu, dass beide Eigenschaftswerte vom Server abgerufen und im OracleBFile -Objekt zwischengespeichert werden.

Im folgenden C#-Beispiel wird dieses Schema in einer Oracle-Tabelle vorausgesetzt:

(col1 number, col2 BFILE)  

Das Beispiel veranschaulicht die Verwendung der SetFileNameMethoden und ReadSeek für den Zugriff auf ein OracleBFile Objekt.

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);  
        }  
    }  
}  

Gilt für: