Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace sváže parametry voláním SQLBindParameter. SQLBindParameter vytvoří vazbu jednoho parametru najednou. V tomto případě aplikace určuje následující:
Číslo parametru. Parametry se v příkazu SQL číslují v rostoucím pořadí parametrů počínaje číslem 1. I když je legální zadat číslo parametru, které je vyšší než počet parametrů v příkazu SQL, hodnota parametru bude ignorována při spuštění příkazu.
Typ parametru (vstup, vstup/výstup nebo výstup). Kromě parametrů ve volání procedur jsou všechny parametry vstupními parametry. Další informace naleznete v části Parametry procedury dále v této části.
Datový typ v jazyce C, adresa a bajtová délka proměnné vázané na parametr. Ovladač musí být schopen převést data z datového typu C na datový typ SQL nebo se vrátí chyba. Seznam podporovaných převodů naleznete v tématu Převod dat z jazyka C na datové typy SQL v dodatku D: Datové typy.
Datový typ SQL, přesnost a měřítko samotného parametru.
Adresa vyrovnávací paměti délky/indikátoru. Poskytuje délku bajtu binárních nebo znakových dat, určuje, že data mají hodnotu NULL, nebo určuje, že se data budou odesílat pomocí SQLPutData. Další informace naleznete v tématu Použití hodnot délky a ukazatele.
Například následující kód vytvoří vazbu SalesPerson a CustID na parametry pro sloupce SalesPerson a CustID. Vzhledem k tomu, že SalesPerson obsahuje znaková data, která mají proměnnou délku, určuje kód délku bajtu SalesPerson (11) a vytvoří vazbu SalesPersonLenOrInd tak, aby obsahoval délku bajtu dat v SalesPerson. Tyto informace nejsou pro CustID nezbytné, protože obsahují celočíselná data, která mají pevnou délku.
SQLCHAR SalesPerson[11];
SQLINTEGER SalesPersonLenOrInd, CustIDInd;
SQLUINTEGER CustID;
// Bind SalesPerson to the parameter for the SalesPerson column and
// CustID to the parameter for the CustID column.
SQLBindParameter(hstmt1, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 10, 0,
SalesPerson, sizeof(SalesPerson), &SalesPersonLenOrInd);
SQLBindParameter(hstmt1, 2, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 10, 0,
&CustID, 0, &CustIDInd);
// Set values of salesperson and customer ID and length/indicators.
strcpy_s((char*)SalesPerson, _countof(SalesPerson), "Garcia");
SalesPersonLenOrInd = SQL_NTS;
CustID = 1331;
CustIDInd = 0;
// Execute a statement to get data for all orders made to the specified
// customer by the specified salesperson.
SQLExecDirect(hstmt1,"SELECT * FROM Orders WHERE SalesPerson=? AND CustID=?",SQL_NTS);
Při volání SQLBindParameter ovladač ukládá tyto informace do struktury pro příkaz. Při spuštění příkazu použije informace k načtení dat parametrů a jejich odeslání do zdroje dat.
Poznámka:
V rozhraní ODBC 1.0 byly parametry vázané na SQLSetParam. Správce ovladačů mapuje volání mezi SQLSetParam a SQLBindParameter v závislosti na verzích ODBC používaných aplikací a ovladačem.