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

リンクサーバーについて

1
投稿者投稿内容
mm
会議室デビュー日: 2004/11/02
投稿数: 13
投稿日時: 2004-11-09 11:33
windowsXP,c#を使用して開発しています。
プログラム上で、SQLサーバにリンクサーバを設定したいと
思っています。
ストアドプロシージャーの「sp_addlinkedserver」を
使えばよいのは分かるのですが、どのようにc#上から
呼び出すのか分かりません。

どなたか、ご教授お願い致します。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-11-09 13:57
!?ヘルプに例が記載されてますよね。
http://www.microsoft.com/japan/msdn/library/ja/howtosql/ht_1_013_8ojd.asp
例を元にSystem.Data.SqlClient.SqlCommandとかで問題なく出来そうな気がするのですが。
(試してないので推測です)
mm
会議室デビュー日: 2004/11/02
投稿数: 13
投稿日時: 2004-11-09 14:27
お返事ありがとうございます。

私も、このサンプルは参照しましたが、
SQLサーバー上のストアドプロシージャーについての記述になっています。
これを別のマシンからC#のプログラムで実行させたいのですが、
C#上からストアドプロシージャーの実行する方法が分かりません。

どのように指定すれば実行できるのか、教えていただけないでしょうか?
よろしくお願い致します。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-11-09 14:49
mmさん、こんにちは。

引用:

C#上からストアドプロシージャーの実行する方法が分かりません。


ADO.NETを使用します。
詳しくは、MSDN ライブラリ「Visual Basic および Visual C# の概念」-「データへのアクセス」あたりを調べて下さい。
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2004-11-09 15:45
@IT:ADO.NET基礎講座とかも見れば理解できるかも。
mm
会議室デビュー日: 2004/11/02
投稿数: 13
投稿日時: 2004-11-09 18:02
お返事ありがとうございます。

教えていただいたサイトを参考にして
下記のようなプログラムを書きました。
----------------------------------------------------------------------------
1 public static void test()
2 {
3 string connstr="Server=motosrv;uid=testusr;password=test";
4 SqlConnection conn = new SqlConnection(connStr);
5 SqlCommand cmd = new SqlCommand();
6 cmd.CommandType = CommandType.StoredProcedure;
7 cmd.CommandText="sp_addlinkedserver";
8 cmd.Parameters.Add("@server", SqlDbType.VarChar).Value = "testsrv";
9 cmd.Parameters.Add("@srvproduct", SqlDbType.VarChar).Value = "SQL Server";
10
11 conn.Open();
12 cmd.ExecuteNonQuery();
13 conn.Close();
14 }
----------------------------------------------------------------------------

これを実行すると、次のようなエラーが出ます。
----------------------------------------------------------------------------
System.InvalidOperationException' のハンドルされていない例外が
system.data.dll で発生しました。
追加情報 : ExecuteReader: Connection プロパティは初期化されていません。
----------------------------------------------------------------------------

このエラーを検索すると、Connection の文字列が正しくないのでは、
と記述されていますが、接続文字列は3行目で指定しているように
サーバ名、ユーザ名、パスワードです。
他に指定しなくてはいけない項目があるのでしょうか?

また、このプログラムで11行目で「ExecuteNonQuery」を使用していますが、
ここで、これを使用するのは正しいでしょうか?

どうか、ご教授をお願いします。
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-11-09 18:27
cmd.Connection = conn;

を追加してください。作成したコネクションはコマンドに関連付ける必要があります。

#そうか、SQLの発行がわからなかったのか…。
mm
会議室デビュー日: 2004/11/02
投稿数: 13
投稿日時: 2004-11-10 10:22
お返事ありがとうございます。
無事、リンクサーバの設定ができました。
ありがとうございました。
1

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