From: SunSw0rd Date: 2009-07-02T23:10:07+09:00 Subject: Re: Windows XP problem with Ruby, gem sqlite3-ruby, and SQLite3 On Jul 1, 10:52 pm, Luis Lavena wrote: > On Jul 1, 6:27 pm, SunSw0rd wrote: > > > > > A further symptom on this issue. When I execute irb I detect the > > following: > > === > > C:\Ruby\bin>irb > > irb(main):001:0> require 'rubygems' > > => true > > irb(main):002:0> require 'sqlite3' > > LoadError: 127: The specified procedure could not be found.   - > > Init_sqlite3 > > ./sqlite3.dll > >         from ./sqlite3.dll > >         from C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb: > > 31:in `require' > >         from (irb):2 > > irb(main):003:0> > > === > > > Is this saying there is something wrong with the downloaded sqlite3 > > DLL itself? > > No, the problem is Ruby itself. > > C:\Users\Luis>irb > irb(main):001:0> require 'rbconfig' > => true > irb(main):002:0> RbConfig::CONFIG['DLEXT'] > => "so" > irb(main):003:0> RbConfig::CONFIG['DLEXT2'] > => "dll" > > DLEXT is used to identify Ruby C extensions. > > Since you're CD'ing from Ruby\bin, it's finding 'sqlite3.dll' and > think it is an extension. See this: > > C:\Users\Luis>cd Tools\bin > > C:\Users\Luis\Tools\bin>dir sqlite*.* >  Volume in drive C is Windows7 >  Volume Serial Number is 50BD-564E > >  Directory of C:\Users\Luis\Tools\bin > > 18/05/2009  01:40 p.m.           505.873 sqlite3.dll > 21/05/2009  10:03 p.m.           520.574 sqlite3.exe >                2 File(s)      1.026.447 bytes >                0 Dir(s)  44.951.277.568 bytes free > > C:\Users\Luis\Tools\bin>irb > irb(main):001:0> require 'sqlite3' > LoadError: 127: The specified procedure could not be found.   - > Init_sqlite3 > ./sqlite3.dll >         from ./sqlite3.dll >         from (irb):1 > > Now, please try doing the require OUTSIDE Ruby\bin folder. > > Also, since you installed sqlite3 as a gem, please require rubygems > first: > > require 'rubygems' > require 'sqlite3' > > HTH > -- > Luis Lavena This last post is correct. I had to do this: (1) move the script to another directory other than C:\Ruby\bin (2) added require 'rubygems' about the require 'sqlite3' (3) Make a couple of minor script corrections -- the following now works fine: === require 'rubygems' require 'sqlite3' db = SQLite3::Database.new( "test.db" ) db.execute( "drop table if exists the_table " ) sql = <