2010-12-09 6 views
4

Ich habe versucht, eine Verbindung zu SQL Server von einer ROR-Anwendung in Ubuntu herzustellen. Dafür habe ich folgende Dinge getan.Verbinden mit SQL Server 2005 von einer ROR-Anwendung in Ubuntu

Ich installierte die folgenden Bibliotheken in meinem Ubuntu 10,04

  • unixodbc
  • unixodbc-dev
  • freetds-dev
  • libdbd-odbc-ruby
  • tdsodbc

Nach der Installation habe ich den DSN erstellt und den erforderlichen Cha erstellt nges in den Dateien odbc.ini und freetds.conf.

Dann testete ich die Verbindung mit "Tsql" wie unter

tsql -S <dsn name> -U <username> -P <pwd> 

Für diesen Befehl, erhalte ich die folgenden Fehler

Adaptive Server is unavailable

Ich habe auch die freetds Log; es sagt "Verbindungszeitüberschreitung".

Ich bin mir sicher, dass wir mit den Konfigurationen (remote) auf unserer SQL-Server-Seite gut sind.

Wenn ich tsql -C laufen lasse, sagt es TDS Version 5. Ich bin nicht sicher, wie es TDS 5 sagt, weil ich die späteste FreeTDS Version installierte. Und ich weiß nicht, wie ich meine TDS-Version aktualisieren soll.

FYI, ich habe gehört, dass TDS Version 5 nicht für die Herstellung von Verbindungen mit SQL Server verwendet werden kann. Ist das richtig?

Bitte leite mich

Danke, Neo

+0

Ja, ich weiß.Aber meine aktuelle Situation erfordert sqlserver Verbindung. – Neo

Antwort

1

freetds.conf ermöglicht es Ihnen, welche Version des TDS-Protokoll Sie verwenden möchten, angeben. Fügen Sie einfach einen tds version = 8.0 unter dem [global] Abschnitt hinzu oder den Abschnitt, den Sie für Ihren Server hinzugefügt haben. Wenn nicht angegeben, wird standardmäßig die Version 5.0 verwendet. Weitere Informationen finden Sie unter http://www.freetds.org/userguide/freetdsconf.htm

+0

Ich tat das auch. Ich habe die "tds version = 8.0" unter meiner Server-Sektion hinzugefügt (nicht auf der globalen Ebene). Aber immer noch sagen TDS-Version ist 5, wenn ich diesen Befehl ausführen "tsql -C" – Neo

0

Ich weiß, dies ist keine Antwort auf Ihre spezifische Frage, aber es ist ein Ratschlag aus dem letzten Mal, als ich versuchte, von Linux zu SQL Server zu gehen. Es war im Jahr 2009, also hat sich seither etwas verändert.

Wie auch immer, wir hatten so viel Mühe damit, dass wir aufgaben und entschieden, JRuby zu benutzen.

Es führte zu sehr wenig Aufwand, um die Verbindung mit activerecord-jdbc-adapter zu starten und zu laufen, und wir haben keine Probleme mit der Kompatibilität bekommen. (Ich nehme das zurück, es gab one problem I had to fix where we were selecting limited rows in mssql from table with no primary key, identity column, or column named "id")

Ich war in der Lage, es funktioniert in der Vergangenheit tun es wie Sie versuchen, aber es war immer viel mehr Mühe, als ich mit JRuby gehen musste .

+0

Ich denke, lesen Neo Kommentar vom 9. Dezember 10 - "Ja, ich weiß. Aber meine aktuelle Situation erfordert sqlserver Verbindung." - Ihre Antwort wird nicht sehr hilfreich sein ... – chiccodoro

+0

Ich sagte (vielleicht unklar), dass es einfacher war, Rails mit SQL Server zu verbinden (wenn Ruby unter Linux oder MacOS läuft), indem ich JRuby benutzte, als mit MRI . Was habe ich falsch verstanden? –

+0

Ich sehe, sorry dafür. Ich halte den Mund. – chiccodoro