[fxruby-users] Accessing SQLite database in FXRuby application

Will Parsons wbparsons at cshore.com
Fri Feb 26 20:39:50 EST 2010


I'm trying to develop an application that accesses an SQLite database and
am running into problems related to using getApp (probably because of some
simple misunderstanding of how FXRuby works on my part).  The following is
a stripped-down version of my (non-functioning) program:

========================================================================
#!/usr/bin/env ruby

require 'fox16'
require 'sqlite3'

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

class TestTable < FXTable
   def initialize(p)
      super(p, :opts => LAYOUT_FILL|PACK_UNIFORM_WIDTH|TABLE_COL_SIZABLE)

      db = getApp.db
      db || raise("can't access DB")      # <---- this condition is raised

      setTableSize(3, 3)
      # fill table with data from database...
   end
end

class TopLevelWindow < FXMainWindow
   def initialize(app)
      super(app, 'Test', :width => 400, :height => 100)
      TestTable.new(self)
   end

   def create
      super
      show(PLACEMENT_SCREEN)
   end
end

TestApp.new do |app|
   TopLevelWindow.new(app)
   app.create
   app.run
end

========================================================================

When run, the condition "can't access DB" is raised.  This is probably simple,
but I can't seem to figure out what I'm doing wrong.

-- 
Will


More information about the fxruby-users mailing list