Resultatenverwerking - Procesresultaten

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Het verwerken van resultaten in een ODBC-applicatie houdt in dat eerst de kenmerken van de resultaatset worden bepaald, en vervolgens de data worden opgehaald in programmavariabelen door gebruik te maken van SQLBindCol of SQLGetData.

Om resultaten te verwerken

  1. Haal informatie over de resultaatset op.

  2. Als gebonden kolommen worden gebruikt, roep voor elke kolom waaraan je wilt binden SQLBindCol aan om een programmabuffer aan de kolom te binden.

  3. Voor elke rij in de resultaatset:

    • Roep SQLFetch aan om de volgende rij te krijgen.

    • Als gebonden kolommen worden gebruikt, gebruik dan de gegevens die nu beschikbaar zijn in de gebonden kolombuffers.

    • Als niet-gebonden kolommen worden gebruikt, roep dan SQLGetData één of meerdere keren aan om de gegevens voor niet-gebonden kolommen na de laatst gebonden kolom op te halen. Aanroepen naar SQLGetData moeten in toenemende volgorde van kolomnummer worden uitgevoerd.

    • Roep SQLGetData meerdere keren aan om gegevens uit een tekst- of afbeeldingskolom te halen.

  4. Wanneer SQLFetch het einde van de resultaatset aangeeft door SQL_NO_DATA terug te geven, roep dan SQLMoreResults aan om te bepalen of er een andere resultaatset beschikbaar is.

    • Als het SQL_SUCCESS teruggeeft, is er een andere resultaatset beschikbaar.

    • Als het SQL_NO_DATA terugkeert, zijn er geen extra resultaatsets beschikbaar.

    • Als het SQL_SUCCESS_WITH_INFO of SQL_ERROR teruggeeft, roep dan SQLGetDiagRec aan om te bepalen of de output van een PRINT- of RAISERROR-instructie beschikbaar is.

      Als bound statement-parameters worden gebruikt voor outputparameters of de retourwaarde van een opgeslagen procedure, gebruik dan de data die nu beschikbaar is in de bound parameter buffers. Ook wanneer gebonden parameters worden gebruikt, zal elke aanroep naar SQLExecute of SQLExecDirect de SQL-instructie S times uitvoeren, waarbij S het aantal elementen in de array van gebonden parameters is. Dit betekent dat er S sets resultaten te verwerken zijn, waarbij elke set resultaten alle resultaatsets, outputparameters en retourcodes bevat die gewoonlijk door één uitvoering van de SQL-instructie worden teruggegeven.

    Note

    Wanneer een resultaatset rekenrijen bevat, wordt elke rekenrij beschikbaar gesteld als een aparte resultaatset. Deze berekeningsresultatensets zijn verspreid binnen de normale rijen en splitsen normale rijen op in meerdere resultaatsets.

  5. Optioneel kunt u SQLFreeStmt aanroepen met SQL_UNBIND om eventuele gebonden kolombuffers vrij te geven.

  6. Als er een andere set resultaten beschikbaar is, ga dan naar Stap 1.

Note

Om de verwerking van een resultaatset te annuleren voordat SQLFetch SQL_NO_DATA terugkeert, roep SQLCloseCursor aan.