Поделиться через


OracleBFile.Seek(Int64, SeekOrigin) Метод

Определение

Задает позицию в текущем потоке OracleBFile.

public:
 override long Seek(long offset, System::IO::SeekOrigin origin);
public override long Seek (long offset, System.IO.SeekOrigin origin);
override this.Seek : int64 * System.IO.SeekOrigin -> int64
Public Overrides Function Seek (offset As Long, origin As SeekOrigin) As Long

Параметры

offset
Int64

Смещение в байтах по отношению к источнику. Если значение параметра offset является отрицательным, новая позиция будет предшествовать позиции, заданной параметром origin, при этом расстояние между позициями будет равняться числу байтов, заданному параметром offset. Если значение параметра offset равно нулю, новая позиция будет совпадать с позицией, заданной параметром origin. Если значение параметра offset является положительным, новая позиция будет следовать за позицией, заданной параметром origin, при этом расстояние между позициями будет равняться количеству байтов, которое задано параметром offset.

origin
SeekOrigin

Значение типа System.IO.SeekOrigin, указывающее точку ссылки, которая используется для получения новой позиции.

Возвращаемое значение

Новая позиция в текущем потоке.

Исключения

Выполняет попытку задать для позиции отрицательное значение или значение, превышающее длину потока.

Методы были вызваны после закрытия или удаления потока.

Комментарии

Если offset значение отрицательное, новая позиция должна предшествовать позиции, заданной параметром origin , числом байтов, заданным параметром offset. Если offset значение равно нулю, новая позиция должна быть позицией, заданной параметром origin. Если offset является положительным, новая позиция должна соответствовать позиции, заданной параметром origin , числом байтов, заданным параметром offset.

Поиск в любом расположении, превышающем длину потока, не поддерживается.

Любая попытка доступа к закрытому OracleBFile объекту Read с помощью методов или Seek автоматически открывает OracleBFile поток.

В следующем примере C# предполагается, что эта схема содержится в таблице Oracle:

(col1 number, col2 BFILE)  

В примере показано использование Read методов и Seek для доступа к объекту OracleBFile .

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);  
        }  
    }  
}  

Применяется к