SqlCeResultSet.ReadAbsolute Método
Mueve el lector a un registro concreto del cursor ResultSet.
Espacio de nombres: System.Data.SqlServerCe
Ensamblado: System.Data.SqlServerCe (en System.Data.SqlServerCe.dll)
Sintaxis
'Declaración
Public Function ReadAbsolute ( _
position As Integer _
) As Boolean
'Uso
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
Parámetros
- position
Tipo: System.Int32
Posición a la que se va a mover el lector.
Valor devuelto
Tipo: System.Boolean
True si la operación se produce correctamente; en caso contrario, false.
Comentarios
El método ReadAbsolute utiliza un parámetro cuyo inicio es 0; al realizar la llamada con ReadAbsolute(0), se devolverá la primera fila del cursor ResultSet.
Este método lee el valor de la fila según la posición de la fila guardada mediante un marcador. For example, suppose you have a table with 10 rows, and you open two ResultSets: rs1 and rs2. Llama a ReadAbsolue(5) en rs1 y cambia el valor de esta fila a -1. La posición de la fila se cambia ahora a la primera posición de la lista de filas y la fila 4 pasa a la quinta posición. Sin embargo, si ahora realiza la llamada con ReadAbsolute(5) para rs2, se devuelve un valor de -1. El cursor ResultSet rs2 mantiene un marcador que señala a la 5ª fila original y continúa leyendo esa fila, a pesar de su cambio de posición.
Si se pasa un entero positivo a esta función, el lector avanza, desde el primer registro, el número de registros especificado. Si se pasa un entero negativo a esta función, el lector retrocede, desde el último registro, el número de registros especificado.
Ejemplos
En el ejemplo siguiente se crea un objeto ResultSet y, a continuación, se llama a varios métodos, incluido 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();
}