OracleBFile.SetFileName(String, String) Método

Definición

Enlaza el objeto OracleBFile a otro archivo del 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)

Parámetros

directory
String

Alias del objeto de directorio que contiene un archivo físico.

file
String

Nombre del archivo del sistema operativo.

Excepciones

La operación debe estar dentro de una transacción.

Comentarios

La SetFileName operación debe estar dentro de una transacción para que se realice correctamente. Simplemente llamando a SetFileName en un BFILE asociado el OracleBFile objeto con un archivo diferente, pero no actualiza la tabla de Oracle. Para actualizar la tabla de Oracle después de llamar a SetFileName, debe llamar al Update método de OracleDataAdapter y, a continuación, confirmar la transacción.

Una vez recupera la DirectoryName propiedad o FileName , se almacenan en caché en el OracleBFile objeto y no se ven afectados por las llamadas de los objetos clonados OracleBFile a SetFileName, o por cualquier cambio en la BFILE base de datos . Es decir, es posible que no representen los valores reales del BFILE objeto en el servidor.

Además, la recuperación de la propiedad (DirectoryName o FileName) hace que ambos valores de propiedad se recuperen del servidor y se almacenen en caché en el OracleBFile objeto .

En el ejemplo de C# siguiente se supone que este esquema se encuentra en una tabla de Oracle:

(col1 number, col2 BFILE)  

En el ejemplo se muestra el uso de los SetFileNamemétodos , Read y Seek para tener acceso a un OracleBFile objeto .

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

Se aplica a