如何相互显示输出?目前一切都在连续
bind pub "-|-" !sql pub:test:sql
proc pub:test:sql{ nick host handle channel arg } {
set name "%test%"
sqlite3 pre test.db
set result [pre eval {SELECT * FROM pre WHERE rlsname LIKE $name}]
if {$result == ""} {
putnow "PRIVMSG $channel :empty"
} else {
putnow "PRIVMSG #test :result $result"
set id [lindex [split $result] 0]
set outname [lindex [split $result] 1]
set time [lindex [split $result] 2]
putnow "PRIVMSG #test :$outname $time"
}
}
目前结果如下所示:
[09.02.20/21:00:43:243] <testbot> result 4 1.test.1 1581256802 160 2.test.2 1581262727
[09.02.20/21:00:43:243] <testbot> output 1.test.1 1581256802
这就是它应该的样子,彼此之间:
[09.02.20/21:00:43:243] <testbot> result 4 1.test.1 1581256802
[09.02.20/21:00:43:243] <testbot> result 160 2.test.2 1581262727
非常感谢您的帮助 问候
如果您希望一次处理一行选定的行,一个选项是对eval
命令使用可选参数来指定变量名称和脚本。在eval
命令的这种形式中,每一行都作为数组分配给变量并执行脚本。在您的情况下:
per eval {select * from PER ...} per_result {
puts "$per_result(somecolumn1) $per_result(somecolumn2)"
}
或类似的东西,其中数组索引是列名。
有关更多详细信息和示例,请参阅评估手册页。