- PR -

多数のユーザへのアプリ配布について

1
投稿者投稿内容
reiko
ベテラン
会議室デビュー日: 2004/11/19
投稿数: 84
投稿日時: 2007-05-16 13:33
いつもお世話になります。
VisualStudio2005(VB)で作成したWindowsアプリを
それぞれ設置場所の違う端末約50台にインストールしなければなりません。

そこでClickOnceを使用して、ユーザさんにネットを利用して
自分でインストールしてもらおうと考えています。
アプリは画面2つの小さいプログラムです。

このプログラムはローカルのSQLServerを利用します。
必須コンポーネントでSQL Server 2005 Express Editionをチェックしておき、
SQLServerがインストールされていない端末はSQL Server 2005 Express Editionを
インストールしてもらおうと思っています。

問題は
「プログラムで使用するDBやテーブルをどうやってSQLServerに作成しようか?」
というところです。

クリエイト文を実行するバッチプログラムを作って、
ClickOnceでのインストールとは別にこのプログラムをダウンロード、
実行してもらう方法しか自分では思いつかなかったのですが、
ソリューションにバッチプログラムを追加するなどして、
ClickOnceの機能を使用した簡単な配布方法があったりして・・・なんて、
かすかな希望を抱いています。
(うーーん・・・。でも、この場合、ユーザ/PWDがまったく同じDBA権限のユーザが
   各端末に存在する前提でないと無理なんですかね・・・。)

このような場合、みなさんはどのようにしてアプリを配布しますか?
アドバイスをよろしくお願い致します。



Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2007-05-16 14:16
諸農です。

試していないのですが、mdfを一緒に配布はできなかったでしょうか。

SQL Server 2005 Books Online
Xcopy 配置 (SQL Server Express)
http://msdn2.microsoft.com/ja-jp/library/ms165716.aspx

#リンクを追記
_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/

[ メッセージ編集済み 編集者: Jubei 編集日時 2007-05-16 14:21 ]
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-05-16 14:38
> 必須コンポーネントでSQL Server 2005 Express Editionをチェックしておき、
> SQLServerがインストールされていない端末はSQL Server 2005 Express Editionを
> インストールしてもらおうと思っています。

この状態であれば、VS2005でアプリケーション内に作成したmdfファイルはそのまま
配布できると思います。
デフォルトのままなら、このmdfファイルはログインしているユーザの権限で動きます。
reiko
ベテラン
会議室デビュー日: 2004/11/19
投稿数: 84
投稿日時: 2007-05-16 16:59
諸農さん、どっとねっとふぁんさん、早速のご回答有難うございます。
mdfファイルをプロジェクト内に追加する事で、
インストールファイル内にDBを含める(?)事が出来ました。

本当に有難うございました。
とても助かりました。
今後ともよろしくお願いいたします。
未記入
会議室デビュー日: 2007/05/16
投稿数: 3
投稿日時: 2007-05-16 22:31
1回だけの配布ならmdf配布でもいいけど、列追加とか変更あったときのこと考えると、
違う手段のほうがいい気がするが・・・まあいいのか

reiko
ベテラン
会議室デビュー日: 2004/11/19
投稿数: 84
投稿日時: 2007-05-17 09:48
未記入さん、ありがとうございます。

引用:

未記入さんの書き込み (2007-05-16 22:31) より:
1回だけの配布ならmdf配布でもいいけど、列追加とか変更あったときのこと考えると、
違う手段のほうがいい気がするが・・・まあいいのか



うっ・・・なるほど。
たしかにおっしゃるとおりです。
早速試してみました。

1回目、テーブルにデータがある状態で発行処理をし、インストール。
2回目、テーブルのデータをクリアして発行処理をし、インストール。

結果、2回目の起動時には、データがクリアされた状態になっていました。

・・・と、言う事は、DBも2回目に発行した状態で上書きされるという事ですね。。。
テーブルレイアウト変更の反映という意味ではこれでOKな気がしますが、
今まで登録していたデータが消えてしまうのは困ってしまいますね(>_<)

何らかの方法を考えなくてはいけませんね。
もし何かアドバイスがありましたらよろしくお願い致します。
イシバシ
常連さん
会議室デビュー日: 2007/02/06
投稿数: 20
お住まい・勤務地: 浦安の隣
投稿日時: 2007-05-17 10:12
使用するデータベースのバージョンをチェックして、
古いバージョンだったら適切な変更(Alter Tableとか)を行う
といったクラス(かクラスライブラリ)をアプリに組み込んで、
起動時にチェックさせちゃう っていうのはどうでしょう。

ClickOnceにさほど詳しくないので、パッ と思いついたのが
こんな程度ですが。
reiko
ベテラン
会議室デビュー日: 2004/11/19
投稿数: 84
投稿日時: 2007-05-17 11:03
イシバシさん、回答ありがとうございます。
なるほど!それも良い考えですね♪
早速試してみます。
ありがとうございました!
1

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