出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
[5196] ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/22 11:22:01 |
初めて投稿するASP歴1ヶ月程度の者です、お願いします。 「ボタンが押されたらDB処理をする」ということを実現したいのですが うまくいきません。ソースは以下の通りです。 <%@ LANGUAGE=vbscript LCID=1041 %> <% Option Explicit %> <!--#INCLUDE FILE="TestFunc.asp"--> <HTML> <BODY> 省略 </BODY> </HTML> <SCRIPT LANGUAGE="VBScript" EVENT = "onClick" FOR = "Button"> <!-- Dim sqlTxt,rs sqlTxt = "select * from 在庫 " set rs = RSOpen(sqlTxt) ※ここでエラーになります --> </SCRIPT> +++++++++以下はTestFunc.aspにある関数++++++++ Function RSOpen(mySQL) Dim rs Set rs = Server.CreateObject("ADODB.Recordset") rs.open mySQL,DBConn(0) Set RSOpen = rs End Function Function DBConn(num) Dim objConn2,strConn strConn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;" & _ "Initial Catalog=" & "Test" & ";Data Source=" & "testserver" Set objConn2 = Server.CreateObject ("ADODB.Connection") objConn2.ConnectionString = strConn objConn2.Open Set DBConn2 = objConn2 End Function BODY内部に<%%>でset rs = RSOpen(sqlTxt)を書き込めば 問題なく動作しますが、VBScruptすると駄目みたいです。 ボタンが押されたらリセットするというような機能を実現したく、 onClickをやってみたのですが…。 教えて下さい、お願いします。 |
[5198] Re:ボタンが押されたらDB処理したい |
投稿者:YasNet(管理人)さん 2005/08/22 12:45:57 |
こんにちは YasNet(管理人)です。 以下は、クライアント処理とサーバー処理を考えると理解できると思うのですが 混同しておられないでしょうか? エラーの箇所は、クライアントで動作していませんか? あとエラーが発生と有りますが、どんなエラーが出たのでしょうか 出先で時間が無いので、冷たい文面で失礼します。 それでは 失礼致します。 > 初めて投稿するASP歴1ヶ月程度の者です、お願いします。 > > 「ボタンが押されたらDB処理をする」ということを実現したいのですが > うまくいきません。ソースは以下の通りです。 > > <%@ LANGUAGE=vbscript LCID=1041 %> > <% Option Explicit %> > <!--#INCLUDE FILE="TestFunc.asp"--> > > <HTML> > <BODY> > 省略 > </BODY> > </HTML> > <SCRIPT LANGUAGE="VBScript" EVENT = "onClick" FOR = "Button"> > <!-- > Dim sqlTxt,rs > > sqlTxt = "select * from 在庫 " > set rs = RSOpen(sqlTxt) ※ここでエラーになります > --> > </SCRIPT> > > +++++++++以下はTestFunc.aspにある関数++++++++ > Function RSOpen(mySQL) > Dim rs > Set rs = Server.CreateObject("ADODB.Recordset") > > rs.open mySQL,DBConn(0) > Set RSOpen = rs > End Function > > Function DBConn(num) > Dim objConn2,strConn > > strConn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;" & _ > "Initial Catalog=" & "Test" & ";Data Source=" & "testserver" > > Set objConn2 = Server.CreateObject ("ADODB.Connection") > objConn2.ConnectionString = strConn > objConn2.Open > Set DBConn2 = objConn2 > > End Function > > BODY内部に<%%>でset rs = RSOpen(sqlTxt)を書き込めば > 問題なく動作しますが、VBScruptすると駄目みたいです。 > ボタンが押されたらリセットするというような機能を実現したく、 > onClickをやってみたのですが…。 > 教えて下さい、お願いします。 |
[5199] Re:ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/22 13:17:27 |
管理人さん、ありがとうございます。 クライアント処理とサーバー処理と聞いて調べました。 スクリプトはクライアント側とサーバー側で動作するという ことに気が付いていませんでした。 <SCRIPT LANGUAGE="VBScript" EVENT = "onClick" FOR = "Button" RUNAT = "Server"> このように「RUNAT = "Server"」を追加し、 サーバー側で動作するように 修正したところ、正常に動作しました。 あっ、<!-- -->は不要でした。 非常に助かりました!本当にありがとうございます!! また教えて下さい。 > こんにちは YasNet(管理人)です。 > > 以下は、クライアント処理とサーバー処理を考えると理解できると思うのですが > 混同しておられないでしょうか? > > エラーの箇所は、クライアントで動作していませんか? > > あとエラーが発生と有りますが、どんなエラーが出たのでしょうか > > 出先で時間が無いので、冷たい文面で失礼します。 > > それでは 失礼致します。 > > > 初めて投稿するASP歴1ヶ月程度の者です、お願いします。 > > > > 「ボタンが押されたらDB処理をする」ということを実現したいのですが > > うまくいきません。ソースは以下の通りです。 > > > > <%@ LANGUAGE=vbscript LCID=1041 %> > > <% Option Explicit %> > > <!--#INCLUDE FILE="TestFunc.asp"--> > > > > <HTML> > > <BODY> > > 省略 > > </BODY> > > </HTML> > > <SCRIPT LANGUAGE="VBScript" EVENT = "onClick" FOR = "Button"> > > <!-- > > Dim sqlTxt,rs > > > > sqlTxt = "select * from 在庫 " > > set rs = RSOpen(sqlTxt) ※ここでエラーになります > > --> > > </SCRIPT> > > > > +++++++++以下はTestFunc.aspにある関数++++++++ > > Function RSOpen(mySQL) > > Dim rs > > Set rs = Server.CreateObject("ADODB.Recordset") > > > > rs.open mySQL,DBConn(0) > > Set RSOpen = rs > > End Function > > > > Function DBConn(num) > > Dim objConn2,strConn > > > > strConn = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;" & _ > > "Initial Catalog=" & "Test" & ";Data Source=" & "testserver" > > > > Set objConn2 = Server.CreateObject ("ADODB.Connection") > > objConn2.ConnectionString = strConn > > objConn2.Open > > Set DBConn2 = objConn2 > > > > End Function > > > > BODY内部に<%%>でset rs = RSOpen(sqlTxt)を書き込めば > > 問題なく動作しますが、VBScruptすると駄目みたいです。 > > ボタンが押されたらリセットするというような機能を実現したく、 > > onClickをやってみたのですが…。 > > 教えて下さい、お願いします。 |
[5202] Re:ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/22 15:10:51 |
再び参上です。 先程解決できたと思ったのですが、「ボタンが押されたら処理する」 という肝心なところができていませんでした。 先程のままですと、ボタンを押す前に(ページ表示時に)処理が 実行されてしまいます。(涙) 今、実現したいことは、 1.ページ表示(下のDB処理は実行しないこと) 2.「リセット」ボタンを押す 3.サーバー側でDB処理(リセット処理)を行う ということです。サーバー側ということなので RUNAT = "Server"を追加しましたが、 そうするとボタンのOnClickで動作しなくなります。 ボタンのOnClickというイベントでサーバー側の処理を 行うことはできないのでしょうか? ちょっと混乱しています。 どうか宜しくお願いします。 |
[5204] Re:ボタンが押されたらDB処理したい |
投稿者:morさん 2005/08/22 16:20:44 |
こんにちは。 とりあえず、DB処理のところを関数化(サブプロシージャ?)してください。 で、その関数をボタンの onClickイベントなどで呼んであげれば目的の動作ができそうです。 |
[5205] Re:ボタンが押されたらDB処理したい |
投稿者:食事睡眠ありなみん?さん 2005/08/22 16:46:05 |
発言者により削除されました!! |
[5206] Re:ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/22 16:51:56 |
morさん、ありがとうございます。 アドバイスの通り、関数ResetJobを作成し、以下のようにしました。 <input name="Button1" type="BUTTON" OnClick='ResetJob()' value="リセット")> <SCRIPT LANGUAGE="VBScript" runat="server"> Sub ResetJob() 省略 End Sub </SCRIPT> これでもうまくいきません。 onClickイベントでResetJob関数を呼び出したいです(涙) > こんにちは。 > > とりあえず、DB処理のところを関数化(サブプロシージャ?)してください。 > で、その関数をボタンの onClickイベントなどで呼んであげれば目的の動作ができそうです。 > |
[5207] Re:ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/22 16:59:33 |
追記です。 ステータスバーに「ページでエラーが発生しました。」と 表示されますが、これはクライアント側、サーバー側を混同している ことが原因ですね。ResetJobの中にMsgBoxとResponse.Writeを 配置して片方を有効にしたりしてテストしています。 今回の場合、サーバー側でDB処理を行いたいので ResetJobの中でResponse.Writeが正常に動作すれば良いと 解釈していますが間違いでしょうか? 何でも構いませんのでアドバイスお願いします。 色々テストしてみます。 |
[5211] Re:ボタンが押されたらDB処理したい |
投稿者:morさん 2005/08/23 9:56:08 |
こんにちは。 > <input name="Button1" type="BUTTON" OnClick='ResetJob()' value="リセット")> これは、OnClick="VBScript:ResetJob" かな? その後のコメントを見て思ったのですが、やりたい処理を行うには、素直に Submit させたほうがいいかもしれません。 Scriptの処理ではなく、Submitさせて ASPで処理させたほうが何かと便利かと思います。 |
[5212] Re:ボタンが押されたらDB処理したい |
投稿者:もりもりさん 2005/08/23 11:09:15 |
おはようございます。 morさんに教えて頂いたようにtype = "submit"してASPで処理 するように修正したところ、思い通りに実現できました!! 本当にありがとうございます。 また質問したいと思いますので宜しくお願いします。 > こんにちは。 > > > <input name="Button1" type="BUTTON" OnClick='ResetJob()' value="リセット")> > これは、OnClick="VBScript:ResetJob" かな? > > その後のコメントを見て思ったのですが、やりたい処理を行うには、素直に Submit させたほうがいいかもしれません。 > Scriptの処理ではなく、Submitさせて ASPで処理させたほうが何かと便利かと思います。 > |
TreeBBS For ASP V.0.1.3 |