Hello,
I am in my first days of Ruby, so I may have done something stupid, but
my
search did not uncover it.
It seems to me that the SQLite3 wrapper doesn’t return correct results
when
results_as_hash is true. I get spurious entries in the hash.
Here is a redux of my problem:
require 'rubygems'
require 'sqlite3'
#File.delete "test.db"
db = SQLite3::Database.new("test.db");
db.results_as_hash=true
db.execute("create table repertoire (Name TEXT,Firstname
TEXT,Telephone
TEXT)")
db.execute(“insert into repertoire (Name, Firstname, Telephone)
values
(‘Doe’, ‘John’, ‘555-123-4567’)”)
p db.execute(‘select * from repertoire;’)
The results is indeed a hash, but with spurious entries:
[{“Name”=>“Doe”, 0=>“Doe”, 1=>“John”, 2=>“555-123-4567”,
“Telephone”=>“555-123-4567”, “Firstname”=>“John”}]
I am running Ruby:
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
Under MacOS X Leopard 10.5.6
With SQLite3 3.4.0
Executing the query with the sqlite3 command line tool returns the
expected
result:
$ sqlite3 test.db
SQLite version 3.4.0
Enter “.help” for instructions
sqlite> select * from repertoire;
Doe|John|555-123-4567
sqlite>
Any confirmation/workaround/fix?
Many thanks.
Jean-Denis