I tried to build Ruby DBI on Windows NTSP5 and I get the following error:

dbd_sybase.c:29: tds.h: No such file or directory

How do I fix this or get around it? I am only interested in doing ODBC.
Thanks in advance.

Steve Tuckner

-----Original Message-----
From: Michael Neumann [mailto:neumann / s-direktnet.de]
Sent: Saturday, June 09, 2001 4:44 AM
To: ruby-talk / ruby-lang.org
Cc: ruby-de / unix-ag.org; ruby-dbi-talk / yahoogroups.com
Subject: [ruby-talk:16352] [ANN] Ruby/DBI 0.0.5


Hello,

I am pleased to announce a new and completely rewritten version of Ruby's
DBI.
It is now in version 0.0.5, where this is no more compatible to the version
0.0.4
which was written by Rainer Perl.

Ruby/DBI (RAA entry Library/Database/DBI) is a database independent
interface for 
accessing databases, similar to Perl's DBI (but easier to use :-), and the
following 
database drivers (DBD) currently exist (which are included in the DBI
module):

* ADO (ActiveX Data Objects) (tested with MS Access, CSV and Excel)
* IBM DB2 
* InterBase 
* mSQL
* MySQL
* ODBC
* Oracle
* PostgreSQL
* Proxy/Server (DBI over TCP/IP) 

(the DBD for Sybase is included but this is currently outdated and will not
work
with version 0.0.5)

Version 0.0.5 has too many changes towards version 0.0.4, so it makes no
sense to list them here.

For more informations look at the DBI and DBD specifications at:

  http://www.ruby-projects.org/dbi/dbi/DBI_SPEC.html
  http://www.ruby-projects.org/dbi/dbi/DBD_SPEC.html

and visit the DBI homepage at: 

  http://www.ruby-projects.org/dbi

The version 0.0.5 of Ruby/DBI can be downloaded

  http://www.ruby-projects.org/downloads/dbi/ruby-dbi-all-0.0.5.tar.gz

You can subscribe to the Ruby/DBI mailing list at:

  http://groups.yahoo.com/group/ruby-dbi-talk


Here's a simple example showing how to insert 100 rows into a database:

require 'dbi'

DBI.connect('dbi:Pg:michael', 'michael', 'michael', 'AutoCommit' => false)
do |dbh|
  dbh.prepare("INSERT INTO test VALUES (?,?)") do |sth|
    for i in 1..100 do
      sth.execute(i, "Line #{i}")
    end
  end
end

--------

Of course the block form can be ommited and the DatabaseHandle can be
assigned to a 
variable, but then you have to call "disconnect" or "finish", where the
block-form
ensures this is done (like File.open with block).

Or to output all rows of a table, you can use a short form:

DBI.connect('dbi:Pg:michael', 'michael', 'michael', 'AutoCommit' => false)
do |dbh|
  dbh.select_all("SELECT * FROM test") { |row| p row }
end


I am thankful for any comments towards improving Ruby/DBI.


Regards,

  Michael Neumann


-- 
Michael Neumann
merlin.zwo InfoDesign GmbH
http://www.merlin-zwo.de