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)
Varje parametermarkör i en SQL-sats måste kopplas eller bindas till en variabel i applikationen innan satsen kan exekveras. Detta görs genom att anropa SQLBindParameter-funktionen . SQLBindParameter beskriver programvariabeln (adress, C-datatyp och så vidare) till drivrutinen. Den identifierar också parametermarkören genom att ange dess ordinala värde och beskriver sedan egenskaperna hos det SQL-objekt den representerar (SQL-datatyp, precision och så vidare).
Parametermarkörer kan bindas eller återbindas när som helst innan ett uttalande exekveras. En parameterbindning kvarstår tills någon av följande inträffar:
Ett anrop till SQLFreeStmt med parametern Option inställd på SQL_RESET_PARAMS frigör alla parametrar som är bundna till satshandtaget.
Ett anrop till SQLBindParameter med ParameterNumber satt till ordinalen av en bunden parametermarkör släpper automatiskt den tidigare bindningen.
En applikation kan också binda parametrar till arrayer av programvariabler för att bearbeta en SQL-sats i batcher. Det finns två typer av arraybindning:
Kolumnvis bindning görs när varje enskild parameter är bunden till sin egen variabelarray.
Kolumnvis bindning specificeras genom att anropa SQLSetStmtAttr med Attribute satt till SQL_ATTR_PARAM_BIND_TYPE och ValuePtr satt till SQL_PARAM_BIND_BY_COLUMN.
Radvis bindning görs när alla parametrar i SQL-satsen är bundna som en enhet till en array av strukturer som innehåller de individuella variablerna för parametrarna.
Radvis-bindning specificeras genom att anropa SQLSetStmtAttr med Attribute satt till SQL_ATTR_PARAM_BIND_TYPE och ValuePtr satt till storleken på strukturen som innehåller programvariablerna.
När SQL Server Native Client ODBC-drivrutinen skickar tecken- eller binära strängparametrar till servern, fyller den ut värdena till den längd som anges i SQLBindParameterColumnSize-parametern. Om en ODBC 2.x-applikation anger 0 för ColumnSize, justerar drivrutinen parametervärdet till datatypens precision. Precisionen är 8000 när den är ansluten till SQL Server-servrar, 255 vid anslutning till tidigare versioner av SQL Server. ColumnSize är i bytes för variantkolumner.
SQL Server stödjer att definiera namn för lagrade procedurparametrar. ODBC 3.5 introducerade också stöd för namngivna parametrar som används vid anrop av SQL Server-lagrade procedurer. Detta stöd kan användas för att:
Anropa en lagrad proprodur och ange värden för en delmängd av parametrarna definierade för den lagrade proceduren.
Ange parametrarna i en annan ordning i applikationen än den ordning som angavs när den lagrade proceduren skapades.
Namngivna parametrar stöds endast när man använder Transact-SQL EXECUT-satsen eller ODBC CALL-escapesekvensen för att köra en lagrad procedur.
Om SQL_DESC_NAME är inställt på en lagrad procedurparameter bör alla lagrade procedurparametrar i frågan också sätta SQL_DESC_NAME. Om literaler används i anrop för lagrade procedurer, där parametrarna har SQL_DESC_NAME satt, bör literalerna använda formatet 'namnvärde=', där namn är namnet på den lagrade procedurparametern (till exempel, @p1). För mer information, se Bindningsparametrar efter namn (namngivna parametrar).