sqlite中.quit和.exit之间有区别吗?

时间:2011-10-03 18:23:16

标签: sqlite task exit scheduler quit

我正在编写一个vbscript来解决sqlite shell中的sql查询,并想知道我是否需要使用.quit或.exit。当我在任务调度程序中设置任务来运行此vbscript时,sqlite shell不会正确退出/退出,因为每次任务调度程序运行时我都会创建一个新实例,这会导致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 个答案:

答案 0 :(得分:1)

嗯,根据the documentation.quit.exit的说明都是“退出此计划”,所以我不相信,不。

答案 1 :(得分:0)

我认为唯一的区别是.quit在某些Unix系统上不起作用。

答案 2 :(得分:0)

我同意杰克的观点,即该文件没有区别。 但是,为什么不将命令传递给命令行处理器?您可以创建包含上述每个步骤的“SQL”文件,然后执行单个运行命令:

像(未经测试!)

SQL文件:

.seperator ,
.headers on
etc..

然后将此文件运行为:

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

不需要arbirary超时,你也可以通过params。

PS:它可能是在计划任务的上下文中运行的sendkeys