Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De toepassing geeft de bytelengte van de gegevensbuffer door aan het stuurprogramma in een argument met de naam BufferLength of een vergelijkbare naam. In de volgende aanroep van SQLBindCol geeft de toepassing bijvoorbeeld de lengte van de ValuePtr-buffer (sizeof(ValuePtr)):
SQLCHAR ValuePtr[50];
SQLINTEGER ValueLenOrInd;
SQLBindCol(hstmt, 1, SQL_C_CHAR, ValuePtr, sizeof(ValuePtr), &ValueLenOrInd);
Een stuurprogramma retourneert altijd het aantal bytes, niet het aantal tekens, in het argument bufferlengte van een functie met een uitvoertekenreeksargument.
Lengte van gegevensbuffers is alleen vereist voor uitvoerbuffers; het stuurprogramma gebruikt deze lengten om schrijven buiten de buffer te voorkomen. Het stuurprogramma controleert echter alleen de lengte van de gegevensbuffer wanneer de buffer variabelelengtegegevens bevat, zoals teken- of binaire gegevens. Als de buffer gegevens met een vaste lengte bevat, zoals een geheel getal of datumstructuur, negeert het stuurprogramma de lengte van de gegevensbuffer en gaat ervan uit dat de buffer groot genoeg is om de gegevens op te slaan; Dat wil gezegd, het kapt nooit gegevens met een vaste lengte af. Het is daarom belangrijk dat de toepassing een grote buffer toewijst voor gegevens met een vaste lengte.
Wanneer een afkapping van niet-gegevensuitvoertekenreeksen plaatsvindt (zoals de naam van de cursor die wordt geretourneerd voor SQLGetCursorName), is de geretourneerde lengte in het argument bufferlengte de maximale tekenlengte die mogelijk is.
Gegevensbufferlengten zijn niet vereist voor invoerbuffers omdat het stuurprogramma niet naar deze buffers schrijft.
Deze sectie bevat de volgende onderwerpen.