tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVBでSQLサーバーにMdfを登録するには
記事No4181
投稿日: 2006/09/04(Mon) 14:53
投稿者松本
いつも大変お世話になっております。

VB2005Express データーベースMSDE2000(2005ではありません)で開発しています。
作成したmdfを客先で自動でMSDE2000に登録したいのですが、
Googleなどで検索しても見つからず、投稿した次第です。

mdfをC:\Program Files\Microsoft SQL Server\MSSQL\Dataにコピーしたあと、
VB2005でMSDE2000に登録する命令を追加したいのですが、
どなた様かお分かりになるかたがいらっしゃいましたらお教え願えませんでしょうか。

またmdfは必ず、SQLサーバーのデータ専用のフォルダーにコピーしなくては
ならないのでしょうか?

MDBのように任意のフォルダーにおいておく事は不可能なのでしょうか。

お忙しい中とは存じますが何卒、よろしくお願い致します。

[ツリー表示へ]
タイトルRe: VBでSQLサーバーにMdfを登録するには
記事No4193
投稿日: 2006/09/05(Tue) 11:34
投稿者松本
申し訳ありません。
一つ漏れていたのですが、ldfもコピーはしました。

客先の方に手動で登録してもらうわけにいかず、
どうしてもこの部分は自動にしなくてはならないようです。

[ツリー表示へ]
タイトルRe^2: VBでSQLサーバーにMdfを登録するには
記事No4194
投稿日: 2006/09/05(Tue) 20:36
投稿者アグリッパ
こんばんは。
sp_attach_dbシステムストアドプロシージャを使用すれば目的を達成できると思います。
詳しい使い方については、下のリンクを参照してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/tsqlref/ts_sp_ae-az_52oy.asp

[ツリー表示へ]
タイトルRe^3: VBでSQLサーバーにMdfを登録するには
記事No4195
投稿日: 2006/09/06(Wed) 05:06
投稿者松本
アグリッパ様、有難う御座います。

リンクを参照しました。

そこにあったものを参考にVBのソースにコピーしてみたのですが、
記述の時点でエラーになってしまいます。

EXEC sp_attach_db @dbname = N'pubs',
   @filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
   @filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log

何か記述箇所が違うのでしょうか?
また、サーバーを操作するのにIDやパスワードを記述する必要はないのでしょうか?

重ね重ね申し訳ありません。

[ツリー表示へ]
タイトルRe^4: VBでSQLサーバーにMdfを登録するには
記事No4211
投稿日: 2006/09/06(Wed) 17:27
投稿者松本
お答え頂いた後に、SHELLも使って見ましたがやはりエラーでした。
自分でも、引き続き、アタッチを調べて見ます。

皆様お忙しい中、誠に申し訳ありません。

[ツリー表示へ]
タイトルRe^5: VBでSQLサーバーにMdfを登録するには
記事No4214
投稿日: 2006/09/06(Wed) 21:43
投稿者アグリッパ
こんばんは。説明が足りなかったですね。
sp_attach_dbはSQL Serverのストアドプロシージャですので、
SqlCommandクラスなどを使用してSQL Serverに対して実行してください。

[ツリー表示へ]
タイトルRe^6: VBでSQLサーバーにMdfを登録するには
記事No4217
投稿日: 2006/09/07(Thu) 09:57
投稿者松本
アグリッパ様、有難う御座います。

これで前進することができます。

[ツリー表示へ]
タイトルVBでSQLサーバーにMdfを登録するには
記事No4220
投稿日: 2006/09/07(Thu) 14:34
投稿者松本
試そうとしたのですが、大事なことを質問するのを忘れていました。

SqlCommandで記述する際にSQLサーバーに接続する必要があると思うのですが、

SqlCn = New SqlClient.SqlConnection
SqlCn.ConnectionString = "data source=SERVER01;" & _
                         "initial catalog=master;" & _
                         "user id=sa& _
                         "Password=9999& _
                         "persist security info=True;"

上記のようにいままでは接続文字を記述していたのですが、
まだアタッチしていないのでinitial catalogが指定できないと思うのですが。
 

[ツリー表示へ]
タイトルRe: VBでSQLサーバーにMdfを登録するには
記事No4225
投稿日: 2006/09/07(Thu) 22:59
投稿者アグリッパ
こんばんは。

試してみればすむことではないでしょうか?
もしやってみて例外などが発生したのならばそのエラーメッセージを
記載してください。

[ツリー表示へ]
タイトルRe^2: VBでSQLサーバーにMdfを登録するには
記事No4227
投稿日: 2006/09/08(Fri) 11:50
投稿者松本
アグリッパ様、大変ご面倒をお掛けしております。

試す前に質問してしまい、申し訳ありませんでした。

試して見たところやはりアタッチされていないので
「ログイン'masterで要求されたデータベースを開けません。ログインは失敗しました。」
というエラーになりました。

接続が出来なければSQLCommandも記述できないのでどうしても
先に進まなくなってしまいました。

データベースをアタッチするとき、SqlCommandで記述のばあい、
SQLへの接続は必須と思うのですが、記述が未だにわかりません。
Initial Catalogの部分をどうしたらよいのでしょうか?

お忙しい中、再三にわたり、誠に申し訳ありません。

[ツリー表示へ]