• 締切済み

【VB6】SQLServerでのエラー

自身での解決が難しそうなので、 皆様のお力をお借りしたいと思います。 環境: WindowsXP SP2 VB6 SQL Server2005 SP3 SQL Serverとアプリケーションを入れたPCがあります。 アプリケーションは入力されたデータを、SQL Serverへ登録を行います。 この環境(ローカルで完結)で、LANケーブルを抜くと、 DB操作時にエラー「-2147467259」が発生します。 SQL ServerはLANケーブルが繋がっていないと、 自身にインストールされていてもエラーになると聞いた覚えがあり納得していました。 それで質問なのですが、 SQL ServerでLANケーブルを抜いてもエラーにならないようにするのは可能でしょうか? ご存知の方がおりましたら、よろしくお願いします。

みんなの回答

  • iandt2251
  • ベストアンサー率28% (4/14)
回答No.2

SQL Server 2005 のタイプは何をインストールしましたか? クラサバ環境でなく、単体で使用するならExpress Edtion をインストールしてから standard版のクライアントに必要な機能をインストールすると Lanケーブルを接続せずに、クライアント・サーバ用に開発したソフトも 実行できると思います。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 なぜLANケーブルを抜くと接続がだめになるかと言うと、Windowsが該当するネットワークカードに対しての情報(ネットワークプロトコルスタックという)を捨てさってしまうからだ。それに対する解決策はいくつかあるがお勧めの2つを紹介しよう。 1.自分自身としか通信できない仮想ネットワークアダプタをインストールし、そちら経由で接続する。  コントロールパネル→ハードウェアの追加→はい→新しいハードウェアを追加→一覧から→ネットワークアダプタ→Microsoft→Microsoft Loopback Adapter。  これで仮想的なLANカードができあがる。これに対して169.254.1.1などの適当なIPアドレスを設定し、ネットワークのコンフィグでそちらを使って接続するようにすれば良い。ループバックなのに残念ながら127.0.0.2などのIPアドレス使えない(Windowsに怒られる)。ちなみに169.254.x.xというIPアドレスを使っても問題ないし、10.x.x.xや172.16.x.xや192.168.x.x.を使ってももちろん良い。個人的には169.254.x.xというIPアドレスを使う方が良いと思う。 2.TCP/IP以外のプロトコルを使う。  SQL Server 2005はTCP/IPの他に名前付きパイプで待ち受ける事ができる。SQL Server Configuration Manager、cliconfg.exeなどを用いて名前付きパイプのプロトコルで通信できるようにし、プログラムからはcliconfg.exeで設定した別名で接続しに行くとTCP/IPプロトコルスタックがアンロードされても影響が無くなる。