Forum: Ruby on Rails what is Driver & what is Adapter ?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
1b507a552850441a516948d488962d2e?d=identicon&s=25 Sniper Abandon (mokkai)
on 2008-10-06 12:52
what is Driver & what is Adapter ?
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-10-06 14:29
(Received via mailing list)
On 6 Oct 2008, at 11:52, Pokkai Dokkai wrote:

>
> what is Driver & what is Adapter ?

Assuming you are talking about database drivers and rails' connection
adapters:

A driver is something that allows you to talk to the database. Drivers
don't however all have the same semantics. Similar things may have
different names, the underlying database may be different in the way
certain tasks are accomplished or how certain SQL statements are
written. The connection adapters that are part of Rails smooth over
these differences.

Fred
1b507a552850441a516948d488962d2e?d=identicon&s=25 Sniper Abandon (mokkai)
on 2008-10-06 17:02
Frederick Cheung wrote:
> On 6 Oct 2008, at 11:52, Pokkai Dokkai wrote:
>
>>
>> what is Driver & what is Adapter ?
>
> Assuming you are talking about database drivers and rails' connection
> adapters:

thats correct

> A driver is something that allows you to talk to the database. Drivers
> don't however all have the same semantics. Similar things may have
> different names, the underlying database may be different in the way
> certain tasks are accomplished or how certain SQL statements are
> written.
so from ruby to every database , ruby needed a separate Driver .

> The connection adapters that are part of Rails smooth over
> these differences.
what does mean ?
what is the main job to this Adapter
is it used to convert database return result(which is in string Object)
to Model Object ?


thanks
25d33a294d8b03b0eec187cb1dc4d8d7?d=identicon&s=25 Srdjan Pejic (batasrki)
on 2008-10-06 17:20
(Received via mailing list)
I think that every adapter includes a driver. So a MySQL adapter for
Rails includes driver information or utilizes a pre-existing driver
for Ruby. The adapter then uses the raw data brought back from the
database through an SQL statement that's been generated and makes an
ActiveRecord object specific to the query and populates that object
with the raw data.

Frederick, am I right in this?

On Oct 6, 11:02 am, Pokkai Dokkai <rails-mailing-l...@andreas-s.net>
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2008-10-06 17:51
(Received via mailing list)
On 6 Oct 2008, at 16:19, Srdjan Pejic wrote:

>
> I think that every adapter includes a driver. So a MySQL adapter for
> Rails includes driver information or utilizes a pre-existing driver
> for Ruby.

The Rails team do not develop any of the database drivers.

> The adapter then uses the raw data brought back from the
> database through an SQL statement that's been generated and makes an
> ActiveRecord object specific to the query and populates that object
> with the raw data.
>
> Frederick, am I right in this?
>
Not quite. The adapters happen at a lower level. For example, I have a
select query and I want to make it have this limit and that offset.
That's database dependant and is handled by the adapter. Quoting
rules, mapping of ruby types onto database column types are also
database dependant and are handled by the adaptor.
The adapter also handles stuff like "given this select query, give me
an array of hashes representing the result set", or "do this insert
and tell me what was the primary key that was generated" and things
like that (building of the ActiveRecord objects in not part of the
adapter code).
If you really want a detailed answer, just crack open something like
mysql_adapter.rb and see what's in there.

Fred
This topic is locked and can not be replied to.