プロが教えるわが家の防犯対策術!

現在、ASPとDBのServerは同じPCで動かしています。
それを、別々にしたいのですが、うまくいきません。
どうやらASPのServerからDBのServerへの接続ができていないようです。
こういう場合には、なにか特別なことをしなければならないのでしょうか?
よろしくお願いしますm(_ _)m

A 回答 (2件)

WEBサーバーからDBサーバーに単純に接続できないのか、クライアントからDBサーバーに接続できないのか、2通りに質問の意味がとれるのですが・・・



まず、WEBサーバーからDBサーバーの操作ができないとしたら、まずWEBサーバーにDB操作用のクライアントソフトがインストールされているかを確認します。
次に、ODBCドライバーが入っているか、システムDSNに接続の設定がされているかを確認します。

そこで、WEBサーバーからDBサーバーをDB操作用クライアントソフトを使用して接続できる状態になったとします。

後は、クライアント(WEBブラウザ)からDB操作ができるようにする訳ですが、いくつかの方法が考えられます。
(1)IISインストール時に自動的にインストールされるIDC機能を利用する。
(2)ASPページから、WEBサーバーに設定されたシステムDSNを利用する。
(3)ASPページから、ADOを利用する。

(1)拡張子「.idc」を持つファイルを作成し、HTMLページなどからデータをそのページに送信し結果を「○○.html」などに表示する方法です。cgiのイメージに近いと思います。
<HTML>
<BODY>
<FORM method="post" Action="test.idc">
<INPUT type="text" name="text1">
</FORM>
</BODY>
</HTML>
*********ここまでHTMLページ**********
Datasource:システムDSN名
Templete:○○.htx
SQLStatement:
+INSERT INTO テーブル名(フィールド名)
+VALUES ('%text1%')
*********ここまでidcファイル*********
<HTML>
<BODY>
追加しました。
</BODY>
</HTML>
*********ここまで○○.html***********

(2)DBをOpenする際に、"Server=サーバー名;DSN=システムDSN名;UID=ユーザーID;PWD=パスワード;"という文字列を記述して接続する方法です。
これを利用するくらいであれば、(3)の方法の方が動作が速いし、扱いやすいと思うので、詳しい説明は省略します。

(3)ADOを利用する方法ですが、global.asaにApplication変数を設定したほうが後々のメンテがしやすいのでお勧めします。
オラクルの例です。ADOはマイクロソフトが提供するDB接続用のActivXです。

Sub Application_OnStart
Application("test")= "Provider=MSDAORA.1;Password=パスワード;User ID=ユーザーID;Data Source=DBサーバー名"
End Sub
*********ここまでglobal.asa***********

<%@ Language=VBScript %>
<%
Set OraDB = Server.CreateObject("ADODB.Connection")
OraDB.Open Application("test")
<HTML>
<BODY>
<%
OraDB.Excute(SQL文)
%>
</BODY>
OraDB.Close
Set OraDB=nothing
</HTML>
*********ここまで○○.asp***********

オラクルの例ですが、他のDBでも変数を変えることで利用可能です。
参考URLをみてください。

参考URL:http://www.microsoft.com/japan/developer/library …
    • good
    • 0

はっきりしたことは分かりませんが、DBへの接続で認証がうまくいっていないのではないでしょうか?


DBの種類にもよりますが、NT、2000に認証を任せているときは、そのあたりが引っかかっている可能性があります。

OS、DBの種類と、DBの認証方法を書いていただくと、詳しい回答ができると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!