Есть ли разница между .quit и .exit в sqlite? - PullRequest
1 голос
/ 03 октября 2011

Я пишу vbscript, чтобы исключить запрос sql в оболочке sqlite, и мне было интересно, нужно ли мне использовать .quit или .exit.Когда я настраиваю задачу в планировщике задач для запуска этого vbscript, оболочка sqlite не завершается / не завершается должным образом, из-за чего каждый раз при запуске планировщика задач создается новый экземпляр, что приводит к тому, что запрос sql не выполняется.Когда я дважды щелкаю на VBScript, он работает нормально и sqlite shell существует изящно.

Может кто-нибудь помочь, пожалуйста?

vbscript:

Dim objShell
Dim main_database_file, main_output_file, main_sqlite_file
Dim TAB, LINE

'Set default values here if necessary
main_database_file = "G:\example\data\reporting\lastmonth"
main_sqlite_file = "G:\example\sqlite-shell.exe"
main_output_file="G:\example\scripts\display-time.csv"

Set objShell = createObject("Wscript.Shell")

sql = "select * from project;"

objShell.Run """"& main_sqlite_file &"""" & """"& main_database_file &""""
WScript.Sleep(500)
objShell.Sendkeys(".separator ,{ENTER}")
objShell.Sendkeys(".headers ON{ENTER}")
objShell.Sendkeys(".output '" & main_output_file &"'{ENTER}")
objShell.Sendkeys(sql & "{ENTER}")
WScript.Sleep(500)    
objShell.Sendkeys(".quit{ENTER}")
Set objShell = Nothing

Ответы [ 3 ]

1 голос
/ 03 октября 2011

Ну, согласно документации , описание .quit и .exit - это "Выход из этой программы", поэтому я не верю, нет.

0 голосов
/ 28 ноября 2011

Я бы согласился с Джеком, что в документе нет разницы.Однако, почему бы не направить ваши команды в процессор командной строки?Вы можете создать файл «SQL», содержащий каждый из вышеперечисленных шагов, а затем выполнить однократную команду запуска:

Что-то вроде (не проверено!)

Файл SQL:

.seperator ,
.headers on
etc..

Затем запустите этот файл как:

shell.run "sqlite-clp.exe mydb.db < sqlfile.sql"

Нет необходимости в произвольных тайм-аутах, и вы, вероятно, также можете передавать в параметрах.

PS: Вероятно, sendkeys работает в контекстезапланированная задача, которая является проблемой

0 голосов
/ 03 октября 2011

Я думаю, что единственная разница в том, что .quit не работает в некоторых системах Unix.

...