Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Important
SQL Server Native Client (SNAC) levereras inte med:
- SQL Server 2022 (16.x) och senare versioner
- SQL Server Management Studio 19 och senare versioner
SQL Server Native Client (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny programutveckling.
Använd någon av följande drivrutiner för nya projekt:
För SQLNCLI som levereras som en komponent i SQL Server-databasmotorn (versioner 2012 till och med 2019), se det här Support Lifecycle-undantag.
Vissa ODBC-funktioner kan fungera antingen synkront eller asynkront. Applikationen kan aktivera asynkrona operationer för antingen ett satshandtag eller ett anslutningshandtag. Om alternativet är inställt på ett anslutningshandtag påverkar det alla satshandtag på anslutningshandtaget. Applikationen använder följande satser för att aktivera eller inaktivera asynkrona operationer:
SQLSetConnectAttr(hdbc, SQL_ATTR_ASYNC_ENABLE,
SQL_ASYNC_ENABLE_ON, SQL_IS_INTEGER);
SQLSetConnectAttr(hdbc, SQL_ATTR_ASYNC_ENABLE,
SQL_ASYNC_ENABLE_OFF, SQL_IS_INTEGER);
SQLSetStmtAttr(hstmt, SQL_ATTR_ASYNC_ENABLE,
SQL_ASYNC_ENABLE_ON, SQL_IS_INTEGER);
SQLSetStmtAttr(hstmt, SQL_ATTR_ASYNC_ENABLE,
SQL_ASYNC_ENABLE_OFF, SQL_IS_INTEGER);
När en applikation anropar en ODBC-funktion i synkront läge återlämnar drivrutinen inte kontrollen till applikationen förrän den får besked om att servern har slutfört kommandot.
När man arbetar asynkront återlämnar drivrutinen omedelbart kontrollen till applikationen, redan innan kommandot skickas till servern. Föraren ställer in returkoden till SQL_STILL_EXECUTING. Applikationen kan sedan utföra annat arbete.
När applikationen testar för att kommandot är slutfört gör den samma funktionsanrop med samma parametrar till drivrutinen. Om drivrutinen ännu inte har fått svar från servern kommer den återigen att återvända SQL_STILL_EXECUTING. Applikationen måste testa kommandot periodiskt tills returkoden är något annat än SQL_STILL_EXECUTING. När applikationen får någon annan returkod, även SQL_ERROR, kan den avgöra att kommandot har slutförts.
Ibland är ett kommando obesvarat under lång tid. Om applikationen behöver avbryta kommandot utan att vänta på svar kan den göra det genom att anropa SQLCancel med samma satshandtag som det utestående kommandot. Detta är enda gången SQLCancel bör användas. Vissa programmerare använder SQLCancel när de har bearbetat en del av en resultatuppsättning och vill avbryta resten av resultatuppsättningen. SQLMoreResults eller SQLCloseCursor bör användas för att avbryta resten av en utestående resultatuppsättning, inte SQLCancel.