OracleBFile.SetFileName(String, String) Methode

Definitie

Verbindt het OracleBFile object met een ander bestand in het besturingssysteem.

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)

Parameters

directory
String

De alias van het mapobject dat een fysiek bestand bevat.

file
String

De naam van het bestand in het besturingssysteem.

Uitzonderingen

De bewerking moet zich binnen een transactie bevinden.

Opmerkingen

De SetFileName bewerking moet zich binnen een transactie bevinden om te slagen. Als u gewoon een SetFileName aanroep doetBFILE, wordt het OracleBFile object gekoppeld aan een ander bestand, maar wordt de Oracle-tabel niet bijgewerkt. Als u de Oracle-tabel wilt bijwerken na het aanroepen SetFileName, moet u de Update methode van de OracleDataAdapter transactie aanroepen en vervolgens doorvoeren.

Zodra u de DirectoryName of FileName eigenschap hebt opgehaald, worden ze in de cache opgeslagen in het OracleBFile object en worden ze niet beïnvloed door eventuele gekloonde OracleBFile objecten waarnaar wordt aangeroepen SetFileNameof door wijzigingen in de BFILE database. Met andere woorden, ze vertegenwoordigen mogelijk niet de werkelijke waarden van het BFILE object op de server.

Bovendien zorgt het ophalen van een eigenschap (DirectoryName of FileName) ervoor dat beide eigenschapswaarden worden opgehaald van de server en in de cache van het OracleBFile object worden opgeslagen.

In het volgende C#-voorbeeld wordt uitgegaan van dit schema in een Oracle-tabel:

(col1 number, col2 BFILE)

In het voorbeeld ziet u hoe u de SetFileNameen ReadSeek methoden gebruikt om toegang te krijgen tot een OracleBFile object.

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

Van toepassing op