OracleBFile.SetFileName(String, String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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);
}
}
}