Seek
Streamをオーバーライドします
このインスタンス・メソッドでは現行のLOBストリームに位置を設定します。
宣言
// C# public override Int64 Seek(Int64 offset, SeekOrigin origin);
パラメータ
- 
                        
offset起点に相対的なバイト・オフセット
 - 
                        
origin新規位置を取得する場合に使用する参照ポイントを示すタイプ
System.IO.SeekOriginの値 
戻り値
位置を示すInt64が戻されます。
                  
例外
ObjectDisposedException - オブジェクトはすでに処理されています。
                  
InvalidOperationException - OracleConnectionがオープンされていないか、またはオブジェクトの存続中にクローズされています。
                  
備考
offsetが負の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より前にあります。 
                  
offsetがゼロの場合は、originで指定した位置が新規位置となります。 
                  
offsetが正の場合は、新規位置がoffsetによって指定されたバイト数だけ、originで指定した位置より後にあります。
                  
SeekOrigin.Beginはストリームの開始を指定します。
                  
SeekOrigin.Currentはストリーム内の現行位置を指定します。
                  
SeekOrigin.Endはストリームの終点を指定します。
                  
例
// Database Setup, if you have not done so yet.
/* Log on as DBA (SYS or SYSTEM) that has CREATE ANY DIRECTORY privilege.
 
CREATE OR REPLACE DIRECTORY MYDIR AS 'C:\TEMP';
 
*/
 
// C#
 
using System;
using System.IO;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
 
class SeekSample
{
  static void Main()
  {
    // Create MYDIR directory object as indicated previously and create a file
    // MyFile.txt with the text ABCDABC under C:\TEMP directory.
    // Note that the byte representation of the ABCDABC is 65666768656667
 
    string constr = "User Id=scott;Password=tiger;Data Source=oracle";
    OracleConnection con = new OracleConnection(constr);
    con.Open();
 
    OracleBFile bFile = new OracleBFile(con, "MYDIR", "MyFile.txt");
 
    // Open the OracleBFile
    bFile.OpenFile();
    
    // Set the Position to 2 with respect to SeekOrigin.Begin
    long newPosition = bFile.Seek(2, SeekOrigin.Begin);
 
    // Prints "newPosition     = 2"
    Console.WriteLine("newPosition     = " + newPosition);    
 
    // Prints "bFile.Position  = 2"
    Console.WriteLine("bFile.Position  = " + bFile.Position);    
 
    // Read 2 bytes into readBuffer, starting at buffer offset 1
    byte[] readBuffer = new byte[4];    
    int bytesRead = bFile.Read(readBuffer, 1, 2);
    
    // Prints "bytesRead       = 2"
    Console.WriteLine("bytesRead       = " + bytesRead);    
 
    // Prints "readBuffer      = 067680"
    Console.Write("readBuffer      = ");
    for(int index = 0; index <  readBuffer.Length; index++)
    {
      Console.Write(readBuffer[index]);
    }
    Console.WriteLine();
    
    // Close the OracleBFile
    bFile.CloseFile();
 
    bFile.Close();
    bFile.Dispose();
 
    con.Close();
    con.Dispose();
  }
}