RODBC erkennt meine ODBC-Einstellungen nicht

Ich verwende R 2.15.2 auf einem Red Hat Linux 6-Server. Mein Ziel ist es, über RODBC eine Verbindung zu einer MS SQL Server-Datenbank auf einem anderen Computer herzustellen. Ich habe meine Recherche durchgeführt und die Linux-Version des MS SQL ODBC-Treibers von heruntergeladen und installiertdie microsoft support website. Ich musste unixODBC Version 2.3.0 aus dem Quellcode erstellen, da es vom Windows-Treiber benötigt wird und noch nicht in den RHL-Repos enthalten ist (die Repo-Version ist 2.2.14).

Wie auch immer, nach einigem Hin und Her habe ich endlich den Treiber installiert und richtig konfiguriert und kann mich erfolgreich mit der SQL Server-Datenbank über eine verbindenisql Befehl:

$ isql -v test testuser testpass
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

Also weiß ich, dass ich meine habeodbc.ini undodbcinst.ini Dateien richtig eingerichtet.

Wenn ich jedoch versuche, von R aus auf die ODBC-Verbindung zuzugreifen, geschieht Folgendes:

> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data 
   source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   ODBC connection failed

Hier ist das Ergebnis derodbcDataSources Befehl in R:

> odbcDataSources()
named character(0)

Ich habe einige Nachforschungen angestellt und denke, die Lösung (obwohl ich mich irren könnte) hat möglicherweise etwas mit der richtigen Konfiguration der ODBC-Umgebungsvariablen zu tun, damit RODBC weiß, wo sie zu finden sindodbc.ini. Basierend auf meinen Recherchen habe ich die folgenden Umgebungsvariablen gefunden, die relevant sein könnten:$ODBCINI, $ODBCSYSINI, $ODBC_ROOT $ODBC_INCLUDE, and $ODBC_LIBS. Ich habe eine vernünftige Vorstellung davon, worauf diese eingestellt werden sollten, bin mir aber nicht sicher, wie ich sie dauerhaft einstellen soll, damit RODBC erkennen kann, wo sich die entsprechenden Dateien befinden.

Kann mir jemand etwas Licht ins Dunkel bringen? Ich bin nicht sicher, ob ich richtig verstehe, wie Umgebungsvariablen unter Linux funktionieren und insbesondere warumisql hat keine Probleme beim Verbinden, aberRODBC kann nicht einmal den Treiber / die Datenquelle finden.

ANMERKUNG: Wenn ich die Repoversion von unixODBC installiert hätte, würde RODBC mit der gut installiereninstall.packages('RODBC') Befehl in R. Nach der Installation von unixODBC 2.3.0 aus dem Quellcode schlug die RODBC-Installation jedoch aufgrund eines Abhängigkeitsproblems fehl, und ich musste RODBC aus dem Quellcode mithilfe von installierenAnleitung hier gepostet. Ist es möglich, dass ich ODBC anfangs nicht richtig konfiguriert habe und deshalb habe ich jetzt Probleme?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage