重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

よろしくお願いします。
マイクロソフトアクセスのデータベースを対応したサーバーにアップロードしたところ、ローカルでは動いていたのですが、サーバー上では、動かなくなりました。その時のJavascriptファイルを書きます。

var database;

onload = init;
onunload = dbClose;

function init() {
document.getElementById("txtPrefCd").onblur = function (){blur(this);}
document.getElementById("txtPrefCd").onfocus = function (){focus(this);}
document.getElementById("txtPrefName").onblur = function (){blur(this);}
document.getElementById("txtPrefName").onfocus = function (){focus(this);}

dbConnect();
dataDisp();
}

//データベースに接続
function dbConnect() {
database = new ActiveXObject("ADODB.Connection");
database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ="
& Server.MapPath("/hogehoge/db/SampleDB010.mdb");
alert("データベースに接続しました。");
}

//データベースを切断
function dbClose() {
database.Close();
database = null;
alert("データベースを切断しました。");
}

function focus(obj){
obj.style.backgroundColor = "#ffff00";
}

function blur(obj){
obj.style.backgroundColor = "#ffffff";
}


//データ表示
function dataDisp() {

var mySql = "select * from T01Prefecture order by PREF_CD";
var recordSet = database.Execute(mySql);

var tempHtml="";
document.getElementById("disp").innerHTML = "";
while (!recordSet.EOF){
tempHtml = tempHtml + recordSet(0) + ":" + recordSet(1) + "<br />";
recordSet.MoveNext();
}
document.getElementById("disp").innerHTML = tempHtml;
recordSet.Close();
recordSet = null;
/**/
}

以上です。

どうも、データベースに接続のところがうまくいきません。

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
strConnection = "DRIVER=Microsoft Access Driver(*.mdb);DBQ="
& Server.MapPath("/USERNAME/db/yourdatabase.mdb")
Conn.Open(strConnection)

としても、

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath ("/YourUSERNAME/db/yourdatabase.mdb") & ";"
Conn.Open

としても、ダメでした。

どうすればよいのか分からないので、どこをどうすればよいのか、どなたかご教授願います。
よろしくお願いします。

A 回答 (5件)

>ふと思ったのですが、だんだん私の最初の質問から離れていくように感じるのですが、私だけでしょうか。



離れていっていません。
そもそもどこで動作してるのか把握してないこと自体問題なんですけど。

valoxさんの書かれているjavascriptはブラウザ上で動作するものであってWebサーバー上で動作するものではないです。
Webサーバー上にもっていったところで実行される際にはブラウザにロードされて実行されています。
ですのでWebサーバー上で動作させるには(今回はおそらくWebサーバーはIISなので)ASPで書き直してください。
ASP JScript
で調べると書き方が違うのがわかると思います(イメージ的にはphpを想像すればわかりやすいかと思います)
    • good
    • 0
この回答へのお礼

おはようございます。
回答くださったものを読んで、そうだったのか、と、目からうろこが落ちる気分でした。
てっきり、javascriptで、かけてしまうものだと思っていました。サーバ上では、phpを使ったときに、例外処理に使ったのですが、おんなじように考えていました。ASPを勉強すればよいということがわかりました。ありがとうございました。

すると、別に疑問がわいてきました。Javascriptは、必要な言語なのだろうかということです。根本的に、サーバ上では、javascriptは、手直し程度しか使えないということでしょうか。

よろしくお願いいたします。

お礼日時:2012/10/10 06:45

>「確認のメッセージ」とは


>これは、ブラウザが、javascriptを実行してよいかどうかの、確認のことです。

それはブラウザで実行されるjavascriptがあるから確認されてるのだと思いますが。

質問で書かれているjavascriptは
<script type="text/javascript">

</script>

<script type="text/javascript" src="javascriptの書かれたファイル名">
</script>
のようになってたりしませんか?

この回答への補足

>のようになってたりしませんか?
なっています。

ふと思ったのですが、だんだん私の最初の質問から離れていくように感じるのですが、私だけでしょうか。

よろしくお願いいたします。

補足日時:2012/10/10 00:18
    • good
    • 0

>はい、無効にしても動きます。

確認のメッセージが出ますが。

「確認のメッセージ」とは

>alert("データベースに接続しました。");
>alert("データベースを切断しました。");

この2つの事ですか?
またブラウザのjavascriptを無効化は具体的にはどうされたんでしょうか?

ソースを見る限りサーバーサイドjavascriptでは使わなそうな関数などがあるのでサーバサイドーjavascriptではないと思うんですけど。
alert(),onload,onunload,onblur,onfocusなど。

この回答への補足

「確認のメッセージ」とは
これは、ブラウザが、javascriptを実行してよいかどうかの、確認のことです。

あとはよくわかっていません。

サーバーにアップロードするときに、アクセスのデータベースだと書くべきだとされている、文言を書いただけです。

すいません。

補足日時:2012/10/09 07:43
    • good
    • 0

>サーバ上にアップロードしています。

のでWebサーバ上です。

サーバー上にアップロードされている=Webサーバ上で動作する ではありません。
アップロードされてるからとかではなくて(それも勉強のうちだと思って)ちゃんとどこで動作しているのか確認してください。

いろいろなサイトでjavascript使われていると思いますけど、それらjavascriptがwebサーバ上で動作しているのならIEなどのブラウザのjavascript機能を無効にしても動くということですよね。

この回答への補足

>IEなどのブラウザのjavascript機能を無効にしても動くということですよね。

はい、無効にしても動きます。確認のメッセージが出ますが。

補足日時:2012/10/09 06:12
    • good
    • 0

そのjavascriptはどこで動いてるんですか?



>Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
>Server.MapPath ("/YourUSERNAME/db/yourdatabase.mdb") & ";"

上記で得られるmdbファイルのパスはjavascriptが動作してるPC(?)上のパスのような気がしますけど。

この回答への補足

回答くださりありがとうございます。お世話になっております。
>そのjavascriptはどこで動いてるんですか?
サーバ上にアップロードしています。のでWebサーバ上です。

>上記で得られるmdbファイルのパスはjavascriptが動作してるPC(?)上のパスのような気がしますけど
Server.MapPath ("/YourUSERNAME/db/yourdatabase.mdb") & ";"
で指定しているので、ローカルではないと思います。というのは、この書き方は、そのサーバのQ&Aにあったものを、そのまま持ってきたものです。

Webのほうは、本当に初心者なので、これ以上何を書けばよいのかわかりません。おかしなところがあれば、ご指摘ください。

よろしくお願いいたします。

補足日時:2012/10/08 23:33
    • good
    • 0

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