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.
Každý parametr v příkazu SQL musí být přidružený nebo vázaný na proměnnou v aplikaci před spuštěním příkazu. Když aplikace sváže proměnnou s parametrem, popisuje danou proměnnou – adresu, datový typ jazyka C atd. – s ovladačem. Popisuje také samotný parametr – datový typ SQL, přesnost atd. Ovladač ukládá tyto informace do struktury, kterou pro tento příkaz udržuje, a používá informace k načtení hodnoty z proměnné při spuštění příkazu.
Parametry je možné vázat nebo přecházet kdykoli před provedením příkazu. Pokud je parametr po provedení příkazu znovu příchozí, vazba se nepoužije, dokud se příkaz znovu nespustí. Pokud chcete vytvořit vazbu parametru s jinou proměnnou, aplikace jednoduše znovu spojí parametr s novou proměnnou; předchozí vazba se automaticky uvolní.
Proměnná zůstává vázána na parametr, dokud se k parametru neváže jiná proměnná, dokud nebudou všechny parametry nevázané voláním SQLFreeStmt s možností SQL_RESET_PARAMS nebo dokud se příkaz nevyvolá. Z tohoto důvodu musí aplikace mít jistotu, že proměnné nejsou uvolněny, dokud nebudou nevázané. Další informace naleznete v tématu Přidělování a uvolnění vyrovnávacích pamětí.
Vzhledem k tomu, že vazby parametrů jsou pouze informace uložené ve struktuře spravované ovladačem příkazu, lze je nastavit v libovolném pořadí. Jsou také nezávislé na příkazu SQL, který se spouští. Předpokládejme například, že aplikace sváže tři parametry a pak spustí následující příkaz SQL:
INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)
Pokud aplikace okamžitě spustí příkaz SQL.
SELECT * FROM Orders WHERE OrderID = ?, OpenDate = ?, Status = ?
na stejném držáku příkazu se používají vazby parametrů pro příkazu INSERT, protože to jsou vazby uložené ve struktuře příkazu. Ve většině případů se jedná o špatnou programovací praxi a měli byste se jim vyhnout. Místo toho by aplikace měla volat SQLFreeStmt s možností SQL_RESET_PARAMS zrušit vazbu všech starých parametrů a pak svázat nové.
Tato část obsahuje následující témata.