Share via


Utilizzare cursori (ODBC)

Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di AzureAzure Synapse Analytics AnalyticsPlatform System (PDW)

Per utilizzare i cursori

  1. Chiamare SQLSetStmtAttr per impostare gli attributi del cursore desiderati:

    Impostare gli attributi SQL_ATTR_CURSOR_TYPE e SQL_ATTR_CONCURRENCY (opzione consigliata).

    Oppure

    Impostare gli attributi SQL_CURSOR_SCROLLABLE e SQL_CURSOR_SENSITIVITY.

  2. Chiamare SQLSetStmtAttr per impostare le dimensioni del set di righe usando l'attributo SQL_ATTR_ROW_ARRAY_SIZE.

  3. Facoltativamente, è possibile chiamare SQLSetCursorName per impostare un nome di cursore se gli aggiornamenti posizionati verranno eseguiti usando la clausola WHERE CURRENT OF.

  4. Eseguire l'istruzione SQL.

  5. Facoltativamente, è possibile chiamare SQLGetCursorName per ottenere il nome del cursore se gli aggiornamenti posizionati verranno eseguiti usando la clausola WHERE CURRENT OF e se con SQLSetCursorName non è stato fornito un nome di cursore al passaggio 3.

  6. Chiamare SQLNumResultCols per ottenere il numero di colonne (C) nel set di righe.

    Utilizzare un'associazione per colonna.

    - oppure -

    Utilizzare un'associazione per riga.

  7. Recuperare i set di righe dal cursore nel modo desiderato.

  8. Chiamare SQLMoreResults per determinare se è disponibile un altro set di risultati.

    • Se viene restituito SQL_SUCCESS, è disponibile un altro set di risultati.

    • Se viene restituito SQL_NO_DATA, non è più disponibile alcun set di risultati.

    • Se viene restituito SQL_SUCCESS_WITH_INFO o SQL_ERROR, chiamare SQLGetDiagRec per determinare se è disponibile l'output da un'istruzione PRINT o RAISERROR.

    Se si utilizzano parametri di istruzione associati per i parametri di output o il valore restituito di una stored procedure, utilizzare i dati disponibili nei buffer dei parametri associati.

    Quando si utilizzano parametri associati, ogni chiamata a SQLExecute o SQLExecDirect eseguirà l'istruzione SQL S volte, in cui S è il numero di elementi nella matrice dei parametri associati. Di conseguenza, vi saranno S set di risultati da elaborare, in cui ogni set di risultati comprende tutti i set di risultati, i parametri di output e i codici restituiti utilizzati normalmente da una singola esecuzione dell'istruzione SQL.

    Si noti che quando un set di risultati contiene righe di calcolo, ogni riga di calcolo viene resa disponibile come set di risultati distinto. Tali set di risultati di calcolo vengono intercalati all'interno delle normali righe e le suddividono in più set di risultati.

  9. Facoltativamente, è possibile chiamare SQLFreeStmt con SQL_UNBIND per rilasciare qualsiasi buffer delle colonne associate.

  10. Se è disponibile un altro set di risultati, andare al passaggio 6.

    Nel passaggio 9 la chiamata a SQLMoreResults in un set di risultati parzialmente elaborato cancella il resto del set di risultati. Un altro modo per cancellare un set di risultati parzialmente elaborato consiste nel chiamare SQLCloseCursor.

    È possibile controllare il tipo di cursore utilizzato impostando SQL_ATTR_CURSOR_TYPE e SQL_ATTR_CONCURRENCY oppure impostando SQL_ATTR_CURSOR_SENSITIVITY e SQL_ATTR_CURSOR_SCROLLABLE. È consigliabile non combinare i due metodi di definizione del comportamento del cursore.

Vedere anche

Procedure di utilizzo dei cursori (ODBC)