none
インストーラについて RRS feed

  • 質問

  • VB2003 でSQL Server2000を使用したプログラムを勉強中です。

    システム完成後、ビルド(Release)→インストーラ(セットアップウィザード)を実行し、他のパソコンにインストールを行い、実行すると、作成したメニューは表示されるのですが、データベースへのアクセス画面を指示すると、

    「アプリケーションのコンポーネントでハンドルされていない例外が・・・・

    SQL Serverが存在しないか、アクセスが拒否されました」

    のメッセージが表示されます。

    開発用のパソコンでは、インストールしたアプリは正常に動きます。

    何が悪いのかまったく分かりません、どなたかご指導をお願いします。

    尚、インストールしたパソコン(他のパソコン)にはNETFramework等必要システムはインストールしてあります。

    2006年6月23日 1:15

すべての返信

  •  田舎の爺 さんからの引用

    「アプリケーションのコンポーネントでハンドルされていない例外が・・・・

    SQL Serverが存在しないか、アクセスが拒否されました」

    のメッセージが表示されます。


    「マイクロソフト サポート オンライン」
     - 「エラー メッセージ "SQL Server が存在しないか、アクセスが拒否されました" の原因

    2006年6月23日 1:27
  • いくつか疑問点が。

    アプリケーションのインストール先にはMicrosoft SQL Serverがインストールされていますか?

     

    アプリケーションのインストール先にはインストールもとと同じデータベースがSQL Server上にインストールされていますか?

     

    可能であればConnectionオブジェクトのConnection String(接続文字列)を示してください。

    2006年7月2日 15:09
  • Ishisaka様

    返答が遅れて申し訳ございません。

    VB2003 SQLServer2000である書籍を参考にしてデータベースを勉強しております。返答になっているか分かりませんがよろしくご指導お願いします。

    「インストール先にはインストール元と同じデータベースがSQL Server上にインストールしてあるか?」ですが、返答になるか分かりませんが、(ある書籍を参考)

    「ソリューションのビルド」→「インストーラ作成(セットアップウィザードの実行)」→

    他のパソコンにインストール。

    書籍の説明では、上記の方法でシステム、実行ファイル等のインストールできると書いて(?)あるのですが?

    その他必要のあるソフト NET.Framsework Microsoft Data Access Componentsが必要と記載してあり、インストールしました。

    Connection Stringについて

    データ接続を使用しています。最初の画面作成時に、データ接続、データアダプタ、データセットを設定しました(接続のテストもOKでした)

    尚、サーバーに接続するためのログオン情報は「Windows NTの総合セキュリティを使用する」を選択しております。

    返答になっておりますでしょうか?どこをどうすれば動くのか・・・まったく分かりません。ご指導よろしくお願いします。

    2006年7月3日 1:43
  • 結局インストール先に作成されたデータベースもしくはSQL Serverそのものがインストール先に存在しないためにこのエラーが発生しています。

    書かれている内容で、インストーラを作成した場合、インストーラ自信にはSQL Serverやアプリケーションが使うデータベース自体が含まれていません。SQL Server自体はアプリケーションのインストールとは別に行う必要があるのと、当然複数のPCにインストールすればそれだけライセンスが必要になります。また、アプリケーションが使用するDB自体も何らかの方法で各SQLサーバーに配布する必要がありますね。

    というようなことでは当然やってられないし、面倒だし、RDBMSを使う意味もないので、SQL Serverは1カ所において各アプリケーションはクライアントとして使用したいわけです。こうするための基本的な修正点はSqlConnectionコンポーネントのConnectionStringの内容を修正することです。

    修正点ですが、SqlConnectionコンポーネントのConnectionStringプロパティの文字列の中に

    data source=(local)

    となっていると思いますのでこれを

    data source=ほげ←ここはSQL ServerがインストールされているPCの名前

    と変更して見ましょう。

    これでうまくいかない場合にはSQL Serverやそれがインストールされているマシンのネットワークの設定とか、Windows Firewallの設定だとか、SQL Serverの設定を見直す必要があります。Windows Firewallの設定で例外タブにてSQL Serverが例外として登録されていないようでしたら、TCP, UDPともポート1433を設定してください。

     

    #何かWindows Fire Wallが原因のような気がしてきた。

     

     

    2006年7月3日 11:30
  • 後書籍なのですが、

    SQL Serverについては

    SQL Server2000でいってみよう    DB magazine selection
    松本 美穂 (著)

    ASP.NETが主体ですが、.NET FrameworkとADO.NETプログラミングに関しては

    ASP.NETでいってみよう    DB Magazine SELECTION
    松本 美穂 (著), 百田 昌馬

    を読まれるのが良いかと思います。

    正直なところあまり出来の良くない本を読んでも遠回りしてしまうだかだと思いますので。。。

    あと、ADO.NETについてもう少しつっこんで勉強するのであれば以下がとても良いです。

    ADO.NET 専修講座 VB.NET編-Windowsデータベースプログラミング【CD-ROM付】    DB selection―Windowsデータベースプログラミング
    William R. Vaughn
    (著), 伊藤 由起子 (編集), 株式会社トップスタジオ (翻訳)

    2006年7月3日 11:37
  • ishisaka様

    大変ありがとうございました。

    ライブラリで調べても、意味不明(理解できない)のことが多く、この数週間悩んでおりました。

    早速、お教えいただいたことをやってみます。(書籍も先ほど注文をし、もう少し勉強をしたいと思っております。)

    2006年7月3日 23:31