Condividi tramite


OracleBFile.SetFileName(String, String) Metodo

Definizione

Associa l'oggetto OracleBFile a un altro file nel sistema operativo.

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)

Parametri

directory
String

Alias dell'oggetto directory contenente un file fisico.

file
String

Nome del file nel sistema operativo.

Eccezioni

L'operazione deve essere all'interno di una transazione.

Commenti

L'operazione SetFileName deve trovarsi all'interno di una transazione per la riuscita. Semplicemente chiamando SetFileName su un BFILE oggetto associa l'oggetto OracleBFile a un file diverso, ma non aggiorna la tabella Oracle. Per aggiornare la tabella Oracle dopo aver chiamato , è necessario chiamare SetFileNameil metodo dell'oggetto OracleDataAdapter e quindi eseguire il Update commit della transazione.

Dopo aver recuperato la DirectoryName proprietà o FileName , vengono memorizzati nella cache nell'oggetto OracleBFile e non sono interessati dalle chiamate di oggetti clonati OracleBFile a SetFileNameo da eventuali modifiche apportate al BFILE database. In altre parole, potrebbero non rappresentare i valori effettivi dell'oggetto BFILE nel server.

Inoltre, il recupero della proprietà (DirectoryName o FileName) causa il recupero di entrambi i valori delle proprietà dal server e memorizzati nella cache nell'oggetto OracleBFile .

Nell'esempio C# seguente si presuppone questo schema in una tabella Oracle:

(col1 number, col2 BFILE)  

L'esempio illustra l'uso di SetFileNameRead metodi e Seek per accedere a un OracleBFile oggetto.

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

Si applica a