@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

複数データベースを持つSQLServerへのコネクション

1
投稿者投稿内容
サビ
会議室デビュー日: 2004/10/06
投稿数: 7
投稿日時: 2004-11-05 18:37
SQLServer2003
.NetFrameWork 1.1
C#
を使用しています。

複数データベースを持つSQLServer
へ接続する際、
Data Sourceはどのように記述すればよいでしょうか。

ODBCには、「サーバ名\\データベース識別子」と記述し
成功しています。

string connStr = "User ID=ユーザID; Password=パスワード;"
+ "Initial Catalog=ODBCシステムDNS名;"
+ "Data Source=サーバ名\\データベース識別子";
と、記述すると、

SqlConnection objConn = new SqlConnection(connStr);
objConn.Open();   ←ここで、
System.Data.SqlClient.SqlException' のハンドルされていない例外が system.data.dll で発生しました。
追加情報 : システム エラーです。
というエラーで落ちます。

データベースが1つのみの場合は、サーバ名だけを記述して成功
しています。

どうぞよろしくお願いします。

--追記--
複数データベース → 複数SQLServerです。すみません。
SQLServerグループの下に複数の、SQLServerが存在する
環境です。



[ メッセージ編集済み 編集者: サビ 編集日時 2004-11-05 19:50 ]
まー
会議室デビュー日: 2004/09/24
投稿数: 14
投稿日時: 2004-11-10 14:14

>string connStr = "User ID=ユーザID; Password=パスワード;"
>+ "Initial Catalog=ODBCシステムDNS名;"
>+ "Data Source=サーバ名\\データベース識別子";

を下記のようにするとどうでしょうか。

string connStr = "User ID=ユーザID; Password=パスワード;"
+ "Trusted_Connection=no;"
+ "Server=サーバ名;Database=データベース名";
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2004-11-10 15:25
引用:

複数データベース → 複数SQLServerです。すみません。


データベースとか言ってるから混乱するんだけど、要するに複数の SQL Server インスタンスが存在していて、既定のインスタンス以外の… つまり名前付きインスタンスに接続する方法が知りたいということかな?

であれば、非常におしいところ行ってる。名前付きインスタンスを指定するときの一意名は ComputerName\InstanceName になります。なので、あなたの書き方では \ がひとつ多いだけなんじゃないかな。

ついでに接続文字列の設定で試行錯誤する方法。デスクトップなど適当なところで、右クリックして、新規作成 -> テキストドキュメント。そして名前を test.udl に変更。(拡張子 udl なら何でも良い) test.udl をダブルクリックして実行。あとは設定をいろいろといじって「接続のテスト」が成功するまで頑張る。接続できるようになったら、test.udl をメモ帳に放り込んで接続文字列げっと。ずさっ。
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2004-11-10 15:26
引用:

SQLServer2003


ところで、この謎の製品はナニ?
サビ
会議室デビュー日: 2004/10/06
投稿数: 7
投稿日時: 2004-11-11 11:44
返信ありがとうございます。
結論から言うと、次のコネクション文字列で接続可能となりました。
=====
string connStr = "Server=ホスト名\\インスタンス名" +
";Database=データベース名" + ";UID=接続ユーザID"
+ ";PWD=ユーザIDのパスワード";
=====
・SQLServer2003 → SQLServer2000 です。慌てていました。。
・ホスト名\\インスタンス名 /が2つなのは、エスケープシーケンスです。
 プログラムのコードそのまま持ってきたので。。
・SQLEnterpriseManagerでSQLサーバグループでサーバが増えていきますが、
 これ、インスタンスというのですね。。知りませんでした。。Oracleちっく。

どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)