Megosztás:


Nyilatkozatparaméterek

A paraméter egy SQL-utasítás változója. Tegyük fel például, hogy egy Alkatrész tábla partID, Description és Price nevű oszlopokat tartalmaz. Ha paraméterek nélküli részt szeretne hozzáadni, egy SQL-utasítást kell létrehoznia, például:

INSERT INTO Parts (PartID, Description, Price) VALUES (2100, 'Drive shaft', 50.00)  

Bár ez az utasítás új megrendelést szúr be, ez nem jó megoldás egy rendelésbejegyzési alkalmazás számára, mert a beszúrni kívánt értékek nem kódoltak az alkalmazásban. Egy másik lehetőség az SQL-utasítás futásidőben történő létrehozása a beszúrni kívánt értékek használatával. Ez szintén nem jó megoldás, mert a parancsok futásidőben történő összeállítása összetett. A legjobb megoldás, ha a VALUES záradék elemeit kérdőjelekre (?) vagy paraméterjelölőkre cseréli:

INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)  

A paraméterjelölők ezután alkalmazásváltozókhoz vannak kötve. Új sor hozzáadásához az alkalmazásnak csak a változók értékeit kell beállítania, és végre kell hajtania az utasítást. Az illesztőprogram ezután lekéri a változók aktuális értékeit, és elküldi őket az adatforrásnak. Ha az utasítás többször lesz végrehajtva, az alkalmazás az utasítás előkészítésével még hatékonyabbá teheti a folyamatot.

Az imént bemutatott utasítást egy rendelésfelvételi alkalmazásban hardkódolták egy új sor beszúrásához. A paraméterjelölők azonban nem korlátozódnak a függőleges alkalmazásokra. Bármely alkalmazás esetében megkönnyítik az SQL-utasítások futásidőben történő létrehozásának nehézségét azáltal, hogy elkerülik a szöveggé és a szövegből való konvertálást. Az imént megjelenített részazonosító például valószínűleg egész számként van tárolva az alkalmazásban. Ha az SQL-utasítás paraméterjelölők nélkül van létrehozva, az alkalmazásnak szöveggé kell alakítania a részazonosítót, és az adatforrásnak vissza kell alakítania egész számmá. Paraméterjelölő használatával az alkalmazás egész számként elküldheti a részazonosítót az illesztőprogramnak, amely általában egész számként küldi el az adatforrásnak. Ez két konverziót takarít meg. A hosszú adatértékek esetében ez nagyon fontos, mivel az ilyen értékek szöveges formái gyakran meghaladják az SQL-utasítás megengedett hosszát.

A paraméterek csak bizonyos helyeken érvényesek az SQL-utasításokban. Például nem engedélyezettek a kiválasztási listában (a SELECT utasítás által visszaadandó oszlopok listájában), és nem engedélyezettek bináris operátor mindkét operandusaként, például az egyenlőségjelként (=), mert lehetetlen meghatározni a paraméter típusát. A paraméterek általában csak az Adatmanipulációs nyelv (DML) utasításokban érvényesek, az Adatdefiníciós nyelv (DDL) utasításokban nem. További információ: Paraméterjelölők a C függelékben: SQL Grammar.

Amikor az SQL-utasítás meghív egy eljárást, elnevezett paraméterek használhatók. Az elnevezett paramétereket a nevük azonosítja, nem az SQL-utasításban elfoglalt helyük alapján. Az SQLBindParameter hívása kötheti őket, de a paramétert az IPD (implementálási paraméterleíró) SQL_DESC_NAME mezője azonosítja, nem pedig az SQLBindParameterParameterNumber argumentuma. Az SQLSetDescField vagy az SQLSetDescRec meghívásával is köthetők. Az elnevezett paraméterekkel kapcsolatos további információkért lásd a kötési paraméterek név szerint (Névvel ellátott paraméterek) című szakasz későbbi szakaszát. További információ a leírókról: Leírók.

Ez a szakasz a következő témaköröket tartalmazza.