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 actuel OracleBFile et avance la position dans le flux en fonction 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é avec les valeurs comprises entre offset et (offset + count) remplacées par les octets lus à partir de la source actuelle.
- offset
- Int32
Décalage d’octet de base zéro dans buffer lequel commencer le stockage des données lues à partir du flux actuel.
- count
- Int32
Nombre maximal d’octets à lire à partir du flux actuel.
Retours
Nombre total d’octets lus dans la mémoire tampon. Cela peut être inférieur au nombre d’octets demandé si de nombreux octets ne sont pas actuellement disponibles, ou zéro si la fin du fichier a été atteinte.
Exceptions
La somme et offsetcount est supérieure à la longueur de la mémoire tampon.
buffer est une référence Null (Nothing dans Visual Basic).
offset ou count est négatif.
Connexion avec laquelle un BFILE associé est fermé.
Une erreur d’E/S s’est produite.
Les méthodes ont été appelées après la fermeture ou la suppression du flux.
Remarques
La Read méthode lit un maximum d’octets count à partir du flux actuel et les stocke en buffer commençant à 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 renvoie le nombre d’octets lus. La valeur de retour est égale à zéro uniquement si la position est actuellement à la fin du flux.
Read bloque jusqu’à ce qu’au moins un octet de données puisse être lu, si 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 à une fermeture OracleBFile à l’aide des Read méthodes ou Seek ouvre 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 méthodes et Seek des Read méthodes 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);
}
}
}