выход sqlite перечислить между собой - PullRequest
0 голосов
/ 09 февраля 2020

как я могу показать вывод друг другу? На данный момент все подряд

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

Большое спасибо за вашу помощь С уважением

1 Ответ

2 голосов
/ 10 февраля 2020

Если вы будете sh обрабатывать выбранные строки по одной строке за раз, одним из вариантов является использование необязательных аргументов команды eval для указания имени переменной и сценария. В этой форме команды eval каждая строка присваивается переменной в виде массива, и сценарий выполняется. В вашем случае:

per eval {select * from PER ...} per_result {
    puts "$per_result(somecolumn1) $per_result(somecolumn2)"
}

или что-то подобное, где индексы массива являются именами столбцов.

См. Страницу справочника eval для получения дополнительной информации и примеров.

...