Utilize the results of a database query as a template data source.
query name structure sql -db dbhandle
-startrow n
-maxrows n
-bind (set|list)
-eval { code }
Perform a query and store the results in a local variable.
set db [ns_db gethandle]
# this will set a scalar named current_time
template::query current_time onevalue "select sysdate from dual" -db $db
# this will set a single array named user_info with a key for each column
template::query user_info onerow "select * from users
where user_id = 86" -db $db
# this will set an array for each row returned by the query
# the arrays will be named user_info:1, user_info:2, etc.
# the variable user_info:rowcount will be set with the total number of rows.
template::query user_info multirow "select * from users" -db $db
# this will set a list named emails
template::query emails onelist "select email from users" -db $db
# this will set a list of lists named user_info
template::query user_info multilist "select * from users" -db $db
# this will create a nested list of lists in the form
# { California { Berkeley { { Ralph Smith } { Doug Jones } } } \
# Minnestota { Minneapolis { { Ina Jaffe } { Silvia Pojoli } } } }
template::query persons nestedlist "
select state, city, first_name, last_name from users" \
-db $db -groupby { state city }