SqlCeResultSet.ReadAbsolute Method
ResultSet 内の特定のレコードにリーダーを移動します。
名前空間: System.Data.SqlServerCe
アセンブリ: System.Data.SqlServerCe (system.data.sqlserverce.dll 内)
構文
'宣言
Public Function ReadAbsolute ( _
position As Integer _
) As Boolean
public bool ReadAbsolute (
int position
)
public:
bool ReadAbsolute (
int position
)
public boolean ReadAbsolute (
int position
)
public function ReadAbsolute (
position : int
) : boolean
パラメータ
- position
リーダーの移動先の位置。
戻り値
正常に操作できた場合は true。それ以外の場合は false。
解説
ReadAbsolute は 0 から始まります。ReadAbsolute(0)
を呼び出すと、ResultSet の最初の行が返されます。
このメソッドでは、ブックマークで保存された行の位置に基づいて、行の値が読み取られます。たとえば、10 行を含むテーブルで、2 つの ResultSet (rs1 と rs2) を開くとします。rs1 に対して ReadAbsolue(5)
を呼び出し、この行の値を -1 に変更します。この行の位置が、行リストの先頭の位置に変更され、4 行目が 5 行目になります。ただし、rs2 に対して ReadAbsolute(5)
を呼び出すと、値 -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();
}
スレッド セーフ
この型の public static (Visual Basic では Shared ) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォーム
開発プラットフォーム
Windows Vista、Windows Mobile 5.0、Windows XP Professional with Service Pack 2 (SP2)、Windows Server 2003、Windows Mobile 2003 for Pocket PC、Windows CE 5.0
バージョン情報
.NET Framework および .NET Compact Framework
3.5 でサポート
.NET Framework
3.0 でサポート
.NET Compact Framework および .Net Framework
2.0 でサポート
参照
リファレンス
SqlCeResultSet Class
SqlCeResultSet Members
System.Data.SqlServerCe Namespace