Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Program kan binda så många eller så få kolumner i resultatuppsättningen som de vill, inklusive bindning av inga kolumner alls. När en rad med data hämtas returnerar drivrutinen data för de bundna kolumnerna till programmet. Om programmet binder alla kolumner i resultatuppsättningen beror på programmet. Till exempel har program som genererar rapporter vanligtvis ett fast format. sådana program skapar en resultatuppsättning som innehåller alla kolumner som används i rapporten och binder och hämtar sedan data för alla dessa kolumner. Program som visar skärmar fulla av data gör ibland att användaren kan bestämma vilka kolumner som ska visas. sådana program skapar en resultatuppsättning som innehåller alla kolumner som användaren kanske vill ha, men binder och hämtar endast data för de kolumner som användaren har valt.
Data kan hämtas från obundna kolumner genom att anropa SQLGetData. Detta kallas ofta för att hämta långa data, vilket ofta överskrider längden på en enda buffert och måste hämtas i delar.
Kolumner kan när som helst bindas, även efter att rader har hämtats. De nya bindningarna träder dock inte i kraft förrän nästa gång en rad hämtas. de tillämpas inte på data från rader som redan har hämtats.
En variabel förblir bunden till en kolumn tills en annan variabel är bunden till kolumnen, tills kolumnen är obunden genom att anropa SQLBindCol med en nullpekare som variabelns adress, tills alla kolumner är obundna genom att anropa SQLFreeStmt med alternativet SQL_UNBIND eller tills instruktionen släpps. Därför måste programmet se till att alla bundna variabler förblir giltiga så länge de är bundna. Mer information finns i Allokera och frigöra buffertar.
Eftersom kolumnbindningar bara är information som är associerad med instruktionsstrukturen kan de anges i valfri ordning. De är också oberoende av resultatuppsättningen. Anta till exempel att ett program binder kolumnerna i resultatuppsättningen som genereras av följande SQL-instruktion:
SELECT * FROM Orders
Om programmet sedan kör SQL-instruktionen
SELECT * FROM Lines
på samma instruktionsreferens gäller kolumnbindningarna för den första resultatuppsättningen fortfarande eftersom det är bindningarna som lagras i instruktionsstrukturen. I de flesta fall är detta en dålig programmeringspraxis och bör undvikas. I stället bör programmet anropa SQLFreeStmt med alternativet SQL_UNBIND för att avbinda alla gamla kolumner och sedan binda nya.