OracleBFile.SetFileName(String, String) Méthode

Définition

Lie l'objet OracleBFile à un fichier différent dans le système d'exploitation.

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)

Paramètres

directory
String

Alias de l'objet directory contenant un fichier physique.

file
String

Nom du fichier dans le système d'exploitation.

Exceptions

L'opération doit être effectuée dans une transaction.

Remarques

L’opération SetFileName doit se trouver dans une transaction pour réussir. Le simple fait d’appeler SetFileName sur un BFILE associe l’objet OracleBFile à un autre fichier, mais ne met pas à jour la table Oracle. Pour mettre à jour la table Oracle après avoir appelé SetFileName, vous devez appeler la Update méthode du OracleDataAdapter , puis valider la transaction.

Une fois que vous avez récupéré la DirectoryName propriété ou FileName , elles sont mises en cache dans l’objet OracleBFile et ne sont pas affectées par les appels d’objets clonés OracleBFile à SetFileName, ou par les modifications apportées au BFILE dans la base de données. En d’autres termes, ils peuvent ne pas représenter les valeurs réelles de l’objet BFILE dans le serveur.

En outre, la récupération de la propriété (DirectoryName ou FileName) entraîne la récupération des deux valeurs de propriété à partir du serveur et la mise en cache dans l’objet OracleBFile .

L’exemple C# suivant suppose ce schéma dans une table Oracle :

(col1 number, col2 BFILE)  

L’exemple illustre l’utilisation des SetFileNameméthodes , Read et Seek pour accéder à un OracleBFile objet .

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

S’applique à