|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
Server.Executeについて
はりさん
[2002/01/22 11:08:14]
[1475]
|
Re:Server.Executeについて
Tomitomiさん
[2002/01/22 11:28:17]
[1476]
Re:Server.Executeについて
arikさん
[2002/01/22 13:12:22]
[1478]
Re:Server.Executeについて
はりさん
[2002/01/22 13:31:42]
[1479]
Re:Server.Executeについて
arikさん
[2002/01/22 13:50:57]
[1480]
Re:Server.Executeについて
はりさん
[2002/01/22 14:58:11]
[1481]
Re:Server.Executeについて
arikさん
[2002/01/22 15:07:35]
[1483]
Re:Server.Executeについて
Tomitomiさん
[2002/01/22 15:10:14]
[1484]
ありがとう ございました
はりさん
[2002/01/22 18:13:18]
[1488]
|
| [1475] Server.Executeについて |
| 投稿者:はりさん 2002/01/22 11:08:14 |
| はじめまして!! 今 実行ページとは別に使用するサブルーチンを格納したASPを用意しています。 親ページ(メイン)から子ページ(サブルーチンが入ってるページ)を 呼び出す際に「Server.Execute」を使用し子ASPファイルが親ASPの中にあるかのしようと思っています。Executeを定義した後でサブルーチンを呼び出すと「型が一致しません」とエラーになってしまいます。 これらのサブルーチンは、親ASPファイルの中に書いた時は、正常に動作しています。どうしてこのようなことが起こるのかわかる方がいましたらアドバイスを下さい。よろしくお願いします。 |
| [1476] Re:Server.Executeについて |
| 投稿者:Tomitomiさん 2002/01/22 11:28:17 |
| こんにちは、Tomitomiです。 > 今 実行ページとは別に使用するサブルーチンを格納したASPを用意しています。 > 親ページ(メイン)から子ページ(サブルーチンが入ってるページ)を > 呼び出す際に「Server.Execute」を使用し子ASPファイルが親ASPの中にあるかのしようと思っています。Executeを定義した後でサブルーチンを呼び出すと「型が一致しません」とエラーになってしまいます。 > これらのサブルーチンは、親ASPファイルの中に書いた時は、正常に動作しています。どうしてこのようなことが起こるのかわかる方がいましたらアドバイスを下さい。よろしくお願いします。 僕は、「Server.Execute」なるものを使ったことなかったのですが、 調べてみると、SSIの「include file」と似てますね。 「Server.Execute」のお答えは詳しい人にお任せするとして、 僕のいつも使う代用として、include fileを書いときます。 <!--#include file="インクルードファイルまでのパス"--> インクルードファイルはテキストファイルであればなんでもいいです。 インクルードファイルは宣言した部分にそのファイルを継ぎ足します。 またこれは、ASP領域ではなくHTML領域に書いてください。 例: インクルードファイルの中身 <% function b(aa) b=aa end function %> ASPファイルの中身 <!--#include file="インクルードファイルまでのパス"--> <%=b("123")%> のような形で、書く。 実際は、 <% function b(aa) b=aa end function %> <%=b("123")%> このような形で動いている。 |
| [1478] Re:Server.Executeについて |
| 投稿者:arikさん 2002/01/22 13:12:22 |
| Server.Executeは呼び出したページ自体をサブルーチンであるかのように扱います。 呼び出し元の出力に呼び出したページの出力をつなげていくだけです。 ですから、呼び出し元から呼び出したページの中の関数を呼ぶことはできません。 お望みの動作を希望するのならTomitomiさんのincludeを使用してください。 Server.Executeはincludeに似てはいますが、どちらかというとResponse.Redirectにとってかわるものです。 ちなみにServer.Transferは呼び出し元に処理を返しません。 |
| [1479] Re:Server.Executeについて |
| 投稿者:はりさん 2002/01/22 13:31:42 |
| 返信ありがとうございます。 私が思っていたのは、 例) ----a.asp------ <%@language="vbscript"> <html> <head> <title>----</title> <body> <% server.execute("b.asp") %> </body> </html> -----b.asp-------- <% sub abc 処理内容 end sub %> 結局 Executeメソッドが呼ばれると呼び出し元のa.aspのファイルの内容が下記のようになると思っていました。 ----a.asp と b.asp------ <%@language="vbscript"> <html> <head> <title>----</title> <body> <% sub abc 処理内容 end sub %> </body> </html> 本を参照した際、私は、このように認識をしたのですが・・・ 実際には、こんな感じにはならないのでしょうか? arikさんの記述してある内容もこんな感じではないのですか?? たびたびすいませんが、この辺をもう少し詳しく知りたいと思います。 出来ればもう少し知識を分けてもらえませんでしょうか?? お願いします。 |
| [1480] Re:Server.Executeについて |
| 投稿者:arikさん 2002/01/22 13:50:57 |
| 処理の流れの順番としてならそのイメージはあっています。 しかし、Server.Executeで呼び出したページはそのページのみで完結して処理をします。(POSTデータは呼び出し元から引き継ぎますが) 呼び出し元からは呼び出したページの中の変数、関数は利用できません。 ただ、そのページの処理の結果は続けて出力されます。 a.aspとb.aspが合わさったイメージではなく、それぞれは個別であってb.aspの処理結果のみがa.aspの中に取り込まれるイメージです。 includeはスクリプトの処理より先に処理されますから、 処理の流れも処理する場所もまさにはりさんのイメージどおりになります。 |
| [1481] Re:Server.Executeについて |
| 投稿者:はりさん 2002/01/22 14:58:11 |
| ありがとうございました。 やっと理解できました。 もう一つ質問をしてもいいですか? --- con.asp ----- sub conne dim objcon set objcon = server.createobject("ADODB.connection") 以下に接続処理 end sub --- main.asp ---- <!--include file="con.asp"--> call conne 接続情報が入っているobjconを呼び出した後で メインのASPファイルに変数情報を引き継ぎたい場合は、どのようにすればいいですか?? こんな質問ですいません・・・ なにぶん初心者もので・・・ よろしければ解答お願いします. |
| [1483] Re:Server.Executeについて |
| 投稿者:arikさん 2002/01/22 15:07:35 |
| 単純に解決するのなら。 con.aspの を削除。 main.aspの頭に > dim objcon を追加。 先ほどのイメージのとおりです。 sub conneはincludeによってmain.aspの中のほかの関数とまったく同等の扱いとなります。 その場合、変数のスコープをよく理解してください。 がんばってください。 |
| [1484] Re:Server.Executeについて |
| 投稿者:Tomitomiさん 2002/01/22 15:10:14 |
| こんにちは、Tomitomiです。 > もう一つ質問をしてもいいですか? > --- con.asp ----- > sub conne > dim objcon > set objcon = server.createobject("ADODB.connection") > 以下に接続処理 > end sub > > --- main.asp ---- > <!--include file="con.asp"--> > call conne > > 接続情報が入っているobjconを呼び出した後で > メインのASPファイルに変数情報を引き継ぎたい場合は、どのようにすればいいですか?? > こんな質問ですいません・・・ なにぶん初心者もので・・・ > よろしければ解答お願いします. include fileを使う場合、あまりメインとか親とか子とか考えないほうがいいです。 includeを宣言した場所にそのファイルの内容が挿入されるので、人間の目で見ると2つのファイルですが、 機械的?には1つのファイルになります。 ということは、 変数情報を引き継ぎ。ということもなく、「con.asp」で宣言した変数は、 「main.asp」でも使えます。 わかるかな?説明へたですみません。 そこでソースから判断すると、 「objcon」の宣言が、サブルーチン内で宣言されてますよね? この場合、サブルーチン内で完了してしまうため、もちろんmain.aspでも使えません。 答えとしては、 '--- con.asp ----- dim objcon sub conne set objcon = server.createobject("ADODB.connection") 以下に接続処理 end sub こうしましょう。 |
| [1488] ありがとう ございました |
| 投稿者:はりさん 2002/01/22 18:13:18 |
| 丁寧に説明していただきありがとうございました。 実行した結果 うまくいきました |
|
TreeBBS For ASP V.0.1.3 |