0

Ruby で基本的な SQLite データベースにアクセスしようとしていますが、奇妙なエラーが発生し続けます。宝石はエラーなしでインストールされ、適切なエラーが表示されますが、実際にコードを実行しようとすると、次のエラーが発生します。

/home/--/.rvm/gems/ruby-2.0.0-p195/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in `initialize': near ".": syntax error (SQLite3::SQLException)
from /home/mastelj/.rvm/gems/ruby-2.0.0-p195/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in `new' 
from /home/mastelj/.rvm/gems/ruby-2.0.0-p195/gems/sqlite3-1.3.7/lib/sqlite3/database.¦rb:91:in `prepare'
from /home/mastelj/.rvm/gems/ruby-2.0.0-p195/gems/sqlite3-1.3.7/lib/sqlite3/database. rb:134:in `execute'
^G Get Hel^O WriteOu^R Read Fi^Y Prev Pa^K Cut Tex^C Cur Pos from to_sqlite.rb:5:in `<main>'

プログラム

require 'sqlite3'

db = SQLite3::Database.open('test.db')
rows = db.execute( ".tabes" )

for i in 0..rows.size-1
    puts rows[i]
end

これを引き起こす原因について何か考えはありますか?

4

2 に答える 2

1

SQL コマンドは何をすべき.tabesか?

有効な SQL を使用する場合は、次を使用できますdb.execute

require 'sqlite3'

db = SQLite3::Database.open('test.db')
rows = db.execute( "CREATE TABLE [test] (  [test] CHAR);" )

テーブルのリストを取得したい場合は、sqlite_master で選択できます。

require 'sqlite3'

db = SQLite3::Database.open('test.db')
db.execute( "CREATE TABLE [test] (  [test] CHAR);" )
rows = db.execute( "SELECT * FROM sqlite_master WHERE type='table';" )
rows.each{|tab|
  p tab
}

しかし、Sequel などのデータベース ツールキットをお勧めします。

require 'sequel'
DB = Sequel.sqlite('test.db')

DB.create_table( :test ){
  String :content
}

puts DB.tables
于 2013-07-26T21:32:18.947 に答える