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)
Innan en applikation kan köra ett sats måste den allokera ett uttalandehandtag. Detta görs genom att anropa SQLAllocHandle med parametern HandleType inställd på SQL_HANDLE_STMT och InputHandle pekar på ett anslutningshandtag.
Uttalandesattribut är egenskaper hos uttalandehandtaget. Exempel på satsattribut kan inkludera användning av bokmärken och vilken typ av markör som ska användas med satsens resultatuppsättning. Satsattribut sätts med SQLSetStmtAttr, och deras nuvarande inställningar hämtas med hjälp av SQLGetStmtAttr. Det finns inget krav på att en applikation sätter några statementattribut; Alla statement-attribut har standardinställningar, och vissa är drivrutinsspecifika.
Var försiktig när du använder flera ODBC-uttalanden och anslutningsalternativ. Att anropa SQLSetConnectAttr med fOption inställt på SQL_ATTR_LOGIN_TIMEOUT styr tiden en applikation väntar på att ett anslutningsförsök ska timeout:a medan den väntar på att etablera en anslutning (0 anger en oändlig väntan). Sajter med långsamma svarstider kan sätta detta värde högt för att säkerställa att anslutningar hinner slutföras. Intervallet bör dock alltid vara tillräckligt lågt för att användaren ska kunna svara inom rimlig tid om drivrutinen inte kan ansluta an.
Att anropa SQLSetStmtAttr med fOption satt till SQL_ATTR_QUERY_TIMEOUT sätter ett frågetidsintervall för att skydda servern och användaren från långvariga frågor.
Att anropa SQLSetStmtAttr med fOption inställt på SQL_ATTR_MAX_LENGTH begränsar mängden text - och bilddata som en enskild sats kan hämta. Att anropa SQLSetStmtAttr med fOption inställd på SQL_ATTR_MAX_ROWS begränsar också en raduppsättning till de första n raderna om det är allt applikationen kräver. Observera att inställningen SQL_ATTR_MAX_ROWS får drivrutinen att skicka ett SET ROWCOUNT uttalande till servern. Detta påverkar alla Microsoft SQL Server-satser, inklusive triggers och uppdateringar.
Var försiktig när du ställer in dessa alternativ. Det är bäst om alla satshandtag på ett anslutningshandtag har samma inställningar för SQL_ATTR_MAX_LENGTH och SQL_ATTR_MAX_ROWS. Om drivrutinen byter från ett satshandtag till ett annat med olika värden för dessa alternativ, måste drivrutinen generera lämpliga SETSET TEXTSIZE och-satser SETSET ROWCOUNT för att ändra inställningarna. Drivrutinen kan inte lägga dessa satser i samma batch som användarens SQL-sats eftersom användarens SQL-sats kan innehålla en sats som måste vara den första satsen i en batch. Drivrutinen måste skicka och-satserna SETSET ROWCOUNTSETSET TEXTSIZE i en separat batch, som automatiskt genererar en extra rundresa till servern.