Partilhar via


OracleBFile.SetFileName(String, String) Método

Definição

Associa o objeto OracleBFile a um arquivo diferente no sistema operacional.

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

O alias do objeto de diretório que contém um arquivo físico.

file
String

O nome do arquivo no sistema operacional.

Exceções

A operação deve ser executada dentro de uma transação.

Comentários

A SetFileName operação deve estar dentro de uma transação para ter êxito. Simplesmente chamar SetFileName em um BFILE associa o objeto a OracleBFile um arquivo diferente, mas não atualiza a tabela Oracle. Para atualizar a tabela Oracle depois de chamar SetFileName, você deve chamar o Update método do OracleDataAdapter e confirmar a transação.

Depois de recuperar a DirectoryName propriedade ou FileName , elas são armazenadas em cache no OracleBFile objeto e não são afetadas por chamadas de objetos clonados OracleBFile para SetFileNameou por quaisquer alterações no BFILE no banco de dados. Em outras palavras, eles podem não representar os valores reais do BFILE objeto no servidor.

Além disso, recuperar a propriedade (DirectoryName ou FileName) faz com que ambos os valores de propriedade sejam recuperados do servidor e armazenados em cache no OracleBFile objeto .

O exemplo de C# a seguir pressupõe esse esquema em uma tabela Oracle:

(col1 number, col2 BFILE)  

O exemplo demonstra o uso dos SetFileNamemétodos e ReadSeek para acessar um 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);  
        }  
    }  
}  

Aplica-se a