OracleBFile.SetFileName(String, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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);
}
}
}