• ベストアンサー

SQLServerのレプリケーションプログラムについて

SQLServer2005で、レプリケーションの設定を行いました。順調に動いております。今回、さらにVisual Studio(VB.NET)のプログラムにて、レプリケーションを動かしたく、いろいろ調べているところです。 マイクロソフトのサポートを見たところ、RMOなるものを使用すればよいとのこと。サンプルプログラムもあったので、みていましたが、C#のものしかありませんでした。VB.NETにて、レプリケーションを作成された方いらっしゃいますか??参考になるサイト、プログラムなど教えていただけないでしょうか??

質問者が選んだベストアンサー

  • ベストアンサー
  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.1

C#で書いてあるために、どうしてもソース解析ができないのであれば、 C#→VB.NETにConvertするツールがあります。 これで、Convertして、ご自身で解析してみては如何でしょうか? ■SharpDeveloper http://www.forest.impress.co.jp/lib/stdy/program/progeditor/sharpdevelop.html また、基本は、VB.NETだろうが、C#だろうが、同じです。 RMO自身での操作にしても、表現方法の違いだけだと思いますよ。 更に、そのC#で書かれたサンプルっていうのは、どこにあったんでしょうか?(差し支えなければ、URLを教えて下さい)

neco001
質問者

補足

回答どうもありがとうございます! http://msdn2.microsoft.com/ja-jp/library/ms161563.aspx マージ レプリケーション用サンプルを見つけたのは、ここ↑ですが、サンプル自体のインストールは、SQLServer2005のCDから行いました。 ただ、このサイトにあるように、マージレプリケーションの監視ではなく、実際は、SQL Server Management Studioで行う「再初期化」のように同期をとりたかったのです。 実は、昨日投稿後に以下のサイトを発見しました。 http://msdn2.microsoft.com/ja-jp/library/ms146910.aspx 実際の目的であるプッシュ サブスクリプションを同期する方法とあり、且つVisual Basicでもかかれており、早速試したのですが、 SQLServerで作成したユーザーでのアクセス方法が分かりませんでした。 >また、基本は、VB.NETだろうが、C#だろうが、同じです。 >RMO自身での操作にしても、表現方法の違いだけだと思いますよ。 おっしゃるとおりかと思います。 肝心なところは、一緒だと思うので、再度確認してみたいと思います。また、教えて頂いたツールにも頼ってみたいと思います。 -------------------------------------------------- ' Define the server, publication, and database names. Dim subscriberName As String = subscriberInstance Dim publisherName As String = publisherInstance Dim publicationName As String = "AdvWorksProductTran" Dim subscriptionDbName As String = "AdventureWorksReplica" Dim publicationDbName As String = "AdventureWorks" ' Create a connection to the Publisher. Dim conn As ServerConnection = New ServerConnection(publisherName) Dim subscription As TransSubscription Try ' Connect to the Publisher. conn.Connect() ' Instantiate the push subscription. subscription = New TransSubscription() subscription.ConnectionContext = conn subscription.DatabaseName = publicationDbName subscription.PublicationName = publicationName subscription.SubscriptionDBName = subscriptionDbName subscription.SubscriberName = subscriberName ' If the push subscription and the job exists, start the agent job. If subscription.LoadProperties() And Not subscription.AgentJobId Is Nothing Then ' Start the Distribution Agent asynchronously. subscription.SynchronizeWithJob() Else ' Do something here if the subscription does not exist. Throw New ApplicationException(String.Format( _ "A subscription to '{0}' does not exists on {1}", _ publicationName, subscriberName)) End If Catch ex As Exception ' Implement appropriate error handling here. Throw New ApplicationException("The subscription could not be synchronized.", ex) Finally conn.Disconnect() End Try

その他の回答 (1)

  • kero_mio
  • ベストアンサー率90% (94/104)
回答No.2

SQL Serverがインストール済みなら、 このマージレプリケーション用のC#のサンプルコードが 既にHDDにコピーされていると思いますので、 そのままSharpDeveloperというツールで、VB.NETにConvertかければ 使えそうですね。 後は、VB.NETに変換した後の解析次第かなと思います。

neco001
質問者

お礼

試行錯誤してみたいと思います。 どうもありがとうございました!

関連するQ&A