Online Eiffel Documentation |
Documentation Home > Class Libraries > EiffelStore > EiffelStore Content > EiffelStore Interface Layer |
EiffelStudio |
Query variables |
If you have to execute database queries which only differ in the expression values, you can create a template query and then bind variables into this template for each execution.
This mechanism can be applied for requests with a result (DB_SELECTION) or without (DB_CHANGE). Hence both classes inherits from STRING_HDL that actually handle variable binding.
To use variable binding:
Template queries are parsed to replace each variable by its bound value. To create a template query, you have hence to put directly variables where the values would take place.
Variables syntax is simple: the ':' special character followed by the variable name.
selection: DB_SELECTION Bind_var: STRING is "firstname" ... create selection.make selection.set_query ("Select * from CONTACTS where Firstname = ':" + Bind_var + "'")
Note: The code example shows how to bind variables to a DB_SELECTION object but the mechanism is exactly the same for DB_CHANGE objects.
Once you have created your query, you can map variable names to values and execute the query:
selection: DB_SELECTION Bind_var: STRING is "firstname" ... loop io.read_line selection.set_map_name (io.laststring, Bind_var) selection.execute_query ... selection.unset_map_name (Bind_var) end
See Also
Performing a database selection.
Modifying database content.
Copyright 1993-2006 Eiffel Software. All rights reserved. |