需要的建议:简单的跨平台(OS-X和Windows)和#x2B;无需安装的SQLite开发 OS-X和Windows+SQLite跨平台开发环境需要的建议

需要的建议:简单的跨平台(OS-X和Windows)和#x2B;无需安装的SQLite开发 OS-X和Windows+SQLite跨平台开发环境需要的建议,windows,macos,sqlite,cross-platform,development-environment,Windows,Macos,Sqlite,Cross Platform,Development Environment,我需要一个简单的维护程序来运行,但OS-X和Windows机器更新SQLite数据库,一次 用例: 在OS-X和Windows上对应用程序的SQLite数据库进行数据库维护 要求 用于文件对话框的简单GUI,用于选择SQLite数据库并选择目录 没有安装运行时环境 Windows和OS-X的代码相同 这就是为什么我不喜欢Java,因为在新版本的OS-X上没有安装Java 对SQLite的支持。需要基于某些逻辑运行多个SQL脚本 用户应该只启动和停止应用程序,在系统的某个地方选择本地SQLite

我需要一个简单的维护程序来运行,但OS-X和Windows机器更新SQLite数据库,一次

用例: 在OS-X和Windows上对应用程序的SQLite数据库进行数据库维护

要求
  • 用于文件对话框的简单GUI,用于选择SQLite数据库并选择目录
  • 没有安装运行时环境
  • Windows和OS-X的代码相同
  • 这就是为什么我不喜欢Java,因为在新版本的OS-X上没有安装Java
  • 对SQLite的支持。需要基于某些逻辑运行多个SQL脚本
  • 用户应该只启动和停止应用程序,在系统的某个地方选择本地SQLite数据库,然后启动维护程序=脚本
  • (对于用户来说,数据库管理工具非常复杂)
  • 开源、免费软件或免费商业使用
这是一次性维护,因此应该尽可能简单


我可以使用哪种开发环境来完成此任务?

Xojo将完成您需要的所有工作。它可以创建不需要Windows和OS X运行时的独立应用程序。它还内置了对SQLite的支持

它可以免费用于开发,但您需要许可证才能创建用于部署的构建


我建议您使用Tcl/Tk

  • SQlite扩展由SQlite作者维护
  • Tcl/Tk可用于许多平台
  • Tk是一个古老但仍在维护的、不断发展的GUI工具包
  • 您可以将代码封装在一个单独的可执行文件中,该文件包含所有内容:Tcl/Tk运行时、SQlite扩展、脚本
  • Tcl/Tk根据BSD风格的许可证进行许可
这里是GUI的示例脚本

package require Tk
package require sqlite3

ttk::label .lbldb -text "Database:"
ttk::entry .db -textvariable db
set db {}
ttk::button .seldb -command seldb -text "..."
grid .lbldb .db .seldb -sticky nesw -columnspan 2

ttk::label .lbldir -text "Directory:"
ttk::entry .dir -textvariable dir
set dir {}
ttk::button .seldir -command seldir -text "..."
grid .lbldir .dir .seldir -sticky nesw -columnspan 2

ttk::button .go -command go -text "Go!" -default active
ttk::button .exit -command exit -text "Exit"
grid .go .exit -sticky nesw -columnspan 3

grid columnconfigure . 2 -weight 1
grid columnconfigure . 3 -weight 1
grid rowconfigure . 2 -weight 1

proc seldb {} {
    set res [tk_getOpenFile -initialfile $::db]
    if {$res ne {}} {
        set ::db $res
    }
}

proc seldir {} {
    set res [tk_chooseDirectory -initialdir $::dir]
    if {$res ne {}} {
        set ::dir $res
    }
}

proc go {} {
    # Connect with the database
    sqlite3 db $::db
    # Do some stuff...
}

我不确定是否存在满足你所有要求的东西。