Metodo SqlCeResultSet.ReadAbsolute
Sposta il lettore su un record specifico nell'oggetto ResultSet.
Spazio dei nomi System.Data.SqlServerCe
Assembly: System.Data.SqlServerCe (in System.Data.SqlServerCe.dll)
Sintassi
'Dichiarazione
Public Function ReadAbsolute ( _
position As Integer _
) As Boolean
'Utilizzo
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
Parametri
- position
Tipo: System.Int32
Posizione in cui spostare il lettore.
Valore restituito
Tipo: System.Boolean
True se l'operazione viene completata; in caso contrario, false.
Osservazioni
Il metodo ReadAbsolute è in base zero e la chiamata a ReadAbsolute(0) restituirà la prima riga dell'oggetto ResultSet.
Questo metodo consente di leggere il valore della riga in base alla sua posizione salvata tramite un segnalibro. Si supponga, ad esempio, di disporre di una tabella con 10 righe e di aprire due oggetti ResultSet, ovvero i set di risultati 1 e 2. Dopo aver chiamato l'oggetto ReadAbsolue(5) sul set di risultati 1, il valore di questa riga viene modificato in -1. La posizione della riga ora è cambiata ed è la prima dell'elenco di righe, mentre la riga 4 è in quinta posizione. Se successivamente si effettua una chiamata a ReadAbsolute(5) sul set di risultati 2, verrà restituito un valore uguale a 1. L'oggetto ResultSet relativo al set di risultati 2 mantiene un segnalibro in corrispondenza della quinta riga, nonostante la modifica della posizione.
Se viene passato un valore integer positivo a questa funzione, il visualizzatore viene spostato in avanti dal primo record per il numero specificato di record. Se viene passato un valore integer negativo a questa funzione, il visualizzatore viene spostato indietro dall'ultimo record per il numero specificato di record.
Esempi
Nell'esempio seguente viene creato un oggetto ResultSet e successivamente vengono chiamati diversi metodi, incluso il metodo 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();
}