トップページphp
983コメント364KB

<%= ASP総合 %> Part.4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/07/03(日) 12:27:28ID:???
レガシASPについて語るスレです。質問や雑談もOK。
何より手軽なので社内イントラであればまだまだ第一線です。
ASP.net については専用スレッドでお願いします。

関連スレ:
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

過去スレ:
==ASP== Part 3
http://pc8.2ch.net/test/read.cgi/php/1059401269/
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0032nobodyさん2005/07/29(金) 00:54:25ID:???
>30
とりあえずDoodleでごりごり描くとか? 高負荷での使用はお勧めしないらしいけど。
ttp://www.vector.co.jp/soft/dl/winnt/prog/se219120.html
商用のチャートコンポーネントは沢山あるが、オフスクリーンで描けるかどうかよくワカランのが多いなぁ
0033nobodyさん2005/07/29(金) 10:16:34ID:vFMET1j+
すみません。教えてください。

ADO接続したOracleのストアドパッケージのプロシージャを実行するのはどうすればいいのでしょうか。
引数、戻り値共ありません。実行するのみです。

ある書式でCommandTextを指定するだけなのでしょうか。
oo4oでしか出来ないなんてことも聞いた(見た)事があるのですが、
果たして出来るのかどうかも分からないのです。

環境:
Windows Server 2003
IIS6.0
Oracle 10g
IE 6.0
0034332005/07/29(金) 10:19:00ID:vFMET1j+
33です。
書き忘れてましたが、ASPでの開発です。
ScriptはVBScriptです。
お願いしますm(_ _)m
0035nobodyさん2005/07/29(金) 22:01:28ID:???
>>30
棒グラフなら簡単にできるよ
0036nobodyさん2005/07/30(土) 00:17:06ID:???
Flashでグラフ書くとか。あとはExcelを生成するとか。
0037nobodyさん2005/07/30(土) 00:17:51ID:???
ストアドプロシージャなら、ADODB.Commandオブジェクトで実行できるんじゃね?
Oracleは使った事がないからわからんけど。
0038nobodyさん2005/07/30(土) 21:32:49ID:???
>>30 Flashが作るのも簡単だし、負荷もやさしいな。
0039nobodyさん2005/07/30(土) 22:48:19ID:???
イントラとかならOffice Web Componentsを使う手もあるな
0040nobodyさん2005/07/31(日) 00:10:17ID:???
>>30
もしブラウザ側でプラグインを必要とするのが嫌っていうんだったらVMLオススメ。
案外楽。
難点といえばドキュメントの類があまり無いってところかw
0041nobodyさん2005/07/31(日) 19:21:59ID:???
>>31
レスども!さんくす。
0042take2005/08/03(水) 01:33:59ID:3G0F5eI3
はじめまして。現在iモード用のページを作成しています。
言語はASP(JScript)を選択しました。

<SCRIPT LANGUAGE=JScript RUNAT=Server>
var out = "";
out += "<HTML>";
out += " <HEAD>";
out += " <TITLE>TEST</TITLE>";
out += " </HEAD>";
out += " <body>";
out += " <a href='./scr/test1.asp'>テスト1</a>";
out += " <br>";
out += " <a href='./scr/test2.asp'>テスト2</a>";
out += " </body>";
out += "</HTML>";
Response.Write(out);
</SCRIPT>

上記のようなソースを作成して携帯からアクセスしたところ、
認証タイプに未対応です(401)と表示されてしまいます。
↑このメッセージの意味も不明なのですが…

JavaScriptだけではなく、JScriptもやっぱりiモードでは実行不可能でしょうか?
因みに、VBScriptは表示できました。
0043nobodyさん2005/08/03(水) 21:06:59ID:???
>>42
ちゃんとサーバ内で実行されていれば
JScriptだろうがVBScriptだろうが関係ないだろ。

<SCRIPT runat=>じゃなくて
普通に<% %>で囲んでやってみたら?
0044432005/08/03(水) 21:08:10ID:???
ちなみにその場合はIISの設定でサーバ側の言語をJScriptにする必要がありマンモス
0045nobodyさん2005/08/03(水) 23:18:21ID:???
メッセージのとおりiモードが未対応な認証で保護されてんじゃねーのかい。そのページが。
ってもどんな認証なのかはしらんけども。
なんかそのページがおいてあるディレクトリに基本認証が設定されてるとかさ。
でも、VBScriptと同じ場所にJScriptのソースを置いてあるならそれはないのか。
0046take2005/08/04(木) 00:28:00ID:rNW1W7Vo
アドバイスありがとうございました!試してみましたm(__)m
しかし、どうやらソースの問題ではなくIISの設定の問題のようです。
理由として・・・

・既存のWEBサイトは2つ用意しているんですが、もう片方のサイトの方にASPを置いたところ表示できました。
・iモードからでなく、PCから接続しようとした際に、以下のように表示される。
 --------------
 このページを表示する権限がありません
 HTTP エラー 401.5 - 権限がありません : ISAPI または CGI アプリケーションによって、認証が失敗しました。
 --------------

プロパティで両WEBサイトの設定の違いを見てはいるのですが、どうもどちらも同じようです…(泣)
0047nobodyさん2005/08/04(木) 01:50:34ID:???
>>46
そのエラーはNTFSのACLに引っかかってる場合が多い。
0048nobodyさん2005/08/04(木) 07:14:06ID:???
aspファイルの権限も確認してみたら?
0049nobodyさん2005/08/06(土) 01:14:40ID:qxFS+q97
グラフツールの業界標準ソフトって何ですか?
0050nobodyさん2005/08/06(土) 07:55:05ID:???
マジレスするとExcel
0051nobodyさん2005/08/06(土) 12:23:15ID:???
IPアドレスの文字列"192.168.0.1"などを
10進数の数値に変換したいのですが何かよい関数はありますか?
もちろん自作することは可能ですが既にあるなら利用したいのです。
よろしくお願いします。
0052nobodyさん2005/08/06(土) 18:53:49ID:???
安直にやってみる。エラーチェック無し。

 ary = split( txtIP , ".")
 valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)

まあ大抵はreplace(txtIP , "." , "")とかでも十分そうだがな
0053nobodyさん2005/08/06(土) 19:06:15ID:???
>>52
ありがとん。

>まあ大抵はreplace(txtIP , "." , "")とかでも十分そうだがな

これはどういう意味ですか?


0054nobodyさん2005/08/06(土) 21:58:30ID:???
>>53
だがそれだと例えば
192.168.1.111
192.168.11.11
192.168.111.1
が全部同じ1921681111になってしまうからダメだよな。

つかそれって下手するとlong型で扱えない罠がありそうだ。
0055nobodyさん2005/08/07(日) 01:31:56ID:???
>>51
単に数字を三桁にすれば良いのでは?
192.168.0.1

192168000001
0056nobodyさん2005/08/07(日) 14:22:24ID:???
>>55
わざわざ3桁に文字列加工するんだったら
>>52のやり方の方がスマートに見える
0057nobodyさん2005/08/07(日) 15:33:32ID:???
>>55
ああ、その手があるね。
DBとかに詰め込んだりしてリスト表示したり、デコードのことを考えると>>53より>>55の方がいいかもね
0058512005/08/07(日) 21:32:03ID:???
ary = split( txtIP , ".")
valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)

以外はネタだと思ってましたがw
0059nobodyさん2005/08/10(水) 14:21:41ID:SGllzMlg
>DBとかに詰め込んだりしてリスト表示したり、デコードのことを考えると>>53より>>55の方がいいかもね
それでも桁揃えするメリットが分からない私はバカ?
0060nobodyさん2005/08/10(水) 19:20:51ID:???
> valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)
ってどうやって元に戻せばいいんですか?
0061512005/08/10(水) 22:30:15ID:???
工エエェェ(´д`)ェェエエ工工
0062522005/08/10(水) 22:55:41ID:???
>>60
dim ary(3)
for i = 3 to 0 step -1
ary(i) = valIP mod 256
valIP = valIP \ 256
next
strIP = join(ary,".")
0063572005/08/10(水) 23:50:26ID:???
>>59
ログファイルとかでIP保存するときは
桁が揃った方が出力したときに見やすいと思った。

ちょうど >>62 で >>52 さんがデコード方法が書いてくれてるけど、
これだと、SQLの実行結果に処理入れなきゃいけないでしょ?

mod(strIP,(256^4)) & "." & mod(strIP,(256^3)) & "." & mod(strIP,(256^2)) & "." & mod(strIP,256)
ってビュー作ればいいだけの話だけどさ。

まぁこれは運用次第だけどね。
確かに256使った方が列のサイズが少なくなりそうだし。
0064572005/08/10(水) 23:52:09ID:???
あ、strIPじゃないね。スマソ
0065nobodyさん2005/08/11(木) 11:06:35ID:???
IPアドレスとはそもそもどういったものなのか?
なぜ256という数字がいきなりでてくるのか?
0066nobodyさん2005/08/11(木) 11:16:10ID:???
>>65
256=1バイト
0067nobodyさん2005/08/11(木) 11:19:35ID:???
IPアドレスは本来32ビットの数値だよ。
それを人間がわかりやすくするために
1バイト単位に区切ってそれを10進数表記したものが
192.168.0.1とかの文字列になるんだよ。
0068nobodyさん2005/08/11(木) 22:28:03ID:???
tmpary = split(txtIP,".")
for i=0 to ubound(tmpary)
tmpary(i) = right("00" & tmpary(i),3)
next
txtIP = join(tmpary,".")

0埋めとか桁あわせとかってあんまり格好良く書けねんだよな
0069nobodyさん2005/08/12(金) 00:58:35ID:???
>>68
format関数でいけるんでない?
0070nobodyさん2005/08/12(金) 07:43:16ID:???
広い意味でASP関連のことだが、
ひとつのグローバルIPがある
サーバが2台ある
光回線終端装置にルータをつないで、
そのルータに
192.168.1.11 Webサーバポート80
192.168.1.12 Webサーバポート80でもなんでも
の2台がつながっている。
この2台を同じドメインで運営することは可能なのだろうか?
0071nobodyさん2005/08/12(金) 14:47:20ID:???
>>70
http://www.hoge.co.jp/svr1/
http://www.hoge.co.jp/svr2/

みたいにディレクトリで分けて良いなら可能
0072nobodyさん2005/08/12(金) 14:51:30ID:???
>>70
負荷分散装置を使えば可能
0073nobodyさん2005/08/12(金) 16:01:00ID:???
>>72
ロードバランサーなんておいたら
どっちにいくか分からないじゃん
0074nobodyさん2005/08/12(金) 20:42:20ID:???
>>71
http://www.hoge.co.jp/
以下をサーバ1,ただしその中の
http://www.hoge.co.jp/hoe/
以下はサーバ2,
ともできるでしょ
0075nobodyさん2005/08/15(月) 16:55:00ID:???
>>69
ASPのスクリプトでFormat使えたっけ?
0076nobodyさん2005/08/15(月) 20:35:49ID:???
そういえばVBScriptにはFormatはないね
0077nobodyさん2005/08/15(月) 22:37:05ID:???
FormatNumberとか実に中途半端なものはあるけどな。
どうして無いんだろう。
0078nobodyさん2005/08/16(火) 22:05:44ID:JMv6lDkz
VBScriptの質問です。
2次元配列から、任意の行を1次元配列として取得するスマートな方法ってありますか?

↓こんな感じで
Dim arrData1(1,2)
arrData1(0, 0) = "a1"
arrData1(0, 1) = "a2"
arrData1(0, 2) = "a3"
arrData1(1, 0) = "b1"
arrData1(1, 1) = "b2"
arrData1(1, 2) = "b3"

Dim arrData2
' スマートな処理
arrData2 = 〜〜〜
'arrData2(0) = "a1"
'arrData2(1) = "a2"
'arrData2(2) = "a3"

要素をループでぐるぐる回す処理しか思いつきませんでした。
0079nobodyさん2005/08/17(水) 00:02:13ID:???
二次元配列じゃなくて配列の配列にすれば?
0080nobodyさん2005/08/17(水) 01:13:02ID:???
前提の説明が不足していました。
データを2次元配列で保持している箇所については変更不可能です。
既存システムの機能追加ですので。

配列の配列を勧められるということは、2次元配列の場合はぐるぐるするしかないということでしょうか?
大した処理じゃないのでコーディングは全く苦ではないのですが、
1行で書ける処理をぐるぐるするのはカッコワルイなと思いまして。

暫くJavaの世界に行っていたので、VBScriptを忘れてしまったのですよ。
0081nobodyさん2005/08/18(木) 21:55:04ID:???
ないと思われ。
Uboundで大きさ取ってループで突っ込むしかありませんな
0082nobodyさん2005/08/19(金) 22:03:41ID:???
そうですか。じゃあぐるぐるします。
ありがとうございました。
0083nobodyさん2005/08/29(月) 14:23:57ID:YVceYwl0
Server.URLEncodeとは逆に、エンコードされた文字列をデコードするメソッドとかありませんか。
URLEncodeと対になるものが、何かASPで用意されてないかと探しています。
でもみつからない。何でないんだろう。困るじゃん。

もしかしてデコードは各自創意工夫をするものですか?
0084nobodyさん2005/08/29(月) 16:21:34ID:???
>>83
無い。
デコードはRequestで取り出したときに勝手にされるので普通は必要ない。
0085832005/08/29(月) 20:41:03ID:???
そーなんですか。探ってみます。
0086nobodyさん2005/09/05(月) 21:05:30ID:dzd6pukh
IE6でアンカーにEXCELを指定した場合、
<a href="http://qupa.xls/"

右クリックで「対象を印刷」と出てきますが、
右クリックしないで印刷は可能でしょうか?
例えば、Buttonを作ってbuttonクリックで印刷とか?

可能であれば、方法を教えてもらえないでしょうか?
お願いします。

0087nobodyさん2005/09/05(月) 21:25:21ID:???
>>86
基本的には無理だね。
スクリプトからノークッションで印刷できちゃったら
ブラクラならぬプリクラが出来てしまう。

例えばクライアント側で信頼済みサイトの設定ができるのであれば
wscriptを使えば何か出来るかも。
0088nobodyさん2005/09/05(月) 21:56:17ID:???
>>86
昔はコレでできた。

onclick="(window.open('http://yahoo.co.jp/','_blank')).print();"

いまはセキュリティの関係でできなくなった。
0089862005/09/05(月) 23:43:57ID:dzd6pukh
基本的にはムリですか。
それじでは、ちょっとJavaScriptとダブってしまうのですが
右クリックでオリジナルのメニューを出すことは可能と思いますが、
右クリックで「対象を印刷」のみ出すか、
「対象を印刷」以外はEnableにすることはできますか?

0090nobodyさん2005/09/06(火) 14:50:02ID:attaS1hZ
会社のサイトの(作成者は別会社)会員(販売店様)限定のところにID/パス
ワード入力せずに発信ボタンを押したら入れたそうです(この画面は会員すべて
共通のもの)。原因を突き止めないといけないのですがどういう原因があるかさ
っぱりわかりません。
あと、ASPで作ってます。
素人なりに考えてみたのはブラウザによって入れたりするのかなー?
とかそのボタン関係の不具合かなー?
とか思ったりしてるんですが、参考意見・もしくは勉強サイト等がありましたら教
えてください。
僕はWEB製作超初心者です。フリーのCGIを落として名前とかを変更するぐらいしか
できませんが、何日間は勉強する時間はできると思います。
0091nobodyさん2005/09/06(火) 15:27:10ID:LC/QE+cC
↑原因 ウイルス
0092nobodyさん2005/09/06(火) 15:35:11ID:attaS1hZ
ウイルスぐらいしか考えられる要因が無いですかね?ぜんぜんわかんないので
自分で考えろ!て話なんですが、わからないのでご教授お願いします。
0093nobodyさん2005/09/06(火) 15:46:59ID:???
URLは?
0094nobodyさん2005/09/06(火) 20:57:51ID:WhNf/x2R
2chに書き込むヒマあったら発注した別会社にクレーム付けろよ
0095nobodyさん2005/09/06(火) 21:19:18ID:???
ID/パスワードに空文字を登録したバカがいるとか
0096nobodyさん2005/09/06(火) 22:07:02ID:???
>>86
視野が狭まっている。よろしくない傾向だな。

「簡単に印刷が出来るようにしたい」だけなのか?
「保存などは不可で印刷だけ許可したい」のか?
その段階に立ち返って、最適な方法を吟味しなおす事をおすすめする。

後者はwebアプリを分かってない奴が仕様を決めたり
客の言い捨て的な要望を営業がのんできちまった場合に多いんだよな。
そんなのに付け入られるとひどい目に遭うぞ。
0097nobodyさん2005/09/06(火) 22:39:17ID:???
>>90
あくまで憶測、だが…

1.変数を空文字列に初期化
2.入力されたIDをキーにして、DBから登録されているパスワードを検索
3.取得できたパスワード文字列変数に代入
4.変数に入っている文字列と入力されたパスワードが一致したらOK

という仕掛けだったとすると…

1.変数を空文字列に初期化
2.空IDで検索して該当無し
3.DBから取得できなかったので代入はスキップ
4.変数に入っているのは空文字列で、入力されたパスワードと一致!

となったりしそうな。
0098nobodyさん2005/09/06(火) 23:08:27ID:???
>>90
セッション残っていたとかもありがち。
この場合はブラウザを閉じるまで保っちゃう。
空文字で入ったら誰のIDになるか確認するといいよ。
0099nobodyさん2005/09/06(火) 23:31:59ID:???
>>89
ResourceHacker で Shdoclc.dll を弄れ。
アドレスは24641

「ボタンクリックで対象を印刷」もできないこともない
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6028&forum=7
0100902005/09/07(水) 09:01:05ID:ZN4XmGrN
アドバイスありがとうございます。別会社にはクレーム付けてるんですが、
動いてくれるかどうか・・・。言われた内容を調べて見ます。
0101902005/09/07(水) 09:04:09ID:ZN4XmGrN
>>97
あと会社のPCだと普通に入れないんですが、とりあえずソースをよく見てみますね。
0102nobodyさん2005/09/07(水) 09:57:14ID:???
Windows認証が通ったらパス入力画面がスルーする仕様とかだったり。
0103nobodyさん2005/09/09(金) 13:39:57ID:???
改行コード部分をカンマにREPLACEしたいのですが…。
0104nobodyさん2005/09/09(金) 22:45:50ID:???
>>103
STR.replace("\n",",");
0105nobodyさん2005/09/09(金) 22:48:42ID:???
>>104
STR.replace(/\r|\n|\r\n|\n\r/g,",");
01061032005/09/11(日) 11:15:46ID:XVWHhBde
とりあえず、

改行コード込みの値が入ってる変数 = strhoge
Dim strA
A = Replace(strhoge, "vbCr", "vbCrLf")
A = Replace(strhoge, "vbLf", "vbCr")
A = Replace(strhoge, ",", "vbLf")

としてます。
MacとWinの改行コードを考慮した結果なのですが…。

みなさんのやってる「STR.Replace...」って、
ReplceしたものをSTR型にしてるって事ですか?
01071032005/09/11(日) 11:16:23ID:XVWHhBde
あ、AはstrAの事でしたorz
0108名無しさん@そうだ選挙に行こう2005/09/11(日) 12:08:55ID:???
>>106
Replace関数はReplace(対象文字列, 検索対象文字列, 置換文字列)だろ。
おまいの例だと逆。
あとなんでvbLfとかvbCrの組み込み定数をダブルクォートでくくる?

ここ読んであとは自分で考えれ。
http://www.microsoft.com/japan/msdn/library/
01091062005/09/11(日) 12:18:56ID:???
>>108
あ、ホントだ…

strA = Replace(strhoge, vbCrLf, vbCr)
strA = Replace(strhoge, vbCr, vbLf)
strA = Replace(strhoge, vbLf, ",")
だたorz
ごみん(´・ω・`)
0110nobodyさん2005/09/12(月) 16:29:50ID:???
Forループの中で取得した値を配列に格納するはずのPGを書いてみたんだけど、
「インデックスが有効範囲にありません。: '0' 」とエラーが出ます。

-------------------------------
Dim A
' Aを配列に
A = Array()
' hogeの値をカンマ区切りで配列Bに格納
B = Split(hoge, ",")

For nCnt=0 To UBound(B) Step 1
 A(nCnt) = B(nCnt)
Next
-------------------------------
B(nCnt)の値は正常に取れてるのですが…
0111nobodyさん2005/09/12(月) 17:28:02ID:???
>>110
よく読め
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vsfctarray.asp
0112nobodyさん2005/09/12(月) 21:57:37ID:???
>>110
そんな可変長配列の扱いはVBScriptには無い。
つーかそのサンプルがどんな意味なのか分からんが

Dim A()

B = Split(hoge, ",")
ReDim A(Ubound(B))
For nCnt=0 To UBound(B) Step 1
A(nCnt) = B(nCnt)
Next

やるならこんな感じだろうな
0113nobodyさん2005/09/13(火) 00:45:26ID:???
この例をもっと短くするなら
Dim A, B
B = Split(hoge, ",")
A = B
ですむな。
0114nobodyさん2005/09/15(木) 11:36:56ID:???
テキストエリアに入力された文字について、
前後に改行コードが入っていた場合はTrimで取り除けると思ってたんだけど、
除かれるのは、空白とかだけ。

文字列前後の改行コードだけを取り除きたい時は
どうすればいいのでしょうか?
0115nobodyさん2005/09/15(木) 11:41:21ID:???
strWriteData = Replace( strWriteData, vbCrLf, "" )
strWriteData = Replace( strWriteData, vbCr, "" )
strWriteData = Replace( strWriteData, vbLf, "" )
0116nobodyさん2005/09/15(木) 11:45:02ID:???
>>115
こうすると、文中の改行コードも全てなくなってしまうのでは?
0117nobodyさん2005/09/15(木) 20:37:02ID:???
>>115
細かいけどそれをやりたきゃvbNewLineで置換すればOKだぞ
そして>>116の言うとおり。

正規表現を使えばよかろう。

Set regEx = New RegExp
regEx.Pattern = "(^\s*)|(\s*$)"
regEx.Global = True
strWriteData = regEx.replace( strWriteData , "")
0118nobodyさん2005/09/16(金) 11:05:43ID:fPKBboZa
済みません、教えて下さい。

PDFファイルを生成するミドルウェアはなにがおすすめでしょうか。

・主にレコードセットから生成
・画像挿入
・ページ数制御
・ASP.NETに移行の可能性有り

これくらいの事しかやりませんので、
あまり多機能すぎて開発工数がかかりすぎるより、
多少、機能を削っても工数のかからないものがいいです。
予算は50万円くらいです。
(ユーザーを説得できるだけの機能があれば100万くらいまで可)

ASP
IIS 6.0
IE 6.0

よろしくお願いします。
0119nobodyさん2005/09/16(金) 20:35:57ID:???
「工数かからないように」の一要素であるノウハウの多さという意味で言うと
PDFlibあたりがいいんじゃない?
0120nobodyさん2005/09/28(水) 14:02:13ID:???
ASPで構造体は使えますか?
使えない場合、何か代替でよい手法がありますか?
0121nobodyさん2005/09/28(水) 22:04:29ID:???
>>120
VBScriptにもJScriptにも構造体はありません。
代替はプロパティだけのクラス。

クラス定義が、
class clstest
 public prop1,prop2,prop3
end class
こんな感じで、このクラスを返す関数が
function getTest(arg1,arg2,arg3)
 Dim obj
  set obj = new clstest
   with obj
    .prop1 = arg1
    .prop2 = arg2
    .prop3 = arg3
   end with
  set getTest = obj
 end function
こんな感じ。
 set retvalue = getTest ("val1","val2","val3")
とすれば
 Response.Write retvalue.prop1
で"val1"が出る。
0122nobodyさん2005/09/28(水) 22:23:19ID:???
>>120
JScriptの場合はここを参照
http://www.imasy.or.jp/~hir/hir/tech/js_tips.html#asp_capsulate
0123nobodyさん2005/09/29(木) 07:56:05ID:???
動的にプロパティの追加が出来るのはtypo耐性が低くてイカン
0124nobodyさん2005/09/29(木) 18:20:52ID:???
>>123
そこでUnitTestですよ。
0125nobodyさん2005/10/04(火) 23:10:08ID:???
ASPのサーバ側の処理を排他制御する場合はApplication変数ででも出来るけど
並列してWSHでも定期的に行うようにするため、
代わりにFileSystemObjectでのファイル書き込みオープンでロック制御を試してみた。

<HTML><BODY><%
set fso = createObject("Scripting.FileSystemObject")
set basp = createObject("Basp21")
Response.Write time & " " : Response.Flush
set olock = fso.openTextFile("c:\work\lockfile",2,true)
Response.Write time & " " : Response.Flush
basp.sleep 5
Response.Write time & " " : Response.Flush
olock.close
%></BODY></HTML>

二つの画面で動かして
[17:00:00 17:00:00 17:00:05]みたいな感じとファイルオープン失敗でaspエラーになる事を期待したら
[17:00:00 17:00:00 17:00:05]と[17:00:05 17:00:05 17:00:10]となった。

ファイルオープンを待って[17:00:00 17:00:00 17:00:05][17:00:02 17:00:05 17:00:10]ならまだ分かるが
なぜ二番目のアクセスで最初の一発目も実行されないで待ってるんだろう?
ロックとしては結果オーライではあるんだけど、何か不思議。
何かこれに関係しそうなドキュメントとかあったらURLキボン。
01261252005/10/05(水) 20:57:09ID:QIcIBhGo
質問age忘れた
0127nobodyさん2005/10/05(水) 22:43:21ID:???
>>125
ヒント: 遅延書き込み
0128nobodyさん2005/10/06(木) 23:16:49ID:???
>>127
遅延書き込みは関係ない気がする…
むしろ実行時にスクリプトを先読みしてる?

あそっか、ASPとかのスクリプトエンジンって
実行時にコンパイルしてんだよな(後の方の構文エラーとかも先に出るし)。
この場合ファイル名がリテラルだから…。
なるほどな。結構色々気を回してくれるんだなASP。
0129nobodyさん2005/10/07(金) 18:51:33ID:2Dl5nVCp
質問させてください

IIS(4.0)+ASP → ODBC → PostgreSQL

でADO接続しているのですが
.Close & Nothing 作業を行っても
Netstatで確認すると
数十秒コネクションが残ってしまいます。

ASPからDB接続するとデフォルトで
コネクションプールみたいな機能が
付いてたりするのですか?

(ODBCの接続プールは使用していません)

因みにVBScriptで作ってます。
0130nobodyさんNGNG
>>129
ASPに関わらず、netstatでみると殆どのアプリが数十秒コネクション残るよ
0131nobodyさん2005/10/08(土) 01:00:06ID:6j6nfXjs
まじっすか!!
実は2000人ほどログインするASPプログラムを
作成する予定なのですが
コネクションが数十秒残るとPostgreSQLでコネクション
限界に達してしまうんですよね…

接続プールやコネクションプールサーバを使用すれば
実現できるのでしょうか…
(もしくはロードバランサーで2台接続?)

みんなどうやってDB接続してるんだろう

情報(人-)謝謝(-人)謝謝です
■ このスレッドは過去ログ倉庫に格納されています