こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

【VB6】SQLServerでのエラー

自身での解決が難しそうなので、
皆様のお力をお借りしたいと思います。

環境:
WindowsXP SP2
VB6
SQL Server2005 SP3

SQL Serverとアプリケーションを入れたPCがあります。
アプリケーションは入力されたデータを、SQL Serverへ登録を行います。

この環境(ローカルで完結)で、LANケーブルを抜くと、
DB操作時にエラー「-2147467259」が発生します。

SQL ServerはLANケーブルが繋がっていないと、
自身にインストールされていてもエラーになると聞いた覚えがあり納得していました。

それで質問なのですが、
SQL ServerでLANケーブルを抜いてもエラーにならないようにするのは可能でしょうか?

ご存知の方がおりましたら、よろしくお願いします。

投稿日時 - 2011-01-23 18:58:05

QNo.6469436

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

SQL Server 2005 のタイプは何をインストールしましたか?

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

投稿日時 - 2011-01-24 01:01:07

ANo.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プロトコルスタックがアンロードされても影響が無くなる。

投稿日時 - 2011-01-24 00:12:01

あなたにオススメの質問