Hi everyone, I have a problem connecting my application to a database. I think this is a ruby problem though Im running ruby on rails, but let me explain. The thing is that I want to execute queries upon several different databases by using DBI/DBD and not activerecord. For this I have created a simple ruby class with the responsibility of fetching different data. This class looks something like the this: require 'dbi' class DataAccess def self.methodA begin # connect to the MySQL server dbh = DBI.connect("DBI:mysql:localhost", "username", "password") # get server version string and display it row = dbh.select_one("SELECT ...") rescue DBI::DatabaseError => error puts "An error occurred" ensure # disconnect from server dbh.disconnect if dbh end def self.methodB #same as above, different database ... end end When these methods are executed i get the following error: Could not load driver (undefined local variable or method `e' for DBI:Module) ... Anyone have a sollution for this? I have tried following every guide there is to connect ruby to a database (installation of dbi/dbd). Maybe someone could explain what im doing wrong?
on 2009-02-08 22:46
on 2009-02-09 12:26
Henrik Larsen wrote: > When these methods are executed i get the following error: > Could not load driver (undefined local variable or method `e' for > DBI:Module) > ... (1) Try it from the command line, using irb - firstly using native DBI commands, and then using your wrapper class. Only when it's working there think about porting it into Rails. (2) If you can't get it to work, make the smallest standalone code you can which reproduces the problem. (3) Post this standalone code, and post the *full* unedited backtrace you get when running it. The above error message isn't much use, as it didn't say whether the error was in the DBI code itself, or your code. Finally, beware that DBI has changed quite a bit between 0.2 and 0.4, so if you are reading random pages on the web, beware that they may be out of date. HTH, Brian.