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 physische Datei enthält.

file
String

Der Name der Datei im Betriebssystem.

Ausnahmen

Der Vorgang muss innerhalb einer Transaktion sein.

Hinweise

Der SetFileName Vorgang muss innerhalb einer Transaktion ausgeführt werden, um erfolgreich zu sein. Durch Aufrufen SetFileName eines Objekts wird BFILE das OracleBFile Objekt einer anderen Datei zugeordnet, die Oracle-Tabelle wird jedoch nicht aktualisiert. Um die Oracle-Tabelle nach dem Aufruf SetFileNamezu aktualisieren, müssen Sie die Update Methode der OracleDataAdapter Transaktion aufrufen und dann einen Commit für die Transaktion ausführen.

Nachdem Sie die DirectoryName Eigenschaft abgerufen FileName haben, werden sie im OracleBFile Objekt zwischengespeichert und sind von den Aufrufen SetFileNamegeklonter OracleBFile Objekte oder von Änderungen an der BFILE Datenbank nicht betroffen. Anders ausgedrückt: Sie stellen möglicherweise nicht die tatsächlichen Werte des BFILE Objekts auf dem Server dar.

Darüber hinaus bewirkt das Abrufen von Eigenschaft (DirectoryName oder FileName) beide Eigenschaftswerte, die 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 Methoden Read für Seek den SetFileNameZugriff 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: