- PR -

DTS ActiveX スクリプトでserver name,,

1
投稿者投稿内容
スンパ
ベテラン
会議室デビュー日: 2005/05/23
投稿数: 85
投稿日時: 2006-07-07 12:54
宜しくお願い致します。

DTSのActiveXスクリプトタスクで、次のようにコードを書きましたが、
***部分で、『[SQL-DMO]このサーバーオブジェクトは接続されていません。』とのエラーになります。
なんとなく原因はわかりましたが、サーバー名を取得できる方法はないでしょうか?
サーバー名をスクリプトで取得したあと、そのサーバーへ接続し、SQL文を投げるような処理をしようとしています。


Dim oServer 'DMO Server object.
Dim oResult 'Result set.

Set oServer = CreateObject("SQLDMO.SQLServer")
oServer.LoginSecure = True

set oResult = oServer.Databases("master").ExecuteWithResults("select @@servername ") '***
sParamValue = oResult.GetColumnString (1,1)

oServer.Connect sParamValue
   ...
...


ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-08 13:57
こんにちは。

SQLDMO.SQLServer オブジェクトConnect メソッド は T-SQL を投げる前に実行しないといけないんじゃないでしょうか。

引用:

サーバー名をスクリプトで取得したあと、そのサーバーへ接続し、SQL文を投げるような処理をしようとしています。


そのサーバーの名前をクエリで取得するためには、まずそのサーバーに接続しないといけません。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-08 15:40
ueです。
ListAvailableSQLServers メソッド を利用して SQL Server のインスタンスの一覧を取得するスクリプトを書いてみました。
参考になれば良いですが。

コード:

Dim oApplication 'SQLDMO.Application
Dim oNameList 'SQLDMO.NameList
Dim oName '名前が入る

Set oApplication = CreateObject("SQLDMO.Application")
Set oNameList = oApplication.ListAvailableSQLServers()

For Each oName In oNameList
msgbox oName
Next

oApplication.Quit
Set oApplication = Nothing



*修正
スクリプトの余計な変数宣言を削除しました
_________________
上本亮介 (ue)
Microsoft MVP for Microsoft Office System - Microsoft Office System
(Jul 2006 - Jun 2007)
Hello Another World!

[ メッセージ編集済み 編集者: ue 編集日時 2006-07-09 01:05 ]
1

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