OracleBFile.Read(Byte[], Int32, Int32) 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.
Lit une séquence d'octets à partir du flux OracleBFile actuel et avance la position dans le flux du nombre d'octets lus.
public:
override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read (byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer
Paramètres
- buffer
- Byte[]
Tableau d'octets. Lorsque cette méthode est retournée, la mémoire tampon contient le tableau d’octets spécifié dont les valeurs comprises entre offset
et (offset
+ count
) sont remplacées par les octets lus dans la source en cours.
- offset
- Int32
Dans buffer
, décalage d'octet de base zéro auquel commencer le stockage des données lues dans le flux actuel.
- count
- Int32
Nombre maximal d'octets à lire dans le flux actuel.
Retours
Nombre total d'octets lus dans la mémoire tampon. Il peut être inférieur au nombre d'octets demandé si ce nombre d'octets n'est pas actuellement disponible, ou être égal à zéro si la fin du fichier a été atteinte.
Exceptions
La somme de offset
et count
est supérieure à la longueur de la mémoire tampon.
buffer
est une référence Null (Nothing
en Visual Basic).
offset
ou count
est un nombre négatif.
La connexion à laquelle BFILE
est associé est fermée.
Une erreur d'E/S s'est produite.
Des méthodes ont été appelées après que le flux a été fermé ou supprimé.
Remarques
La Read méthode lit un maximum d’octets count
du flux actuel et les stocke dans à buffer
partir de offset
. La position actuelle dans le flux est avancée par le nombre d’octets lus ; toutefois, si une exception se produit, la position actuelle dans le flux reste inchangée.
Read retourne le nombre d’octets lus. La valeur de retour est égale à zéro uniquement si la position se trouve actuellement à la fin du flux.
Read bloquera jusqu’à ce qu’au moins un octet de données puisse être lu, dans le cas où aucune donnée n’est disponible.
Read retourne 0 uniquement lorsque la fin du fichier a été atteinte.
Read est libre de retourner moins d’octets que demandé même si la fin du flux n’a pas été atteinte.
Toute tentative d’accès à un fermé OracleBFile à l’aide des Read méthodes ou Seek rouvre automatiquement un OracleBFile flux.
L’exemple C# suivant suppose ce schéma dans une table Oracle :
(col1 number, col2 BFILE)
L’exemple illustre l’utilisation des Read méthodes 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);
}
}
}