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는 0부터 시작되므로 ReadAbsolute(0)를 호출하면 ResultSet의 첫째 행이 반환됩니다.

이 메서드는 책갈피로 저장된 행 위치에 기반하여 행의 값을 읽습니다. 예를 들어, 테이블에 10개의 행이 있고 두 개의 ResultSet인 rs1과 rs2를 연다고 할 때 rs1에서 ReadAbsolue(5)를 호출하고 이 행의 값을 -1로 변경하십시오. 그러면 행 위치가 이제 행 목록의 첫 번째 위치로 변경되고 행 4는 다섯 번째 위치에 있게 됩니다. 그러나 이제 rs2에서 ReadAbsolute(5)를 호출하면 -1 값이 반환됩니다. ResultSet rs2는 책갈피를 원래의 다섯 번째 행에 유지하고 위치 변화에도 불구하고 해당 행을 계속 읽습니다.

이 함수에 양의 정수를 전달하면 판독기는 첫 번째 레코드에서 시작하여 지정된 레코드 수만큼 앞으로 이동합니다. 이 함수에 음의 정수를 전달하면 판독기는 마지막 레코드에서 시작하여 지정된 레코드 수만큼 뒤로 이동합니다.

다음 예제에서는 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 네임스페이스