I am not clear yet on the proper way to run raw SQL queries with Sequel.
Currently I am trying this:
DB.fetch("SELECT * FROM zone WHERE dialcode = '#{@dialcode}' LIMIT 1") do |row|
@zonename = row
end
How can I can run the queries as raw SQL then access the results like normal?
if @zonename.name = "UK"
I have a few pointers which may be useful:
You could simply do:
NB: you are ignoring the fact that there could be more results matching the criteria. If you expect multiple possible rows to be returned then you probably want to build an array of results by doing ...
and processing all of them.
The return set is a hash. If
@zonename
points to one of the records then you can doto refer to a field called "column_name". You can't do
@zonename.colum_nname
(you could actually decorate@zonename
with helper methods using some meta-programming but let's ignore that for the moment).Sequel is an excellent interface, the more you learn about it the more you'll like it.
Note that instead of:
you should do:
Otherwise, you open yourself to SQL injection if you don't control the contents of
@dialcode
.