Index: openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/Attic/00-database-procs.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl 16 Sep 2001 13:34:15 -0000 1.7
+++ openacs-4/packages/acs-tcl/tcl/00-database-procs.tcl 15 Jan 2002 16:40:14 -0000 1.8
@@ -388,7 +388,12 @@
}
}
-proc_doc db_multirow { var_name statement_name sql args } {
+ad_proc -public db_multirow {
+ -local:boolean
+ var_name
+ statement_name
+ sql
+ args } {
Performs the SQL query $sql, saving results in variables of the form
var_name:1
, var_name:2
, etc,
@@ -401,6 +406,12 @@
# Query Dispatcher (OpenACS - ben)
set full_statement_name [db_qd_get_fullname $statement_name]
+ if { $local_p } {
+ set level_up 1
+ } else {
+ set level_up \#[template::adp_level]
+ }
+
ad_arg_parser { bind args } $args
# Do some syntax checking.
@@ -423,7 +434,7 @@
return -code error "Expected 1 or 3 arguments after switches"
}
- upvar \#[template::adp_level] "$var_name:rowcount" counter
+ upvar $level_up "$var_name:rowcount" counter
db_with_handle db {
set selection [db_exec select $db $full_statement_name $sql]
@@ -432,7 +443,7 @@
while { [db_getrow $db $selection] } {
if { [empty_string_p $code_block] } {
# No code block - pull values directly into the var_name array.
- upvar \#[template::adp_level] \
+ upvar $level_up \
"$var_name:[expr {$counter+1}]" array_val
for { set i 0 } { $i < [ns_set size $selection] } { incr i } {
set array_val([ns_set key $selection $i]) \
@@ -480,7 +491,7 @@
}
# Pull the variables into the array.
- upvar \#[template::adp_level] \
+ upvar $level_up \
"$var_name:[expr {$counter + 1}]" array_val
for { set i 0 } { $i < [ns_set size $selection] } { incr i } {
upvar 1 [ns_set key $selection $i] column_value