Метод SqlCeResultSet.ReadAbsolute

Перемещает модуль чтения на определенную запись в ResultSet.

Пространство имен:  System.Data.SqlServerCe
Сборка:  System.Data.SqlServerCe (в System.Data.SqlServerCe.dll)

Синтаксис

'Декларация
Public Function ReadAbsolute ( _
    position As Integer _
) As Boolean
'Применение
Dim instance As SqlCeResultSet
Dim position As Integer
Dim returnValue As Boolean

returnValue = instance.ReadAbsolute(position)
public bool ReadAbsolute(
    int position
)
public:
bool ReadAbsolute(
    int position
)
member ReadAbsolute : 
        position:int -> bool 
public function ReadAbsolute(
    position : int
) : boolean

Параметры

  • position
    Тип: System.Int32
    Позиция, в которую должен быть перемещен модуль чтения.

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

Тип: System.Boolean
True при успешном завершении операции или false в противном случае.

Замечания

Значение метода ReadAbsolute отсчитывается от нуля. Вызов ReadAbsolute(0) возвращает первую строку ResultSet.

В этом методе осуществляется считывание значения строки из строки, позиция которой сохранена в закладке. Предположим, имеется таблица с 10 строками и открыты два набора строк ResultSets: rs1 и rs2. Вызовите метод ReadAbsolue(5) для rs1 и измените значение строки на -1. Теперь позиция строки переместилась на первую позицию в списке строк, а строка 4 находится в 5-й позиции. Если теперь будет вызвать метод ReadAbsolute(5) для объекта rs2, то будет возвращено значение -1. ResultSet объекта rs2 сохранится закладка на первоначальную 5-ю строку и будет продолжено чтение этой строки, несмотря на смену ее позиции.

Если функции передать положительное целое число, то модуль чтения переместится от первой записи вперед на указанное число записей. При передаче отрицательного целого числа модуль чтения переместится назад на указанное число записей от последней.

Примеры

Следующий пример демонстрирует создание объекта ResultSet и вызов нескольких методов, в том числе ReadAbsolute.

Dim conn As SqlCeConnection = Nothing

Try
    File.Delete("Test.sdf")

    Dim engine As New SqlCeEngine("Data Source = Test.sdf")
    engine.CreateDatabase()

    conn = New SqlCeConnection("Data Source = Test.sdf")
    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "CREATE TABLE myTable (col1 INT)"
    cmd.ExecuteNonQuery()

    cmd.CommandText = "SELECT * FROM myTable"

    Dim rs As SqlCeResultSet = cmd.ExecuteResultSet(ResultSetOptions.Updatable Or ResultSetOptions.Scrollable)

    Dim rec As SqlCeUpdatableRecord = rs.CreateRecord()

    ' Insert 10 records
    '
    Dim i As Integer
    For i = 0 To 9
        rec.SetInt32(0, i)
        rs.Insert(rec)
    Next i

    ' Scroll through the results
    '
    If True = rs.ReadFirst() Then
        MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
    End If

    If True = rs.ReadRelative(5) Then
        MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
    End If

    If True = rs.ReadLast() Then
        MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
    End If

    If True = rs.ReadPrevious() Then
        MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
    End If

    If True = rs.ReadAbsolute(5) Then
        MessageBox.Show("col1 = " & rs.GetInt32(0)) 'ordinal
    End If
Catch e As Exception
    MessageBox.Show(e.Message)
Finally
    conn.Close()
End Try
SqlCeConnection conn = null;

try
{
    File.Delete("Test.sdf");

    SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
    engine.CreateDatabase();

    conn = new SqlCeConnection("Data Source = Test.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE myTable (col1 INT)";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "SELECT * FROM myTable";

    SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable | 
        ResultSetOptions.Scrollable);

    SqlCeUpdatableRecord rec = rs.CreateRecord();

    // Insert 10 records
    //
    for (int i = 0; i < 10; i++)
    {
        rec.SetInt32(0, i);
        rs.Insert(rec);
    }

    // Scroll through the results
    //
    if (true == rs.ReadFirst())
    {
        MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
    }

    if (true == rs.ReadRelative(5))
    {
        MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
    }

    if (true == rs.ReadLast())
    {
        MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
    }

    if (true == rs.ReadPrevious())
    {
        MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
    }

    if (true == rs.ReadAbsolute(5))
    {
        MessageBox.Show("col1 = " + rs.GetInt32(0 /*ordinal*/));
    }
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    conn.Close();
}

См. также

Справочник

SqlCeResultSet Класс

Пространство имен System.Data.SqlServerCe