Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Varje parameter i en SQL-instruktion måste vara associerad eller bunden till en variabel i programmet innan -instruktionen körs. När programmet binder en variabel till en parameter beskriver det variabeln – adress, C-datatyp och så vidare – till drivrutinen. Den beskriver också själva parametern – SQL-datatyp, precision och så vidare. Drivrutinen lagrar den här informationen i den struktur som den underhåller för instruktionen och använder informationen för att hämta värdet från variabeln när -instruktionen körs.
Parametrar kan bindas eller återbindas när som helst innan ett uttryck körs. Om en parameter returneras efter att en instruktion har körts gäller inte bindningen förrän -instruktionen körs igen. Om du vill binda en parameter till en annan variabel kopplar ett program helt enkelt om parametern med den nya variabeln. den tidigare bindningen släpps automatiskt.
En variabel förblir bunden till en parameter tills en annan variabel är bunden till parametern, tills alla parametrar är obundna genom att anropa SQLFreeStmt med alternativet SQL_RESET_PARAMS eller tills instruktionen släpps. Därför måste programmet se till att variablerna inte frigörs förrän de är obundna. Mer information finns i Allokera och frigöra buffertar.
Eftersom parameterbindningar bara är information som lagras i den struktur som underhålls av drivrutinen för instruktionen, kan de anges i valfri ordning. De är också oberoende av SQL-instruktionen som körs. Anta till exempel att ett program binder tre parametrar och sedan kör följande SQL-instruktion:
INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)
Om programmet sedan omedelbart kör SQL-instruktionen
SELECT * FROM Orders WHERE OrderID = ?, OpenDate = ?, Status = ?
på samma instruktionsreferens används parameterbindningarna för INSERT-instruktionen eftersom det är bindningarna som lagras i instruktionsstrukturen. I de flesta fall är detta en dålig programmeringspraxis och bör undvikas. I stället bör programmet anropa SQLFreeStmt med alternativet SQL_RESET_PARAMS för att avbinda alla gamla parametrar och sedan binda nya.
Det här avsnittet innehåller följande avsnitt.