2013-06-02 9 views
9

Sto provando a connettermi a un database Microsoft SQL Server utilizzando il pacchetto database/sql per golang.Driver MSSQL Golang per Windows7 64-bit

Non esiste un driver specifico per MSSQL elencato allo https://code.google.com/p/go-wiki/wiki/SQLDrivers, quindi ho pensato di provare un driver odbc.

ho cercato https://github.com/weigj/go-odbc ma quando corro go install ricevo cc1.exe: sorry, unimplemented: 64-bit mode not compiled in. Questo è elencato come un problema aperto nel repository github.

Qualcuno ha esperienza la connessione a un database MSSQL da un Windows 7 client a 64 bit? Quale driver odbc è raccomandato?

+1

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

+0

Alex, potrebbe fornire un esempio di una chiamata sql.Open() che utilizza quel driver? È necessario utilizzare un DSN o è possibile specificare una stringa di connessione? Grazie. – slachterman

+1

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

risposta

7

Provare a utilizzare questo driver ODBC invece, credo che sia più ampiamente utilizzato: https://code.google.com/p/odbc/

+0

Inoltre, a seconda della piattaforma, potrebbe essere necessario utilizzare 'FreeTDS' su' Microsoft ODBC SQL Adapter' per i client ODBC (in particolare non Windows). – Tracker1

9

Ora, c'è un driver specifico di Microsoft SQL Server sulla lista driver di database SQL database drivers in github con un pacchetto Go pura https://github.com/denisenkom/go-mssqldb

Si potrebbe provare go-mssqldb per collegare mssql direttamente.

Il import potrebbe apparire come:

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

il sql.Open() assomiglia:

// 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() 

e lo sto usando, è ok per ora.

+2

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – juliocesar