У меня есть следующий метод в классе ruby класса dbmgr, который Im использует в цикле для вставки данных из csv в sqlite3 db:ruby sqlite error 'make in insert_row': неопределенная локальная переменная или метод 'stmt'
def insert_row(aRow)
begin
@db = SQLite3::Database.open("#{@dbn}")
rhash = aRow.row_hash
stm = @db.prepare("INSERT INTO programs (programName, episodeName) VALUES (? , ?)")
stm.bind_param(1, '#{rhash["Program"]}')
stm.bind_param(2, '#{rhash["Episode Name"]}')
stmt.execute()
programId = @db.last_insert_row_id
rescue SQLite3::Exception => e
puts "Exception occured"
puts e.message
puts e.backtrace
ensure
stmt.close if stmt
@db.close if @db
end #db
Когда я делаю что на консоли после 1-й вставки, я получаю следующее сообщение об ошибке:
`ensure in insert_row': undefined local variable or method `stmt' for #<Dbmgr:0x007f9511050188> (NameError)
Изначально я не использовал подготовить и bind_params особенности рубина для SQLite. Однако после некоторых символов, таких как «» в тексте, я вставлял генерируемые исключения, я где-то читал, что использование bind_params очистит вход, поэтому я использовал bind_params. Но теперь я получаю эту ошибку.
Может кто-то помочь, пожалуйста?
Благодаря
OH MAN. вот что это было, благодаря XCode не автосохранение моих изменений кода. ха-ха, теперь я чувствую себя глупо за вопрос. – banditKing