0

まず第一に、私は Go 言語が初めてです。

趣味のプロジェクトとして開発した .NET サービスのいくつかの Go バージョンを作成することにしました。これを試みる理由は次のとおりです。

  • 私は Go 言語に少し興味をそそられました。
  • .NET Web サービスは大幅に改善される可能性があると思いますが、私は当社の .NET 開発者ではありません。

これらの Web サービスを作成するには、データベースにアクセスする必要があります。ODBC を使用してデータベースにアクセスできるように、テスト サーバーを構成しました。

次のステップ: Go アプリケーションで動作する ODBC 接続を取得します。利用可能な Go ODBC パッケージがいくつかあります。現在、これを使用しようとしています: https://github.com/BenoyRNair/godbc

プロジェクトに含まれているのは例です。この例を実行しようとすると、次のエラー メッセージが表示されます。

MacBook-Air:go wolf$ go run example.go 
# godbc
godbc.go:77:2: expected declaration, found '('
godbc.go:81:2: expected declaration, found 'IDENT' x
godbc.go:104:2: expected declaration, found 'IDENT' dsn
godbc.go:109:2: expected declaration, found 'IDENT' returnInt
godbc.go:132:2: expected declaration, found 'IDENT' driver
godbc.go:137:2: expected declaration, found 'IDENT' returnInt
godbc.go:161:2: expected declaration, found 'IDENT' outConnectionString
godbc.go:185:2: expected declaration, found 'IDENT' messageText
godbc.go:188:2: expected declaration, found 'IDENT' returnInt
godbc.go:212:2: expected declaration, found 'IDENT' returnInt
godbc.go:230:2: expected declaration, found 'IDENT' returnInt
godbc.go:242:2: expected declaration, found 'IDENT' returnInt
godbc.go:275:2: expected declaration, found 'IDENT' returnInt
godbc.go:291:2: expected declaration, found 'IDENT' buffer
godbc.go:336:2: expected declaration, found 'for'

今、このエラーに対処する方法がわかりません。エラーはファイルのフォーマット方法に関係している可能性があると考えていますが、おそらく他の何かが手元にあります。github ページの [Issue] タブを見ると、他の誰かが同じ問題に言及していることに気付きましたが、コードが最新バージョンの Go でコンパイルされないことに注意したので、過去にコンパイルされたと思います。

この問題の簡単な修正方法があるかどうか、または他の ODBC パッケージで運試しをする必要があるかどうかを知っている人はいますか? もしそうなら、どのパッケージが推奨されますか?

4

3 に答える 3

2

https://github.com/BenoyRNair/godbcは非常に古いパッケージです。あなたが発見したように、それはもはやコンパイルさえしません。

Go には、任意の SQL データベースにアクセスするための database/sql 標準パッケージが含まれるようになりました。インターフェイスを提供しますが、選択したデータベースへのアクセスを実装する「ドライバー パッケージ」も必要になります。この設計の考え方は、「ドライバー パッケージ」を置き換えて別のデータベースにアクセスできるようにすることです。すべてではないにしても、ほとんどのユーザー コードは変更しないでください。

ODBC 固有の機能が必要でない限り、database/sql パッケージを試してみてください。これにより、自分に合ったドライバーが見つかるまで、さまざまなドライバーを試すことができます。

ODBC ドライバーを自分で作成しましたhttp://code.google.com/p/odbc/。これを使用して、MS SQL Server にアクセスします。おそらく、それはあなたのために働くでしょう。

アレックス

于 2012-12-21T22:56:45.243 に答える
1

そのコードは、Go に自動セミコロン挿入規則が導入される前に書かれたように見えます。最近では gofix でさえ、そのようなコードには触れていません。ODBC についてはよくわかりませんが、別のパッケージを使用したほうがよいと思います。

于 2012-12-21T18:52:40.993 に答える
0

Microsoft SQL Server で Go を使用しているほとんどの人github.com/denisenkom/go-mssqldbは、標準パッケージと共にドライバー パッケージを使用しているようですdatabase/sql

Go with SQL Server driver is cannot to connect successfully, login failに対する私の回答は、デモ プログラムを機能させるために行ったことの一部を詳述しています。SQL Server の構成をいくつか変更する必要がありました。

 - enable SQL Server Authentication as well as Windows Authentication
 - enable TCP connections
 - create SQL Server user and assign necessary permissions

この例は、ローカル マシンに既定のインスタンスとしてインストールされた SQL Server で機能します。

于 2016-08-18T13:27:35.700 に答える