Condividi tramite


Recordset: bookmark e absolute position (ODBC)

Aggiornamento: novembre 2007

L'argomento è relativo alle classi ODBC MFC.

Durante lo spostamento all'interno di un recordset, è spesso necessario tornare a un record specifico. Il bookmark e la absolute position di un record forniscono due diversi metodi per l'esecuzione di questa operazione.

In questo argomento vengono fornite informazioni su:

  • Bookmark in ODBC MFC.

  • Absolute position in ODBC MFC.

Bookmark in ODBC MFC

Un bookmark identifica un record in modo univoco. Quando ci si sposta all'interno di un recordset, non è sempre possibile basarsi sulla absolute position di un record, poiché i record possono essere eliminati dal recordset. Per tenere traccia in modo affidabile della posizione di un record, utilizzare un bookmark. La classe CRecordset fornisce le funzioni membro per effettuare le operazioni riportate di seguito.

  • Recupero del bookmark del record corrente per salvarlo in una variabile (GetBookmark).

  • Spostamento rapido su un determinato record, specificando il relativo bookmark salvato in precedenza in una variabile (SetBookmark).

Nell'esempio seguente viene illustrato l'utilizzo delle funzioni membro sopra riportate per contrassegnare e tornare in seguito al record corrente:

// rs is a CRecordset or
// CRecordset-derived object

CDBVariant varRecordToReturnTo;
rs.GetBookmark( varRecordToReturnTo );

// More code in which you
// move to other records

rs.SetBookmark( varRecordToReturnTo );

Non è necessario estrarre il tipo di dati sottostante dall'oggetto CDBVariant Class. Assegnare il valore mediante GetBookmark e tornare al bookmark tramite SetBookmark.

Nota:

Il supporto dei bookmark dipende dal driver ODBC e dal tipo di recordset utilizzati. È possibile determinare facilmente se i segnalibri sono supportati chiamando CRecordset::CanBookmark. Se i segnalibri sono supportati, sarà inoltre necessario scegliere di implementarli in modo esplicito specificando l'opzione CRecordset::useBookmarks nella funzione membro CRecordset::Open. Si consiglia inoltre di controllare la persistenza dei bookmark dopo aver eseguito determinate operazioni sui recordset. Se, ad esempio, si esegue Requery su un recordset, i bookmark potrebbero non essere più validi. Chiamare CDatabase::GetBookmarkPersistence per controllare se è possibile chiamare in modo sicuro SetBookmark.

Absolute position in ODBC MFC

Oltre ai bookmark, la classe CRecordset consente di impostare il record corrente specificando una posizione sequenziale, definita absolute position.

Nota:

La absolute position non è disponibile per i recordset di tipo forward-only. Per ulteriori informazioni sui recordset forward only, vedere Recordset (ODBC).

Per spostare il puntatore del record corrente utilizzando una posizione assoluta, chiamare CRecordset::SetAbsolutePosition. Quando si passa un valore a SetAbsolutePosition, il record corrispondente alla posizione sequenziale diventa il record corrente.

Nota:

La absolute position di un record potrebbe non essere affidabile. Se infatti si eliminano record dal recordset, la posizione di tutti i record successivi a quelli eliminati verrà modificata. Per spostare il record corrente, si consiglia di utilizzare i bookmark. Per ulteriori informazioni, vedere Bookmark in ODBC MFC.

Per ulteriori informazioni sullo spostamento all'interno dei recordset, vedere Recordset: scorrimento (ODBC).

Vedere anche

Concetti

Recordset (ODBC)