2013-06-02 11 views
9

Ich versuche, eine Verbindung zu einer Microsoft SQL Server-Datenbank mit dem Datenbank/Sql-Paket für Golang.Golang MSSQL-Treiber für Windows7 64-Bit

Es ist kein MSSQL-spezifischer Treiber unter https://code.google.com/p/go-wiki/wiki/SQLDrivers aufgeführt, daher dachte ich, ich würde einen odbc-Treiber ausprobieren.

Ich versuchte https://github.com/weigj/go-odbc, aber wenn ich go install laufen lasse, erhalte ich cc1.exe: sorry, unimplemented: 64-bit mode not compiled in. Dies wird im Github-Repo als offenes Problem aufgeführt.

Hat jemand Erfahrung beim Verbinden mit einer MSSQL-Datenbank von einem 64-Bit Windows 7-Client? Welcher odbc Treiber wird empfohlen?

+1

https://code.google.com/p/odbc – alex

+0

Alex, könnten Sie ein Beispiel für einen Aufruf von sql.Open() mit diesem Treiber bereitstellen? Ist es notwendig, einen DSN zu verwenden oder kann eine Verbindungszeichenfolge angegeben werden? Vielen Dank. – slachterman

+1

https://code.google.com/p/odbc/source/browse/mssql_test.go#56 – alex

Antwort

7

Versuchen Sie, diese ODBC-Treiber verwenden, anstatt, wie ich glaube es ist weit verbreitet: https://code.google.com/p/odbc/

+0

Abhängig von Ihrer Plattform muss möglicherweise 'FreeTDS' über den 'Microsoft ODBC SQL Adapter' für ODBC-Clients (speziell Nicht-Windows) verwendet werden. – Tracker1

9

Jetzt gibt es einen Microsoft SQL Server-spezifischen Treiber auf der Datenbank Treiberliste SQL database drivers in Github mit einem reinen Go Paket https://github.com/denisenkom/go-mssqldb

Sie könnten go-mssqldb versuchen, mssql direkt zu verbinden.

Die import könnte wie folgt aussehen:

import (
    "fmt" 
    "log" 
    "database/sql" 
    _ "github.com/denisenkom/go-mssqldb"  // the underscore indicates the package is used 
)  

die sql.Open() wie folgt aussieht:

// the user needs to be setup in SQL Server as an SQL Server user. 
// see create login and the create user SQL commands as well as the 
// SQL Server Management Studio documentation to turn on Hybrid Authentication 
// which allows both Windows Authentication and SQL Server Authentication. 
// also need to grant to the user the proper access permissions. 
// also need to enable TCP protocol in SQL Server Configuration Manager. 
condb, errdb := sql.Open("mssql", "server=localhost;user id=gouser;password=g0us3r;") 
if errdb != nil { 
    fmt.Println(" Error open db:", errdb.Error()) 
} 

defer condb.Close() 

und ich bin mit, es jetzt in Ordnung ist.

+2

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. – juliocesar