2

サーバーとPCにSYBASE12.5をインストールしていますが、正しい接続文字列を取得できません。

connectionstrings.comを使用しましたが、正しいものを取得できません。

実行して接続した後

Driver = {Sybase ASE ODBC Driver}; srvr = server_name; database = database_name; UID = user_name; PWD = pass;

およびその他の接続文字列の組み合わせ

Datasource = "" Driver = "" DataBase = "" ServerVersion =InvalidOperationを取得しています。接続が閉じられています

その中で何を訂正すると思いますか。

助けてください。

ありがとう

4

3 に答える 3

1

私は Sybase を扱ったことはありませんが、connectionstring.comのこのページが役立つと思います。

于 2010-05-28T04:41:26.893 に答える
1

接続文字列でポートが宣言されていないので、それが問題なのだろうか。いずれにしても、Windows を使用している場合に試すことができるトリックは次のとおりです。

  1. デスクトップにテキスト ファイルを作成します (例: Foo.txt)。
  2. 拡張子を付けてファイルの名前を変更しますudl(例: Foo.udl)。
  3. ファイルをダブルクリックします。これにより、接続文字列を作成して接続をテストできる ODBC プロパティ ページ (別名データ リンク プロパティ) が開きます。ファイルは依然としてテキスト ファイルであるため、テキスト エディターでファイルを開くと、接続文字列が提供されます。
于 2010-05-28T04:43:37.637 に答える
0

これは古い質問だと思います。おそらくこれは、Sybase の問題を解決しようとしている他の誰かの助けになるでしょう。

とはいえ、.Net アプリを構築するときは、一般に、データベース アクセスにネイティブの .Net オブジェクトを使用する必要があります (使用可能な場合)。Sybase ではそれらを入手できますが、入手がやや困難なようです。組織で Sybase データベースを使用している場合は、SAP/Sybaseポータルから適切なツールをダウンロードできるアクセス権が必要です。この参照リンクは「開発者」版であり、要件に適さない可能性があることに注意してください。

Sybase.Data.AseClient.AseConnection を使用する場合、接続文字列は次のようになります。

Server=MyServer; Port=MyPort; Database=MyDatabase; User ID=MyUserID; Password=MyPassword

接続文字列にも明示的に文字セットとコードページを設定する必要がある場合があることに注意してください。

Charset=ClientDefault;CodePageType=other;clientCharset=iso_1;

文字セット/コードページの詳細については、こちらを参照してください。

上記の接続文字列は私にとってはうまくいきます。開発マシンの外で動作させるには、charset 部分を追加する必要がありました。

また、.Net4 オブジェクトにはメモリ リークの問題がある可能性があることに注意してください。単純な SQL ステートメントで、「保護されたメモリの読み取りまたは書き込みを試行しました」という例外が定期的にトリガーされました。.Net2 オブジェクトに切り替えると、そのエラーはなくなりました。ここを参照してください。

残念ながら、Sybase ドライバーの全体的な品質は低いようです。以前のバージョンのドライバー (15.03 だと思います) で動作する ODBC バージョンを取得できましたが、.Net2 接続オブジェクトは、インスタンス化時に DLL エラーのように見えるものを常にスローします。現在、私は 15.70 を使用しており、.Net4 オブジェクトで上記のメモリ リークの問題がありますが、現時点では .Net2 オブジェクトは正常に動作しています。

于 2015-07-31T17:00:30.670 に答える