Megosztás:


Kötési paraméterek ODBC

Az SQL-utasítás minden paraméterét hozzá kell társítani az alkalmazás egy változóhoz az utasítás végrehajtása előtt. Amikor az alkalmazás egy változót egy paraméterhez köt, a változót – címet, C adattípust stb. – az illesztőprogramhoz írja le. Azt is leírja magát a paramétert – SQL-adattípust, pontosságot stb. Az illesztőprogram az adott utasításhoz fenntartott struktúrában tárolja ezeket az információkat, és az adatok segítségével lekéri az értéket a változóból az utasítás végrehajtásakor.

A paraméterek bármikor leköthetők vagy visszapattanhatnak az utasítás végrehajtása előtt. Ha egy paraméter egy utasítás végrehajtása után visszapattan, a kötés csak az utasítás ismételt végrehajtásáig érvényes. Ha egy paramétert egy másik változóhoz szeretne kötni, az alkalmazás egyszerűen újraköti a paramétert az új változóval; az előző kötés automatikusan ki lesz adva.

A változók mindaddig kötődnek egy paraméterhez, amíg egy másik változó nem kötődik a paraméterhez, amíg az összes paraméter nem kötetlen lesz az SQLFreeStmt meghívásával a SQL_RESET_PARAMS beállítással, vagy amíg az utasítás ki nem jelenik. Ezért az alkalmazásnak meg kell győződnie arról, hogy a változók csak azután szabadulnak fel, hogy már nincsenek hozzájuk rendelve. További információ: Pufferek kiosztása és felszabadítása.

Mivel a paraméterkötések csak az illesztőprogram által az utasításhoz fenntartott struktúrában tárolt információk, bármilyen sorrendben beállíthatók. Függetlenek a végrehajtott SQL-utasítástól is. Tegyük fel például, hogy egy alkalmazás három paramétert köt össze, majd végrehajtja a következő SQL-utasítást:

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

Ha az alkalmazás azonnal végrehajtja az SQL-utasítást

SELECT * FROM Orders WHERE OrderID = ?, OpenDate = ?, Status = ?  

ugyanazon az utasításkezelőn az INSERT utasítás paraméterkötéseit használja a rendszer, mert ezek az utasításstruktúrában tárolt kötések. A legtöbb esetben ez rossz programozási gyakorlat, ezért el kell kerülni. Ehelyett az alkalmazásnak meg kell hívnia az SQLFreeStmt-et a SQL_RESET_PARAMS lehetőséggel az összes régi paraméter kötésének feloldásához, majd az újak kötéséhez.

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