Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alkalmazás az SQLBindParameter meghívásával köti össze a paramétereket. Az SQLBindParameter egyszerre egy paramétert köt össze. Ezzel az alkalmazás a következőket adja meg:
A paraméter száma. A paraméterek számozott sorrendben vannak megadva az SQL-utasításban, kezdve az 1-es számmal. Bár az SQL-utasításban szereplő paraméterek számánál magasabb paraméterszám megadása legális, a paraméter értékét a rendszer figyelmen kívül hagyja az utasítás végrehajtásakor.
A paraméter típusa (bemenet, bemenet/kimenet vagy kimenet). Az eljáráshívások paramétereinek kivételével minden paraméter bemeneti paraméter. További információ: Eljárásparaméterek, a szakasz későbbi részében.
A paraméterhez kötött változó C adattípusa, címe és bájthossza. Az illesztőnek képesnek kell lennie a C adattípusból az SQL-adattípusra konvertálni az adatokat, vagy hibát ad vissza. A támogatott konvertálások listáját a D függelék adattípusai c-ről SQL-adattípusokká alakításával kapcsolatos cikkben találja.
A paraméter SQL-adattípusa, pontossága és skálázása.
A hossz-/jelzőpuffer címe. Megadja a bináris vagy karakteres adatok bájthosszát, megadja, hogy az adatok NULL értékűek, vagy azt, hogy az adatok az SQLPutData-tal lesznek elküldve. További információ: Hossz/Mutatóértékek használata.
Az alábbi kód például a SalesPerson és a CustID oszlop paramétereihez köti a SalesPerson és a CustID oszlopot. Mivel a SalesPerson karakteradatokat tartalmaz, amelyek változó hosszúságúak, a kód megadja a SalesPerson (11) bájthosszát, és a SalesPersonLenOrInd függvényt az adatok bájthosszának a SalesPersonban való megadásához köti. Ez az információ nem szükséges a CustID-hez , mert rögzített hosszúságú egész adatokat tartalmaz.
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);
Az SQLBindParameter meghívásakor az illesztőprogram ezeket az információkat az utasítás struktúrájában tárolja. Az utasítás végrehajtásakor az információk alapján lekéri a paraméteradatokat, és elküldi azokat az adatforrásnak.
Megjegyzés:
Az ODBC 1.0-ban a paraméterek az SQLSetParamhoz voltak kötve. Az Illesztőprogram-kezelő leképezi az SQLSetParam és az SQLBindParameter közötti hívásokat az alkalmazás és az illesztőprogram által használt ODBC-verzióktól függően.