Ошибка при использовании ORDER BY с TCL / sqlite3 на сервере - PullRequest
0 голосов
/ 25 июня 2018

На моем виртуальном сервере (Win Server 2012R2) я запускаю несколько программ TCL с базой данных sqlite3.

Все части TCL, sqlite, базы данных (~ 25.000 элементов) и кода находятся в одной общей папке C:\ данные, к которым я также могу получить доступ с моего локального компьютера (Win10) как диск S :.Еще несколько программ работают таким же образом, их запуск запланирован на ночь.

Код, теперь конкурирующий:

console show
set auto_path [file join [file dirname [info script]] "../lib"]
package require sqlite3
set datasource "./compdata.db3"
wm withdraw .
sqlite3 db $datasource

db eval {SELECT * FROM master_data;} {
  puts "$x1, $x2, $x3, $x4" ; update
}
db close
puts stderr ">>>Ok<<<"
exit

отлично работает локально на сервере и запускается с ПК.

Команда запуска на сервере:

call c:\data\tcl858\bin\wish85.exe databasetest.t85

Команда запуска на локальном ПК:

call s:\tcl858\bin\wish85.exe databasetest.t85

Если я добавляю ORDER BY, она запускается только при запуске с ПК.

db eval {SELECT * FROM master_data ORDER BY x1;} {
  puts "$x1, $x2, $x3, $x4" ; update
}

При запуске на сервере появляется сообщение об ошибке:

Невозможно открыть файл базы данных при выполнении «db eval {SELECT * FROM master_data ORDER BY x1;} {put»$ x1, $ x2, $ x3, $ x4 "; update}".

...