Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Re: Lisp comprehensions => SQL
Victor 'Zverok' Shepelev
12/6/2006 8:12:00 AM
From: Ken Bloom [mailto:kbloom@gmail.com]
Sent: Wednesday, December 06, 2006 3:35 AM
>On Wed, 06 Dec 2006 06:58:49 +0900, Victor \"Zverok\" Shepelev wrote:
>
>> Hi all.
>>
>> Random idea, just for fun - using "list comprehensions" for SQL queries
>> generation.
>>
>> employees = Table.new(:id, :name, :sec_name, :salary, :age)
>>
>> employees.select{|e| e.name == 'John' && e.salary > 50}.sort_by{|e|
>> e.age}[2,10]
>>
>> #generates "select * from Employees where name = 'John' and salary > 50
>> order by age limit 2,10"
>>
>> employees.select{|e| e.salary < 150}.count
>>
>> #generates "select count(*) from Employees where salary < 150
>>
>> Something like this. (I still don't know, how to limit selected columns
>in
>> obvious way)
>>
>> And even more complex:
>>
>> employees = Table.new(:id, :name, :sec_name, :salary, :age)
>> positions = Table.new(:id, :employee_id, :position_name)
>>
>> (employees + positions).select{|e, p| e.id == p.employee_id}
>>
>> #generates "select * from Employees, Positions where Employees.id ==
>> Positions.employee_id"
>>
>> Idea is completely stolen from Phil Wadler's Links[1] language.
>> Also MS's LINQ and ruby's Mongoose DB seems to do something like this.
>>
>> But the realization of above seems to be interesting task (for RubyQuiz,
>may
>> be?)
>>
>> Thanks for your patience. And sorry me my English.
>>
>> V.
>>
>> 1.
http://groups.inf.ed.ac...
>> 2.
http://en.wikipedia.org/wiki/Language_Integr...
>> 3.
http://rubyforge.org/projects...
>
>Have you had a look at my SqlStatement library?
>
http://sqlstatement.ruby...
>
>It's not quite like what you're asking, as it prefers to look a little
>bit more like SQL translated into Ruby. It's really designed more for
>programmatic manipulation of SQL statements, and for using Ruby to drive
>processing performed in a SQL database.
>
>You might also want to look at Criteria.
http://mephle.org...
>
This approach (somethin-like-SQL inside Ruby) is acceptable. But for me, it
is not seem very natural.
V.
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Re: Lisp comprehensions => SQL
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password