- - PR -
C++でのSQLサーバのリモートアクセスの方法について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-14 16:06
お世話になっています。
2台のPCで、データベースを持っているPC-AにクライアントのPC-Bがアクセスして、 データを取得しようと考えています。 PC-AはSQL Serverでデータを管理していて、ODBCを用いてPC-A自身がデータを取得するには、 HRESULT hr; hr = pConnection.CreateInstance( __uuidof( Connection ) ); hr = pConnection->Open( _bstr_t(L"Provider=MSDASQL.1; DSN=MySQLServer;"), _bstr_t(L"sa"), _bstr_t(L"PASSWD"), adModeUnknown); pRecordSet = pConnection->Execute(bstrQuery, &vRecsAffected, adOptionUnspecified); によって、データベースにアクセスしてデータを取得することができているのですが、 これを別マシンであるPC-BがODBCを利用しないでPC-Aのデータベースにアクセスして、 データを取得するにはどのようにしたらよろしいでしょうか?。 (SQL Serverのアカウント情報はsa/PASSWDでアクセスしたいデータベースはMyDataBaseです。また、OSは共にXPです。 ) hr = pConnection->Open( _bstr_t(L"Provider=MS Remote; Remote SERVER=http://192.168.1.10; DATABASE=MyDataBase; UID=sa; PWD=PASSWD;"), _bstr_t(L"sa"), _bstr_t(L"PASSWD"), adModeUnknown); pRecordSet = pConnection->Execute(bstrQuery, &vRecsAffected, adOptionUnspecified); 以上のようなコードで試したところ、Executeしようとしたら「インターネットサーバエラーです。」と 処理ができませんでした。もちろん存在・稼動しているアドレスやデータベースを指定しています。 ですが、オプションがおかしかったり、足りない記述などがあるのでしょうか? ちなみに以下のサイトから参考にしました。 http://www.eonet.ne.jp/~nakanishia/Hidetaka/Software/VC/DataBase/ADO/index.htm | ||||
|
投稿日時: 2005-10-14 17:40
WIN 2000 Server ではお世話になりました 間違っていたらごめんなさい なのですが ODBCを使用しない場合は プロバイダ文字列 "Provider=MS Remote" は必要ないと思います サーバー名とDB名 と接続セキュリティ情報の指定でよいと思います "workstation id=xxxxxxx;packet size=4096;" & _ "user id=sa;password=PASSWD;data source=サーバー名;" & _ "persist security info=True;initial catalog=MyDataBase" workstation id はいらないと思います サーバー名はコンピュータ名しか使用したことしかないのですが アドレスでもOKだと思います .NETから持ってきた文なので、多少構文が違うかもしれませんが ためしてみてください | ||||
|
投稿日時: 2005-10-17 20:39
返事遅れてしまってスミマセン。
七さんのおかげでアクセスすることができました。 initial catalog=MyDataBase などのキーワードが決め手になりました。 workstation idは確かに使わなくてすみました。 お世話になりました。ありがとうございます。 |
1