Megosztás:


Kötési paraméterjelölők

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.