OracleBFile.SetFileName(String, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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);
}
}
}