【发布时间】:2019-08-22 23:51:09
【问题描述】:
我想创建一个应用程序来访问 db(带有 1 个表)并在窗口中输出其表使用 FXRuby。有什么方法可以不使用查询语言,就像在这个例子中一样:
require 'pg'
conn = PG.connect(dbname: 'testdb', user: 'postgres')
rows = conn.exec("select * from users")
并且不使用 Ruby on Rails。
我也尝试启动此示例代码,但由于安装 sqlite3 gem 的问题,它不起作用:
require 'fox16'
require 'sqlite3.rb'
include Fox
class TestApp < FXApp
def initialize
super('Test', 'Test')
@db = SQLite3::Database.new('test.db3')
@db || raise("can't connect to database")
end
def db
@db
end
end
【问题讨论】:
-
“不使用查询语言”是什么意思?您将使用 some 类型的查询来访问数据库。顺便说一句,我在我的应用程序中一直使用
fox16和sqlite3gem,那么安装sqlite3gem 的问题究竟是什么? -
@varro 我正在使用 win 10 + ruby 2.5.3,当我尝试“gem install sqlite3”时它失败了。
-
你应该尽量在你的错误报告中尽可能明确,但我猜这里你没有正确设置你的开发环境。 fox16 gem 是一个 C/C++ 扩展,这意味着您需要编译它。你有安装编译器吗?你的开发环境是什么?
-
@varro 我已经从 rubyinstaller.org/ 安装了 ruby 解释器并使用 powershell 来启动代码。
-
但是你有编译器吗?我自己使用MSYS作为开发环境,但是去rubyinstaller网站,貌似可以在Add-ons下安装MSYS2/DevKit。你有吗?
标签: ruby database sqlite fxruby