On Wed, Jun 6, 2012 at 5:07 PM, bob wave <[email protected]> wrote:
> #file one
> requirbe_relative "dbmanage"
> database_manager = DatabaseManager.new
> database_manager.create_database("test.db")
> database_manager.create_table("test.db", "test_table")
>
> #dbmanage
> def create_table(database_name, table_name)
> database = SQLite3::Database.new("#{database_name}")
Why not
database = SQLite3::Database.new(database_name)
or at least
database = SQLite3::Database.new(database_name.to_s)
?
> create = database.execute <<-SQL
> create table "#{table_name}"
> SQL
> end
>
> #error produced:
> #../sqlite3/database.rb:91:in `initialize': near "
> (SQLite3::SQLException)
>
> I have not had any problems with this before, and I can't for the life
> of me think of any changes I have made to the dbmanage file and it looks
> like proper sql to me so what is going wrong :/
First of all that is not a proper table creation statement IMHO (no
columns defined) but maybe SQLite allows this. And then argument
"table_name" might actually contain a double quote which will break
the table creation. You should probably check, e.g. with this at the
beginning
raise sprintf("Invalid table name: %p", table_name) if /"/ =~ table_name
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
-- You received this message because you are subscribed to the Google Groups
ruby-talk-google group. To post to this group, send email to
[email protected]. To unsubscribe from this group, send email
to [email protected]. For more options, visit this
group at https://groups.google.com/d/forum/ruby-talk-google?hl=en