ruby-mine

exploring the mine

Tage wie dieser - MSSQl-DB Zugriff

von dethix am 27.05.2006 (03 Uhr)

Es gibt Tage an denen sollte man besser nicht das Haus verlassen. Der gestrige war für mich einer dieser Tage. Egal was man auch anfasst, es wird nichts.

Nehmen wir z.B. den Versuch heute morgen mit einem Ruby-Skript auf eine MSSQL Datenbank zuzugreifen. Aus unerklärlichen Gründen habe ich bestimmt ne Stunde im Netz nach einem Ansatz bzw. einer Lösung gesucht, aber nichts gefunden. Nach Rückfrage im hervorragenden *schleim* RubyForum würde ich sofort mit einem entsprechenden Lösungsansatz konfrontiert.

Aber hier soll es nicht um die Reaktionszeit des Forums gehen, auch wenn diese extrem kurz ist.

Ich möchte mein neu erlangtes Wissen teilen und deshalb zeige ich euch, wie man auf einer Windows-Dose mit Ruby auf eine MSSQL DB zugreifen kann.

Möglich ist das Ganze mit Hilfe von dbi und ODBC. Als erstes muss man unter Windows eine neue ODBC-Datenquelle einrichten. Das ganze läuft wie folgt ab:

Damit sind die Vorbereitungen abgeschlossen. Nun kommen wir zum Skript.

require 'dbi'
# Datenquelle angeben , User angeben
dbh = DBI.connect('dbi:odbc:Datenquellenname','User')
#Die SQL-Abfrage eingeben
sth = dbh.prepare( 'SELECT * FROM Test' )
#Abfrage ausführen
sth.execute

sth.each do |row|
  row.each_with_name do |val, name|
    #Spaltenname und Wert werden ausgegeben
    puts name + val.to_s
  end
end
#Verbindung trennen
dbh.disconnect

Zuerst wird dbi benötigt und eingebunden. Dann natürlich die Datenquelle sowie bei Bedarf den User und Passwort angeben. Und nun können wir schon beliebige SQL-Anweisungen abschießen. Wie das Ergebnis dann weiterverarbeitet wird, bleibt jedem selber überlassen.

Ich hoffe aber hiermit einigen Leute die vor einem ähnlichen, möglicherweise recht simpel zu lösenden Problem stehen, geholfen zu haben.

Weitere Infos:
http://ruby-dbi.rubyforge.org/
RubyWiki:DatenbankZugriff


Kommentar schreiben

Name (notwendig)

Mail (wird nicht veröffentlicht)

Webseite