OracleBFile.SetFileName(String, String) Metod

Definition

Binder objektet OracleBFile till en annan fil i operativsystemet.

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)

Parametrar

directory
String

Aliaset för katalogobjektet som innehåller en fysisk fil.

file
String

Namnet på filen i operativsystemet.

Undantag

Åtgärden måste vara inom en transaktion.

Kommentarer

Åtgärden SetFileName måste vara inom en transaktion för att lyckas. Att bara anropa SetFileName på en BFILE associerar OracleBFile objektet med en annan fil, men uppdaterar inte Oracle-tabellen. Om du vill uppdatera Oracle-tabellen efter anropet SetFileNamemåste du anropa Update metoden OracleDataAdapter för och sedan checka in transaktionen.

När du har hämtat DirectoryName egenskapen eller FileName cachelagras de i OracleBFile objektet och påverkas inte av klonade OracleBFile objekts anrop till SetFileNameeller av ändringar BFILE i databasen. Med andra ord kanske de inte representerar de faktiska värdena för BFILE objektet på servern.

Om du hämtar antingen egenskapen (DirectoryName eller FileName) hämtas dessutom båda egenskapsvärdena från servern och cachelagras i OracleBFile objektet.

Följande C#-exempel förutsätter att det här schemat finns i en Oracle-tabell:

(col1 number, col2 BFILE)

Exemplet visar hur du använder SetFileNamemetoderna , Read och Seek för att komma åt ett 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);
        }
    }
}

Gäller för