OracleBFile Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Az Oracle-adattípus BFILE használatához tervezett felügyelt OracleBFile objektumot jelöli. Ez az osztály nem örökölhető.
public ref class OracleBFile sealed : System::IO::Stream, ICloneable, System::Data::SqlTypes::INullable
public sealed class OracleBFile : System.IO.Stream, ICloneable, System.Data.SqlTypes.INullable
type OracleBFile = class
inherit Stream
interface ICloneable
interface IDisposable
interface INullable
type OracleBFile = class
inherit Stream
interface ICloneable
interface INullable
interface IDisposable
Public NotInheritable Class OracleBFile
Inherits Stream
Implements ICloneable, INullable
- Öröklődés
- Megvalósítás
Megjegyzések
Az Oracle BFILE adattípus egy Oracle-adattípus LOB , amely legfeljebb 4 gigabájt méretű bináris adatokra mutató hivatkozást tartalmaz. Az Oracle BFILE abban különbözik a többi Oracle-adattípustól LOB , hogy az adatok fizikai fájlban vannak tárolva az operációs rendszerben, nem pedig a kiszolgálón. Vegye figyelembe, hogy az BFILE adattípus írásvédett hozzáférést biztosít az adatokhoz. Ezért az Stream osztálytól örökölt írásorientált metódusok nem támogatottak.
Az adattípusok egyéb jellemzői BFILE , amelyek megkülönböztetik az adattípustól LOB , az alábbiak:
Strukturálatlan adatokat tartalmaz.
Támogatja a kiszolgálóoldali adattömb-készítést.
Referencia másolási szemantikát alkalmaz. Ha például másolási műveletet hajt végre egy
BFILEfájlon, a program csak aBFILElokátort (a fájlra mutató hivatkozást) másolja. A fájlban lévő adatok másolása nem történik meg.
Az BFILE adattípust nagy méretű hivatkozási LOBs-ekre kell használni, ezért nem célszerű az adatbázisban tárolni. Az adattípusok adattípushoz viszonyított LOB használatára BFILE ügyfél-, kiszolgáló- és kommunikációs terhelés hárul. Hatékonyabb a hozzáférés BFILE , ha csak kis mennyiségű adatot kell beszereznie. Ha a teljes objektumot le kell szereznie, hatékonyabban érheti el az adatbázis-rezidens LOBs-eket.
Minden nem NULL OracleBFile objektum két olyan entitáshoz van társítva, amelyek meghatározzák a mögöttes fizikai fájl helyét:
Oracle DIRECTORY-objektum, amely a fájlrendszer egy könyvtárának adatbázis-aliasa, és
A mögöttes fizikai fájl fájlneve, amely a CÍMTÁR-objektumhoz társított könyvtárban található.
A BFILE létrehozás után lekérheti annak lokátorát egy OracleBFile objektum formájában a metódusok vagy ExecuteScalar metódusok ExecuteReader használatával.
Objektum beszerzéséhez OracleBFile hívja meg a metódust GetOracleBFile .
Az objektumhoz társított fizikai fájlnak OracleBFile nem kell léteznie, amíg meg nem próbálja elérni. Egy alkalmazás nem létező fájlhoz köthet egy OracleBFile fájlt, létrehozhatja a fizikai fájlt a várt helyen, majd meghívhatja a fájlt Read.
A bezárt OracleBFile adatok elérésére tett kísérletek a Read metódusok használatával Seek automatikusan újra megnyitják a streamet OracleBFile .
Az alábbi C#-példa bemutatja, hogyan hozhat létre egy BFILE Oracle-táblát, majd hogyan kérdezheti le objektum formájában OracleBFile . A példa az objektum és a OracleDataReaderOracleBFileSeekRead metódusok használatát mutatja be.
private void GetOracleBFile(string connectionString)
{
//Create and open the connection.
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
//Create and execute the commands.
OracleCommand command = connection.CreateCommand();
command.CommandText = "CREATE OR REPLACE DIRECTORY TestDir AS 'c:\\bfiles'";
command.ExecuteNonQuery();
command.CommandText = "CREATE TABLE TestTable(col1 number, col2 BFILE)";
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO TestTable VALUES ('2', BFILENAME('TESTDIR', 'File.jpg'))";
command.ExecuteNonQuery();
command.CommandText = "SELECT * FROM TestTable";
//Read the BFile data.
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);
}
}
}
}
return;
}
Az Oracle BFILElétrehozásával és használatával kapcsolatos további információkért tekintse meg az Oracle dokumentációjának megfelelő témakörét.
Note
Az BeginWriteosztálytól System.IO.Stream örökölt , EndWriteés WriteByte metódusok nem támogatottak, mert az BFILE adattípus írásvédett.
Mezők
| Name | Description |
|---|---|
| Null |
Olyan null OracleBFile objektumot jelöl, amely nincs fizikai fájlhoz kötve. |
Tulajdonságok
| Name | Description |
|---|---|
| CanRead |
Beolvas egy értéket, amely jelzi, hogy a |
| CanSeek |
Egy értéket kap, amely jelzi, hogy végrehajthatók-e a továbbítási és a visszakeresési műveletek. |
| CanTimeout |
Olyan értéket kap, amely meghatározza, hogy az aktuális stream időtúllépést okozhat-e. (Öröklődés forrása Stream) |
| CanWrite |
Egy értéket kap, amely jelzi, hogy az objektum támogatja-e az írást. |
| Connection |
Lekéri az OracleConnection adott példány által használt példányt OracleBFile. |
| DirectoryName |
Lekéri annak a CÍMTÁR-objektumnak a nevét, amelyhez egy OracleBFile objektum társítva van. |
| FileExists |
Beolvas egy értéket, amely jelzi, hogy létezik-e adatokat tartalmazó |
| FileName |
Lekéri az elérési út nélküli név nevét |
| IsNull |
Lekéri az értéket, amely jelzi, hogy az OracleBFileNull stream-e. |
| Length |
Olyan értéket kap, amely annak a fizikai fájlnak a hosszát adja vissza bájtban, amelyhez az OracleBFile objektum társítva van. |
| Position |
Lekéri az aktuális olvasási pozíciót a OracleBFile streamben. |
| ReadTimeout |
Ezredmásodpercben lekéri vagy beállítja azt az értéket, amely meghatározza, hogy a stream mennyi ideig kísérel meg olvasni, mielőtt túllépi az időkorlátot. (Öröklődés forrása Stream) |
| Value |
Array Lekéri az adatokat tartalmazó típust ByteOracleBFile. |
| WriteTimeout |
Ezredmásodpercben lekéri vagy beállít egy értéket, amely meghatározza, hogy a stream mennyi ideig kísérel meg írni, mielőtt időtúllépést végezne. (Öröklődés forrása Stream) |
Metódusok
| Name | Description |
|---|---|
| BeginRead(Byte[], Int32, Int32, AsyncCallback, Object) |
Aszinkron olvasási műveletet kezd. (Fontolja meg a használatot ReadAsync(Byte[], Int32, Int32) .) (Öröklődés forrása Stream) |
| BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object) |
Aszinkron írási műveletet kezd. (Fontolja meg a használatot WriteAsync(Byte[], Int32, Int32) .) (Öröklődés forrása Stream) |
| Clone() |
Létrehoz egy másolatot az OracleBFile objektumról, amely ugyanahhoz a fizikai fájlhoz van társítva, mint az eredeti. |
| Close() |
Bezárja az aktuális streamet, és felszabadítja az aktuális adatfolyamhoz társított összes erőforrást (például szoftvercsatornákat és fájlfogópontokat). A metódus meghívása helyett győződjön meg arról, hogy a stream megfelelően van elosztva. (Öröklődés forrása Stream) |
| CopyTo(Int64, OracleLob, Int64, Int64) |
Ebből OracleBFile a célhelyre OracleLob másolhatja a megadott mennyiségű adatot, a forráseltolást és a céleltolást. |
| CopyTo(OracleLob, Int64) |
Másolja a teljes tartalmat OracleBFile egy célhelyre OracleLob a megadott eltolásnál. |
| CopyTo(OracleLob) |
Másolja a teljes tartalmat OracleBFile a célhely OracleLobelejére. |
| CopyTo(Stream, Int32) |
Beolvassa a bájtokat az aktuális streamből, és egy megadott pufferméret használatával egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki. (Öröklődés forrása Stream) |
| CopyTo(Stream) |
Beolvassa a bájtokat az aktuális streamből, és egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki. (Öröklődés forrása Stream) |
| CopyToAsync(Stream, Int32, CancellationToken) |
Aszinkron módon beolvassa a bájtokat az aktuális streamből, és egy megadott pufferméret és lemondási jogkivonat használatával egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki. (Öröklődés forrása Stream) |
| CopyToAsync(Stream, Int32) |
Aszinkron módon beolvassa a bájtokat az aktuális adatfolyamból, és egy megadott puffermérettel egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki. (Öröklődés forrása Stream) |
| CopyToAsync(Stream) |
Aszinkron módon beolvassa a bájtokat az aktuális streamből, és egy másik streambe írja őket. Mindkét streampozíciót a másolt bájtok száma emeli ki. (Öröklődés forrása Stream) |
| CreateObjRef(Type) |
Létrehoz egy objektumot, amely tartalmazza a távoli objektumokkal való kommunikációhoz használt proxy létrehozásához szükséges összes releváns információt. (Öröklődés forrása MarshalByRefObject) |
| CreateWaitHandle() |
Elavult.
Objektum lefoglalása WaitHandle . (Öröklődés forrása Stream) |
| Dispose() |
Felszabadítja az objektum által használt összes erőforrást. |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást Stream. (Öröklődés forrása Stream) |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által Stream használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. (Öröklődés forrása Stream) |
| EndRead(IAsyncResult) |
Megvárja, amíg a függőben lévő aszinkron olvasás befejeződik. (Fontolja meg a használatot ReadAsync(Byte[], Int32, Int32) .) (Öröklődés forrása Stream) |
| EndWrite(IAsyncResult) |
Aszinkron írási művelet befejezése. (Fontolja meg a használatot WriteAsync(Byte[], Int32, Int32) .) (Öröklődés forrása Stream) |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| Flush() |
Jelenleg nem támogatott. |
| FlushAsync() |
Aszinkron módon törli az adatfolyam összes pufferét, és a pufferelt adatokat a mögöttes eszközre írja. (Öröklődés forrása Stream) |
| FlushAsync(CancellationToken) |
Aszinkron módon törli a stream összes pufferét, a pufferelt adatokat az alapul szolgáló eszközre írja, és figyeli a lemondási kérelmeket. (Öröklődés forrása Stream) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetLifetimeService() |
Lekéri a példány élettartamszabályzatát vezérlő aktuális élettartam-szolgáltatásobjektumot. (Öröklődés forrása MarshalByRefObject) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| InitializeLifetimeService() |
Beolvas egy élettartam-szolgáltatásobjektumot a példány élettartam-szabályzatának szabályozásához. (Öröklődés forrása MarshalByRefObject) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| MemberwiseClone(Boolean) |
Az aktuális MarshalByRefObject objektum sekély másolatát hozza létre. (Öröklődés forrása MarshalByRefObject) |
| ObjectInvariant() |
Elavult.
Támogatja a Contract. (Öröklődés forrása Stream) |
| Read(Byte[], Int32, Int32) |
Beolvassa az aktuális OracleBFile streamből származó bájtok sorozatát, és az olvasási bájtok számával előrelépteti a streamen belüli pozíciót. |
| ReadAsync(Byte[], Int32, Int32, CancellationToken) |
Aszinkron módon beolvassa a bájtok sorozatát az aktuális adatfolyamból, az olvasási bájtok számával előrelép a streamben, és figyeli a lemondási kérelmeket. (Öröklődés forrása Stream) |
| ReadAsync(Byte[], Int32, Int32) |
Aszinkron módon beolvassa az aktuális adatfolyamból származó bájtok sorozatát, és az olvasási bájtok számával előrelépteti a streamen belüli pozíciót. (Öröklődés forrása Stream) |
| ReadByte() |
Beolvassa a bájtot a streamből, és egy bájttal előrelép a streamben, vagy -1 ad vissza, ha a stream végén van. (Öröklődés forrása Stream) |
| Seek(Int64, SeekOrigin) |
Beállítja az aktuális OracleBFile stream pozícióját. |
| SetFileName(String, String) |
Az objektumot OracleBFile egy másik fájlhoz köti az operációs rendszerben. |
| SetLength(Int64) |
Jelenleg nem támogatott. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| Write(Byte[], Int32, Int32) |
Jelenleg nem támogatott. |
| WriteAsync(Byte[], Int32, Int32, CancellationToken) |
Aszinkron módon bájtok sorozatát írja az aktuális streambe, az aktuális pozíciót a streamen belül a megírt bájtok számával lépteti előre, és figyeli a lemondási kérelmeket. (Öröklődés forrása Stream) |
| WriteAsync(Byte[], Int32, Int32) |
Aszinkron módon bájtok sorozatát írja az aktuális adatfolyamba, és a megírt bájtok számával előrelépteti a stream aktuális pozícióját. (Öröklődés forrása Stream) |
| WriteByte(Byte) |
Bájtot ír a stream aktuális helyére, és egy bájttal előrelépteti a streamen belüli pozíciót. (Öröklődés forrása Stream) |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Felszabadítja a .-hez használt összes erőforrást Stream. (Öröklődés forrása Stream) |