==ASP== Part 3
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/07/28 23:07ID:33/XGu54【過去スレ】
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0133nobodyさん
03/11/28 08:26ID:???0134125
03/11/28 11:16ID:???dim buff()
buff = split(Session("hoge")(1), ",")
Microsoft VBScript 実行時エラー エラー '800a000d'
型が一致しません。
というエラーが出ます
0135125
03/11/28 11:28ID:???でOK
0136125
03/11/28 11:37ID:???0137nobodyさん
03/11/28 11:49ID:gf6Px9hTApplication変数にコネクトされたデータベースオブジェクトを設定しておきます。
============= init.asp
db = Server.CreateObject(…)
db.Open …
Application.Lock
Set Application( "db" ) = db
Application.UnLock
============= init.asp
他のASPページでApplication変数に設定されたデータベースオブジェクトを利用します。
============= sample.asp
・
・
Set db = Application( "db" )
db.Exec …
・
・
============= sample.asp
今までいちいちASPのページの開始時DBオブジェクトを作ってコネクト
していた時間が省略されパフォーマンスがよくなりそうですが
同時に複数のユーザーがsample.aspを呼び出したとき、
同じDBオブジェクトが利用されて排他は大丈夫でしょうか?
この場合排他がサポートされるかどうかは、Application変数に設定された
オブジェクトのクラス設計に依存するのでしょうか?
0141137
03/11/28 22:39ID:???なんか根本的に間違ってますか?
0142nobodyさん
03/11/30 00:25ID:???0143137
03/11/30 01:00ID:???0144nobodyさん
03/11/30 02:57ID:???ファイルじゃねーんだぞ
0145137
03/11/30 10:57ID:???db.Open …
Application.Lock
Set Application( "db" ) = db
Application( "five" ) = 5
Application.UnLock
上のような初期化処理が一度だけ実行されていた場合
val1 = Application( "five" )
val1 = 10
この時アプリケーション変数"five"は10にはならないですね。
これは5という値をval1にコピーしてるから。
Set db = Application( "db" )
だとアプリケーション内で共有されているオブジェクトへの参照がコピーされます。
ASPページはマルチスレッドで動いているから、各々のタイミングで"db"を操作することになるけど
その際の排他がIIS側でされるのか、オブジェクト側でされるのかが心配です。
本やwebではオブジェクトをApplication変数に入れるといいような書き方がされているのですが
そこからの疑問マルチスレッドの障害については書かれていないです。
根本的に間違っているのなら恥を忍んでお尋ねします。
0146nobodyさん
03/11/30 13:46ID:???そこら辺はブラックボックスだから何のオブジェクトかにもよるんじゃない?ぶっちゃけ作りこみ次第。
基本的には(ASPで利用される)オブジェクト側はマルチスレッドを意識して作成される事が前提。それでIISが適当なプロセスに振りそれが排他制御する。
でも今回の件は排他制御がメインではなくてコネクションプーリングしようとしてるんだよね。
oo4oならOracleのサンプルでもその記述はあるらしいので参照を保持しておいて必要に応じて渡すのは推奨パターンなのかなと思う。(DB側がその責任を持っている)
ADOならそこら辺を省く事で代わりにやってくれるのでページ毎に切るのがセオリー。(OLEDB側が持っている)
0147146
03/11/30 14:04ID:???0148nobodyさん
03/11/30 16:58ID:???dim conn
dim rs
dim SQL as string
conn=Server.CreateObject("ADODB.Connection")
conn.open("DATABASE","ID","PASS")
rs=Server.CreateObject("ADODB.Recordset")
SQL="Select * from TABLE"
rs.open(SQL,conn,3,3)'←ここをSQL,conn,3,2にすると排他ロックをかけられるから他のASPスクリプトはSQL文で開いたレコードセットをいじれなくなるぞ
rs.close
conn.close
0149137
03/11/30 19:24ID:???聞きたかったことはApplication変数に設定されたオブジェクトの排他はクラス側で責任をとるのか?
ということです。
最初の質問でデータベースオブジェクトとパフォーマンスを例に出して話をしたのが混乱のモトでした。
146氏の
>そこら辺はブラックボックスだから何のオブジェクトかにもよるんじゃない?ぶっちゃけ作りこみ次第。
>基本的には(ASPで利用される)オブジェクト側はマルチスレッドを意識して作成される事が前提。それでIISが適当なプロセスに振りそれが排他制御する。
で疑問は晴れました。
やっぱりクラスの設計依存なのですね。
0152nobodyさん
03/12/01 00:44ID:???つかデバッガ何使ってますか?
0153nobodyさん
03/12/01 00:53ID:???スクリプトデバッガは必要ありません
0154nobodyさん
03/12/01 10:17ID:EoM7ZtDv手元の本によるとApplication変数にはlock unlockメソッドがあるらしい。
手元の本によるとApplication変数に比べSession変数は排他処理を必要としないらしい。
手元の本によるとSession変数はIISが自動的にフリースレッドに割り当てるのはらしい
手元の本によるとSession変数にDBのオブジェクトなどCOMを入れるのはパフォーマンス最悪らしい。
0155nobodyさん
03/12/01 10:19ID:???Application変数ではファイルの書き込みなどを行う場合は先ほどのメソッドを使って排他処理が必要らしい。
0156nobodyさん
03/12/01 12:49ID:V4LfYitAどっちが正解?
0157
03/12/02 12:48ID:JqvndUVsメッセージボックスをjava scriptで出力して、
そのyes/noの値をASP側に通知する方法って
あるでしょうか?
0158nobodyさん
03/12/02 23:50ID:???これないとエラー処理とかつらい。try catch でもいいけど。
0159nobodyさん
03/12/03 01:49ID:???If Err Then
' エラー処理
End If
On Error Goto 0
0160nobodyさん
03/12/06 02:03ID:0fSWmf5e<%
Set DBadb = Server.CreateObject("ADODB.Connection")
DBadb.Open "Provider=SQLOLEDB;Data Source=(local);" & _
"Database=x;User ID=y;Password=z;"
StrSQL = "select a from b"
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open StrSQL, DBadb
If f((Rs(0)) Then
・・・
Else
・・・
End If
RS.Close
%>
と書いて、a.aspを
<%
Function f(p)
If p = ・・・ Then
f = True
Else
f = False
End If
End Function
%>
としたら型が一致しません f とのエラーがでます。
これってincludeの前に#が抜けているからというだけですか?
0163160
03/12/06 11:13ID:???たぶん#で大ジョブだと思います。
0164nobodyさん
03/12/06 12:55ID:???0165160
03/12/06 15:26ID:???コペピ失敗したかな?
あー#じゃないとだめってこと?
0166nobodyさん
03/12/07 14:38ID:kFUiBXXgWinXP Proに移植した途端に、DBのopen命令あたりで1日に数度
落ちるようになった。(設定上は、両OSともまったく同一)
これってM$ Access driverのバグなの? WinXPになってから使いづらいんだけどさ
0167nobodyさん
03/12/12 09:17ID:???<input type=checkbox name=hoge value="aaa,bbb,ccc">
のようにvalueで複数の値を渡したい場合はどのようにしたらよいでしょうか?
例えば"bbb"という値は"bb,b"のような値の場合があるかもしれません。
とりあえずタブ区切りにしようかと思ったのですが
タブ区切りって大丈夫でしょうか?
一応テストしてみるとできるみたいですが・・・心配です。
0168nobodyさん
03/12/16 08:57ID:???Set hoge = new class_hoge
Set Session("hoge") = hoge
でいいですか?
てか、ここ誰もいない?
0169nobodyさん
03/12/16 09:51ID:???0170nobodyさん
03/12/16 10:27ID:???0171nobodyさん
03/12/18 17:43ID:???Dim fs, text, line
Set fs = CreateObject("Scripting.FileSystemObject")
Set text = fs.OpenTextFile(DATA_FILE,1,False)
Application.lock
While Not text.AtEndOfLine
line = Split(text.ReadLine, "=")
Application(Trim(line(0))) = Trim(line(1))
Wend
Application.unlock
てな、処理で設定ファイルの情報を、アプリケーション変数に入れたいのですが、、、
ずーーっと帰ってきません、OpenTextFileで止まってるようです
何か思い当たる節はないかね?
0172nobodyさん
03/12/18 17:46ID:9XJ+NVcVしまったファイル名をほげほげしたかったのに(-.-)
0174nobodyさん
03/12/18 19:14ID:???ヽ(・ω・)/ ズコー
\( \ ノ
0175nobodyさん
03/12/19 09:21ID:???誰かが勝手に入れるだけでも気づかないかも
0176nobodyさん
03/12/19 16:08ID:???0177nobodyさん
03/12/22 09:43ID:???0178nobodyさん
03/12/22 22:18ID:2e9pemvT0179nobodyさん
03/12/24 18:09ID:???commandオブジェクトを使って、パラメータをセットするとできるんでしょうか?
ストアドプロシジャーを作成してそこに引数を渡すさいも、
commandオブジェクトを使ってパラメータを渡さないとバインドしないんでしょうか?
VBSでSQL文を作ってrs.Openするとバインドは使っていないんでしょうか?
0180179
03/12/25 16:21ID:???0181nobodyさん
04/01/04 04:44ID:???0182nobodyさん
04/01/05 15:09ID:1VBcX5pvIIS6.0+MS SOLServer2000 SP4に移行したんでつが
どうしても、動かないASPが1個だけあるんです。
SQLServerに、IDを渡して、対応したオブジェクト(バイナリデータ)を
ダウンロードさせるASPであろうと思うんですが
ブラウザから、/download.asp?file_name=123みたいにして
アクセスすると、保存ダイアログでてバイナリのファイル名はでるんですけど
ファイルの種類が空欄になって、保存ボタン押すと、ダウンロードできません
ってでるんです
漏れ、ASPわからないし、作った香具師いないし・・・。
コードは、何もいじってないので、なんか設定とかが違うとおもうんですが
こころあたりないですか?
他のDBから文字をもってくるASPは動いてるんだけどなー
0183182
04/01/05 18:04ID:???Sessionの値を忘れてるみたいなんでつ。
timeoutとか何も設定してないんですけど
IISとかの設定とか間違うと勝手に消えちゃうんですかね。
0184nobodyさん
04/01/05 20:06ID:???念のため聞くが同じWebサーバ内の話だよな?
あと例えばchinko.co.jpってドメイン内のクライアントからhttp://webserver1.chinko.co.jp/ってアクセスするのと
http://webserver1/でアクセスするのとでセッションは別になったような気がする。あんまり自信ないけど。
0185nobodyさん
04/01/05 21:28ID:???PHPのaddslashes関数と同じ動作をさせるには、どうすればいいのでしょうか?
≪参考までに、PHPのマニュアルから引用:addslashes関数≫
データベースへの問い合わせなどに際してクォートされるべき 文字の前にバックスラッシュを挿入した文字列を返します。
クォート されるべき文字とは、シングルクォート('), ダブルクォート("),バックスラッシュ (\) ,NUL (NULL バイト) です。
0186nobodyさん
04/01/05 21:35ID:PXoQ1Cnf0187182
04/01/06 10:37ID:???違うサーバでした。
IIS6.0のほうで動かなかったので、その部分だけIIS4.0で動かしてました
仮想ディレクトリに共有フォルダ追加すればいけそうですけど
根本的な解決になってないような・・・
結局Sessionじゃなかったのかな。
0189nobodyさん
04/01/13 09:49ID:???0190nobodyさん
04/01/14 00:45ID:???0191nobodyさん
04/01/14 09:43ID:TTVYhpa8携帯用のページをASPで作っていて、indexで自動的にi、ez、voda用のページをそれぞれ表示させたいんです。
vodaの端末でアクセスした時のHTTP_USER_AGENTは何と表示されるのでしょうか?
また、端末判別をする為の文字列は、J-SKY時代の物もvodaになってから販売された物と同じ文字列でいいのでしょうか?
実機がないのでスイマセン。
0193nobodyさん
04/01/15 18:55ID:47dbbmge連動する二つのプルダウンメニューを作りたいのですが上手く出来ません
ネットで調べましたが配列に格納するタイプでそれぞれ3件9件程のものでした
都道府県を選ぶとそれに連動する市町村
あるいは
銀行を選ぶとそれに連動する支店が選べるようにしたいのです
データベースを使った良いサンプルなどありましたら教えていただけますか
0194nobodyさん
04/01/15 19:55ID:???どう考えてもASPじゃないだろ?
プルダウンで選んだ(変更した)ときに別のプルダウンのリストの内容を変えるわけだろ?
プルダウンで選んで、サブミットして、別なプルダウンを表示するわけじゃあるまい。
変更時に動くJavascriptを吐けば
0195nobodyさん
04/01/18 14:23ID:IZ5B3j5lIf right(id,1) <> 0 then id else id + 1 end if
VBScoriptで、右から1番目が0でないとき、02057111 を返し、
それ以外は、02057111に+1した02057112を返すとしたいのですが、
構文エラーとなってしまいます。
どのように書いたらよいのでしょうか?
基本的なことで大変恐縮ですがどなたかご教授ねがいます。
0196nobodyさん
04/01/18 21:52ID:6XmSqOOaIf right(id, 1) <> 0 then
Test = id
Else
Test1 = id + 1
End If
End Function
ネタだと思われるが、マジレスしてみる。
0197?^?[?`????
04/01/18 22:35ID:???参加の方法をじっくり読む時間がありませんので、まずはテストさせて頂きます。
私は学生で今オンラインショップを研究中。HTMLとかを家やっています。
Gデザインが専門なので、サイトのラフ絵はもう創りました。
そこにショッピングカートを各ページに入れますけど、ここからが問題。
問題をかかせてもらう前に、この書いてるものがちゃんとアップするのか分からないので
まずはここで終わります。
解決法をお手数ですがどうぞ真面目に宜しくお願いします。
次回続きます。
0199?^?[?`????
04/01/19 00:18ID:???私の問題を書く所はここでいいのかもわかりません。
効率的にいきたいので、続けていいでしょうか?
0201?^?[?`????
04/01/19 00:20ID:???"02057111" + 1 = "020571111"になるよ。
」って、私に話をしてるのですか????
もし、そうでしてら意味がわかりません。
0202nobodyさん
04/01/19 00:24ID:???0203nobodyさん
04/01/19 00:27ID:???まず自分の名前が激しく文字化けしてるのに気付いてる?
それから、ASPに関係のある質問ならこのスレッドで問題ないんだけど
複数のQ&Aが同時進行してるんだから、全部が貴方へのレスではない。
例えば200は「>195じゃないけど」と書いてあるように、
195-196-198-200、という流れの中にある。
ということで質問どぞー。
0204?^?[?`????
04/01/19 00:31ID:???なんだかここは私のいる所ではないようです。
私は今レンタルサーバーとショッピングカート(CGI)を研究中。
こんな私はどこへ移動すれば、私の問題を解決できると思いますか?
是非まじめにお答えください。
0205nobodyさん
04/01/19 00:34ID:???ページを取得して、その一部を書き換えてクライアントに渡すという、
プロキシめいた?ことをやりたいのですが、どういったコンポーネントを
使えば可能でしょうか?(できれば、フリー/製品問わず、明示的にインストールが
必要なものは避けたいです。というのも、環境の管理が自分のところではないもので)
具体的には、郵政公社の郵便番号検索サービスに関して、
・ユーザーが別ウインドウで入力した住所etc.を自動的に検索条件のテキストボックスに
入れる
・返ってきた検索結果ページにボタンを付加するなどして、別ウインドウに結果を
取り込めるようにする
ということをしたいのですが……
0206nobodyさん
04/01/19 00:35ID:???CGIですとこのスレッドの趣旨とは違いますね。
△▲ WebProg 初心者の質問 Part7 ▼▽
http://pc2.2ch.net/test/read.cgi/php/1073460282/
か
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
のスレッドではどうでしょう?
0207?^?[?`????
04/01/19 00:36ID:???以上の難しい数字みたいのは、私のではなかったのですね。
是非質問をさせて頂きますが、今日は遅いので眠ります。
またよければ、来てください。
みなさん、お休みなさい。
0208nobodyさん
04/01/19 00:59ID:???0209nobodyさん
04/01/19 01:01ID:???そもそも何もインストールしないでやりたい、というところに無理があるが
MSXMLが入っている環境ならXMLHTTPでWebから取得できる「かも」知れないね。
0210nobodyさん
04/01/20 05:04ID:???0211nobodyさん
04/01/20 22:50ID:???亀ですがどうもです。
あとADODB.Streamで無理矢理……ってのも考えましたが
手に余りそうなので止めますた(´・ω・`)
とりあえず郵政公社のデータ落としてきてローカルのDBに放り込むことにします。
……ユーザーさん更新してくれるかなー > データ
0212nobodyさん
04/01/21 15:26ID:???必要な郵便番号が変われば更新してくれるでしょう?
べつに追加されようが無くなろうがそれが使わない郵便番号なら更新する必要もあるまい
それは兎も角、これから大合併でいっぱい変わるんだろうな
0213nobodyさん
04/01/21 22:25ID:???VBScript ver5から一応クラスが作れるようになってますよね?
.NETじゃないASPで、(COMコンポーネントでない)クラス作ってる方っています?
(Sessionに入れて持ち回せるわけでなし、何に使うんだと言われると困りますが……)
0214nobodyさん
04/01/22 23:55ID:QY3KlghZ<input type="text" value="" name="hoge">
受け取った時文字をはじくにはどうしたらいいんでしょうか
If TypeName(Request.Form("hoge")) <> "string" Then '文字列じゃなかったら
Response.Write "ok"
Else '文字列だったら
Response.Write "dame"
End If
と組み込む前に試しにつくったのですがダメでした。
誰かご存知でしたら教えてください。
0215nobodyさん
04/01/23 00:34ID:???http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsfctisnumeric.asp
0216214
04/01/23 01:25ID:???0217213
04/01/23 22:59ID:???あーでもないこーでもないと頭ひねってやっとこさえたクラスが
ぜんっぜん使えないに等しいと分かったときの空しさと言ったら……
ああ、ASPなんか止めてCGIで作りてぇ。
0218nobodyさん
04/01/25 16:34ID:KX9usoWV可能でしょうか?
0221安室波平
04/01/25 23:03ID:???<form action="dokka.asp" onSubmit="if (isNaN(document.form1.text1.value)) {alert('数字入れろゴルァ!');return false;}">
0222218
04/01/26 00:02ID:h20y0KQpまさに求めていた以上のものです!
ありがとうございます><
0223nobodyさん
04/01/27 00:39ID:???J2EEやりたい……そこまでいかなくてもStrutsとか憧れる……
VBScriptはもー嫌だぁぁぁぁ
0224nobodyさん
04/01/27 02:12ID:???0225nobodyさん
04/01/27 08:03ID:???漏れは言語の好みだけ言えばJScript>>>>(越えられない壁)>>>>VBScriptなんだけど
ASPはVBScriptが常識!!っぽい雰囲気があって……
ITNAVIに一件、JScriptでASPなサイトのリンクがあるのは知ってるんだけど。
0226nobodyさん
04/01/27 11:14ID:???VBSのサンプルはメソッドとプロパティの区別が付きづらいからキライ
0227nobodyさん
04/01/28 00:26ID:???厨でスマンけど、JScriptもMSILにコンパイルされるの?
だったらなんかいい感じだなぁ……(イミフメ
0229"名前欄"
04/01/28 17:58ID:???0230k
04/01/28 22:13ID:edLBAMSuEXCELのWorkSheet_Changeイベントに関し、EXCELのモジュールに下記のようなソースが記載されたマクロブックがあります。
このソースはSQLサーバーからのデータを4列目、5列目に表示するものです。
このマクロブックからマクロを除き、フォームだけにしてWeb Server上に掲載し、代わりにASP上で下記のようなWorkSheet_Changeソースでエクセル上の4列目、5列目にSQLサーバーからの値を返したいと思っています。
ASP側で操作するにはどのようなコードになるのでしょうか?
0231nobodyさん
04/01/29 00:52ID:8uLhjXYn内部変換関数つかいなよ。バリアントは怖いよ。
Function Test1(id)
Dim strReturn
If Right(Cstr(id),1) <> "0" then 'StrCompが望ましい罠
strRetrun = id
Else
strReturn = Cstr(Clng(id) + 1)
strReturn = Right("0000000" & strReturn,8)
End If
Test1 = strReturn
End Function
0232213
04/01/31 00:28ID:???お約束さえ守れば使えるじゃねーかClass。
とりあえずカプセル化がすっきり出来るだけでも感動ものですたよ。
ということで、漏れの作ってるサイトにはけったいな拡張子のソースが
うじゃうじゃしていることになりますた。(.aspじゃなんか違う気がしたんで、
クラスファイルは変な拡張子にしてみたのれす)
■ このスレッドは過去ログ倉庫に格納されています