乙
ASP@IIS6 でのUnicode対応についてご質問です。
最近まで日本語Onlyで稼動していたシステムに中国語での入力が加わることになり、
Unicode対応を進めております。
中国に設置したWindows2003Server中国語版でのテストでは、
全ソースの文字コードをUTF-8に変換 & Codepage=65001を指定
上記2点の対応で、日本語(半角カナ含む)、中国語(簡体字)の入力、DBへのデータ登録が可能となり
安心していたのですが、
日本側でテストを行ったところ、ブラウザから送信されたデータをサーバーが受け取った時点
(Request.Formメソッドで文字列を取得した時点)で簡体字が化けて(該当文字コードが見つからず’?’に置換される)
しまいます。
状況を確認したところ
・Requestオブジェクトへはデータが正しく送信されている
・Request.Fromメソッドで文字列を取得する際に化けている
これはIISの設定や、ASP側での何らかの対応によって回避できるものなのでしょうか?
5 :
4:2005/07/04(月) 10:32:11 ID:???
>>3 スマソ。途中で送信してしまった。
Response.Charset = "UTF-8"
Session.CodePage = 65001
もきちんと記述。
ブラウザからはUTF-8で送信してもらう。
これでもダメ?
6 :
nobodyさん:2005/07/04(月) 14:31:38 ID:AwbPzfS8
>>1 乙。
確かに、社内用なら効率も稼動数もASPが一位だろうな。
7 :
3:2005/07/04(月) 21:40:17 ID:???
>>5 書くのわすれてました。
Response.CharSet="UTF-8"と
Session.Codepage=65001も付けてます。
RequestオブジェクトへはUTF-8で送信されてきている模様なんですが
(デバッガでとめて中身みると1文字が3バイトで送信されてました)
Request.Formメソッドを通って変数へ値をほりこむと?に変換されてしまっています。
中国語環境で試したときは、それまで扱えなかった半角カナが扱えるようになったので、
日本語環境でも同じようにすれば簡体字を扱えるようになるかなとおもったのですが・・・
>>7 中国語とUnicodeってやったことないから
適当なことしか言えないんだけど、
すべての文字がだめなの?
日本語も?
あとQueryStringだとどう?
9 :
3:2005/07/05(火) 00:28:35 ID:???
>>8 すべての文字がってわけではなく、
日本語はOKで簡体字が?に置換されてます。
感じとしてはSJISで定義されてない文字が化けてるのかな?と
ソース上で出きるCodePageの指定はやってますし、
Request.Formメソッドで変換に失敗してるっぽいのでIISの設定とかなのかなぁと(´・ω・`)
Queryでも同じ結果です。
Requestオブジェクト内にはエンコードされたコードが入ってて(Formと同じコードです)
Request.QueryStringメソッドで取り出すと?に・・・
RequestのメソッドがUTF-8に対応してないとかなのかなぁ・・・
(Linux or FreeBSD or Solaeis or MaxOSX)+Apache+(Perl-CGI or PHP or JSP+Tomcat)
の環境に変更してみてはどうか?
11 :
nobodyさん:2005/07/05(火) 21:38:11 ID:pwY9dvvb
>10
このスレ的にはせめて
Apache+Perl+Apache::ASP
ジャマイカ
>・Requestオブジェクトへはデータが正しく送信されている
の中身と
>・Request.Fromメソッドで文字列を取得する際に化けている
の中身が知りたいなぁ。
IEからのリクエストはUTF-8で送ってるんだよね?
@CodePage=65001 なんだよね?
Request.QueryString で取れそうなもんだが。。。
BASPでメール受信してる香具師っている?
15 :
nobodyさん:2005/07/24(日) 21:09:23 ID:fn1pPtpi
>>14 昔コレ使ってWebMail作ったことがある。
>>14 FTPとか、画像関連は使っているけどメールはないなあ。
18 :
nobodyさん:2005/07/25(月) 19:59:54 ID:YXDkZe5L
>>17 この作者もそうだけど、ADOからmdb扱うのにODBC経由しないといけないと思ってるヤツ
どうにかならないのだろうか?
俺仕事で使ってたんだけど、メールを取り込むメソッドに
仕様漏れとかバグとか多すぎね?
凹んだ仲間はいませんか。
20 :
15:2005/07/25(月) 22:09:57 ID:???
>18
漏れが今売られてる先の既存レガシASP
SQL Server2000相手にADOで繋ぐのにわざわざODBC噛ましてる奴ばっかしorz
22 :
nobodyさん:2005/07/26(火) 20:41:09 ID:M6o38FgU
セッション数を取得する方法ってありますか?
今何人ログオンしているか知りたいんですけど。
23 :
15:2005/07/26(火) 22:14:07 ID:???
>>22 Session_On_Start
Session_On_End
にApplication変数入れれば良い。
たまにおかしくなるけど
24 :
15:2005/07/26(火) 22:16:07 ID:???
>>22 Session_On_Start
Session_On_End
にApplication変数入れれば良い。
たまにおかしくなるけど
25 :
15:2005/07/26(火) 22:17:15 ID:???
>>22 Session_On_Start
Session_On_End
でApplication変数を+1、−1すれば良い。
>>22 Session_On_Start
Session_On_End
でApplication変数を+1、−1すれば良い。
>>22 Session_On_Start
Session_On_End
でApplication変数を+1、−1すれば良い。
。゚(゚´Д`゚)゜。ウァァァン
連投スマソ
Janeがおかしい
>>21 Microsoft データリンク(拡張子=udl)で、
Microsoft OLE DB Provider for SQL Server というのを使用していますが、
これは正解ですか?
30 :
nobodyさん:2005/07/28(木) 22:56:45 ID:6dRpupV3
グラフの表示について教えてください。
ASPを使ってSQLServerに接続しデータを取得して
その結果をグラフで表示したいと思います。
そんなこと(動的にグラフ作成)をやるには
どうしたら良いのでしょうか?
31 :
21:2005/07/28(木) 23:16:19 ID:???
>29
少なくとも、ODBC経由ではない。
そして漏れ的には正解と思うっす。
33 :
nobodyさん:2005/07/29(金) 10:16:34 ID:vFMET1j+
すみません。教えてください。
ADO接続したOracleのストアドパッケージのプロシージャを実行するのはどうすればいいのでしょうか。
引数、戻り値共ありません。実行するのみです。
ある書式でCommandTextを指定するだけなのでしょうか。
oo4oでしか出来ないなんてことも聞いた(見た)事があるのですが、
果たして出来るのかどうかも分からないのです。
環境:
Windows Server 2003
IIS6.0
Oracle 10g
IE 6.0
34 :
33:2005/07/29(金) 10:19:00 ID:vFMET1j+
33です。
書き忘れてましたが、ASPでの開発です。
ScriptはVBScriptです。
お願いしますm(_ _)m
Flashでグラフ書くとか。あとはExcelを生成するとか。
ストアドプロシージャなら、ADODB.Commandオブジェクトで実行できるんじゃね?
Oracleは使った事がないからわからんけど。
>>30 Flashが作るのも簡単だし、負荷もやさしいな。
イントラとかならOffice Web Componentsを使う手もあるな
>>30 もしブラウザ側でプラグインを必要とするのが嫌っていうんだったらVMLオススメ。
案外楽。
難点といえばドキュメントの類があまり無いってところかw
42 :
take:2005/08/03(水) 01:33:59 ID: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は表示できました。
>>42 ちゃんとサーバ内で実行されていれば
JScriptだろうがVBScriptだろうが関係ないだろ。
<SCRIPT runat=>じゃなくて
普通に<% %>で囲んでやってみたら?
44 :
43:2005/08/03(水) 21:08:10 ID:???
ちなみにその場合はIISの設定でサーバ側の言語をJScriptにする必要がありマンモス
メッセージのとおりiモードが未対応な認証で保護されてんじゃねーのかい。そのページが。
ってもどんな認証なのかはしらんけども。
なんかそのページがおいてあるディレクトリに基本認証が設定されてるとかさ。
でも、VBScriptと同じ場所にJScriptのソースを置いてあるならそれはないのか。
46 :
take:2005/08/04(木) 00:28:00 ID:rNW1W7Vo
アドバイスありがとうございました!試してみましたm(__)m
しかし、どうやらソースの問題ではなくIISの設定の問題のようです。
理由として・・・
・既存のWEBサイトは2つ用意しているんですが、もう片方のサイトの方にASPを置いたところ表示できました。
・iモードからでなく、PCから接続しようとした際に、以下のように表示される。
--------------
このページを表示する権限がありません
HTTP エラー 401.5 - 権限がありません : ISAPI または CGI アプリケーションによって、認証が失敗しました。
--------------
プロパティで両WEBサイトの設定の違いを見てはいるのですが、どうもどちらも同じようです…(泣)
>>46 そのエラーはNTFSのACLに引っかかってる場合が多い。
aspファイルの権限も確認してみたら?
49 :
nobodyさん:2005/08/06(土) 01:14:40 ID:qxFS+q97
グラフツールの業界標準ソフトって何ですか?
マジレスするとExcel
IPアドレスの文字列"192.168.0.1"などを
10進数の数値に変換したいのですが何かよい関数はありますか?
もちろん自作することは可能ですが既にあるなら利用したいのです。
よろしくお願いします。
安直にやってみる。エラーチェック無し。
ary = split( txtIP , ".")
valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)
まあ大抵はreplace(txtIP , "." , "")とかでも十分そうだがな
>>52 ありがとん。
>まあ大抵はreplace(txtIP , "." , "")とかでも十分そうだがな
これはどういう意味ですか?
>>53 だがそれだと例えば
192.168.1.111
192.168.11.11
192.168.111.1
が全部同じ1921681111になってしまうからダメだよな。
つかそれって下手するとlong型で扱えない罠がありそうだ。
>>51 単に数字を三桁にすれば良いのでは?
192.168.0.1
↓
192168000001
>>55 わざわざ3桁に文字列加工するんだったら
>>52のやり方の方がスマートに見える
>>55 ああ、その手があるね。
DBとかに詰め込んだりしてリスト表示したり、デコードのことを考えると
>>53より
>>55の方がいいかもね
58 :
51:2005/08/07(日) 21:32:03 ID:???
ary = split( txtIP , ".")
valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)
以外はネタだと思ってましたがw
59 :
nobodyさん:2005/08/10(水) 14:21:41 ID:SGllzMlg
>DBとかに詰め込んだりしてリスト表示したり、デコードのことを考えると
>>53より
>>55の方がいいかもね
それでも桁揃えするメリットが分からない私はバカ?
> valIP = ary(0)*(256^3) + ary(1)*(256^2) + ary(2)*256 + ary(3)
ってどうやって元に戻せばいいんですか?
61 :
51:2005/08/10(水) 22:30:15 ID:???
工エエェェ(´д`)ェェエエ工工
62 :
52:2005/08/10(水) 22:55:41 ID:???
>>60 dim ary(3)
for i = 3 to 0 step -1
ary(i) = valIP mod 256
valIP = valIP \ 256
next
strIP = join(ary,".")
63 :
57:2005/08/10(水) 23:50:26 ID:???
>>59 ログファイルとかでIP保存するときは
桁が揃った方が出力したときに見やすいと思った。
ちょうど
>>62 で
>>52 さんがデコード方法が書いてくれてるけど、
これだと、SQLの実行結果に処理入れなきゃいけないでしょ?
mod(strIP,(256^4)) & "." & mod(strIP,(256^3)) & "." & mod(strIP,(256^2)) & "." & mod(strIP,256)
ってビュー作ればいいだけの話だけどさ。
まぁこれは運用次第だけどね。
確かに256使った方が列のサイズが少なくなりそうだし。
64 :
57:2005/08/10(水) 23:52:09 ID:???
あ、strIPじゃないね。スマソ
IPアドレスとはそもそもどういったものなのか?
なぜ256という数字がいきなりでてくるのか?
IPアドレスは本来32ビットの数値だよ。
それを人間がわかりやすくするために
1バイト単位に区切ってそれを10進数表記したものが
192.168.0.1とかの文字列になるんだよ。
tmpary = split(txtIP,".")
for i=0 to ubound(tmpary)
tmpary(i) = right("00" & tmpary(i),3)
next
txtIP = join(tmpary,".")
0埋めとか桁あわせとかってあんまり格好良く書けねんだよな
広い意味でASP関連のことだが、
ひとつのグローバルIPがある
サーバが2台ある
光回線終端装置にルータをつないで、
そのルータに
192.168.1.11 Webサーバポート80
192.168.1.12 Webサーバポート80でもなんでも
の2台がつながっている。
この2台を同じドメインで運営することは可能なのだろうか?
>>72 ロードバランサーなんておいたら
どっちにいくか分からないじゃん
>>69 ASPのスクリプトでFormat使えたっけ?
そういえばVBScriptにはFormatはないね
FormatNumberとか実に中途半端なものはあるけどな。
どうして無いんだろう。
78 :
nobodyさん:2005/08/16(火) 22:05:44 ID: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"
要素をループでぐるぐる回す処理しか思いつきませんでした。
二次元配列じゃなくて配列の配列にすれば?
前提の説明が不足していました。
データを2次元配列で保持している箇所については変更不可能です。
既存システムの機能追加ですので。
配列の配列を勧められるということは、2次元配列の場合はぐるぐるするしかないということでしょうか?
大した処理じゃないのでコーディングは全く苦ではないのですが、
1行で書ける処理をぐるぐるするのはカッコワルイなと思いまして。
暫くJavaの世界に行っていたので、VBScriptを忘れてしまったのですよ。
ないと思われ。
Uboundで大きさ取ってループで突っ込むしかありませんな
そうですか。じゃあぐるぐるします。
ありがとうございました。
83 :
nobodyさん:2005/08/29(月) 14:23:57 ID:YVceYwl0
Server.URLEncodeとは逆に、エンコードされた文字列をデコードするメソッドとかありませんか。
URLEncodeと対になるものが、何かASPで用意されてないかと探しています。
でもみつからない。何でないんだろう。困るじゃん。
もしかしてデコードは各自創意工夫をするものですか?
>>83 無い。
デコードはRequestで取り出したときに勝手にされるので普通は必要ない。
85 :
83:2005/08/29(月) 20:41:03 ID:???
そーなんですか。探ってみます。
86 :
nobodyさん:2005/09/05(月) 21:05:30 ID:dzd6pukh
IE6でアンカーにEXCELを指定した場合、
<a href="
http://qupa.xls/"
右クリックで「対象を印刷」と出てきますが、
右クリックしないで印刷は可能でしょうか?
例えば、Buttonを作ってbuttonクリックで印刷とか?
可能であれば、方法を教えてもらえないでしょうか?
お願いします。
>>86 基本的には無理だね。
スクリプトからノークッションで印刷できちゃったら
ブラクラならぬプリクラが出来てしまう。
例えばクライアント側で信頼済みサイトの設定ができるのであれば
wscriptを使えば何か出来るかも。
89 :
86:2005/09/05(月) 23:43:57 ID:dzd6pukh
基本的にはムリですか。
それじでは、ちょっとJavaScriptとダブってしまうのですが
右クリックでオリジナルのメニューを出すことは可能と思いますが、
右クリックで「対象を印刷」のみ出すか、
「対象を印刷」以外はEnableにすることはできますか?
90 :
nobodyさん:2005/09/06(火) 14:50:02 ID:attaS1hZ
会社のサイトの(作成者は別会社)会員(販売店様)限定のところにID/パス
ワード入力せずに発信ボタンを押したら入れたそうです(この画面は会員すべて
共通のもの)。原因を突き止めないといけないのですがどういう原因があるかさ
っぱりわかりません。
あと、ASPで作ってます。
素人なりに考えてみたのはブラウザによって入れたりするのかなー?
とかそのボタン関係の不具合かなー?
とか思ったりしてるんですが、参考意見・もしくは勉強サイト等がありましたら教
えてください。
僕はWEB製作超初心者です。フリーのCGIを落として名前とかを変更するぐらいしか
できませんが、何日間は勉強する時間はできると思います。
91 :
nobodyさん:2005/09/06(火) 15:27:10 ID:LC/QE+cC
↑原因 ウイルス
92 :
nobodyさん:2005/09/06(火) 15:35:11 ID:attaS1hZ
ウイルスぐらいしか考えられる要因が無いですかね?ぜんぜんわかんないので
自分で考えろ!て話なんですが、わからないのでご教授お願いします。
URLは?
94 :
nobodyさん:2005/09/06(火) 20:57:51 ID:WhNf/x2R
2chに書き込むヒマあったら発注した別会社にクレーム付けろよ
ID/パスワードに空文字を登録したバカがいるとか
>>86 視野が狭まっている。よろしくない傾向だな。
「簡単に印刷が出来るようにしたい」だけなのか?
「保存などは不可で印刷だけ許可したい」のか?
その段階に立ち返って、最適な方法を吟味しなおす事をおすすめする。
後者はwebアプリを分かってない奴が仕様を決めたり
客の言い捨て的な要望を営業がのんできちまった場合に多いんだよな。
そんなのに付け入られるとひどい目に遭うぞ。
>>90 あくまで憶測、だが…
1.変数を空文字列に初期化
2.入力されたIDをキーにして、DBから登録されているパスワードを検索
3.取得できたパスワード文字列変数に代入
4.変数に入っている文字列と入力されたパスワードが一致したらOK
という仕掛けだったとすると…
1.変数を空文字列に初期化
2.空IDで検索して該当無し
3.DBから取得できなかったので代入はスキップ
4.変数に入っているのは空文字列で、入力されたパスワードと一致!
となったりしそうな。
>>90 セッション残っていたとかもありがち。
この場合はブラウザを閉じるまで保っちゃう。
空文字で入ったら誰のIDになるか確認するといいよ。
100 :
90:2005/09/07(水) 09:01:05 ID:ZN4XmGrN
アドバイスありがとうございます。別会社にはクレーム付けてるんですが、
動いてくれるかどうか・・・。言われた内容を調べて見ます。
101 :
90:2005/09/07(水) 09:04:09 ID:ZN4XmGrN
>>97 あと会社のPCだと普通に入れないんですが、とりあえずソースをよく見てみますね。
Windows認証が通ったらパス入力画面がスルーする仕様とかだったり。
改行コード部分をカンマにREPLACEしたいのですが…。
>>103 STR.replace("\n",",");
>>104 STR.replace(/\r|\n|\r\n|\n\r/g,",");
106 :
103:2005/09/11(日) 11:15:46 ID:XVWHhBde
とりあえず、
改行コード込みの値が入ってる変数 = strhoge
Dim strA
A = Replace(strhoge, "vbCr", "vbCrLf")
A = Replace(strhoge, "vbLf", "vbCr")
A = Replace(strhoge, ",", "vbLf")
としてます。
MacとWinの改行コードを考慮した結果なのですが…。
みなさんのやってる「STR.Replace...」って、
ReplceしたものをSTR型にしてるって事ですか?
107 :
103:2005/09/11(日) 11:16:23 ID:XVWHhBde
あ、AはstrAの事でしたorz
109 :
106:2005/09/11(日) 12:18:56 ID:???
>>108 あ、ホントだ…
strA = Replace(strhoge, vbCrLf, vbCr)
strA = Replace(strhoge, vbCr, vbLf)
strA = Replace(strhoge, vbLf, ",")
だたorz
ごみん(´・ω・`)
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)の値は正常に取れてるのですが…
>>110 そんな可変長配列の扱いはVBScriptには無い。
つーかそのサンプルがどんな意味なのか分からんが
Dim A()
B = Split(hoge, ",")
ReDim A(Ubound(B))
For nCnt=0 To UBound(B) Step 1
A(nCnt) = B(nCnt)
Next
やるならこんな感じだろうな
この例をもっと短くするなら
Dim A, B
B = Split(hoge, ",")
A = B
ですむな。
テキストエリアに入力された文字について、
前後に改行コードが入っていた場合はTrimで取り除けると思ってたんだけど、
除かれるのは、空白とかだけ。
文字列前後の改行コードだけを取り除きたい時は
どうすればいいのでしょうか?
strWriteData = Replace( strWriteData, vbCrLf, "" )
strWriteData = Replace( strWriteData, vbCr, "" )
strWriteData = Replace( strWriteData, vbLf, "" )
>>115 こうすると、文中の改行コードも全てなくなってしまうのでは?
>>115 細かいけどそれをやりたきゃvbNewLineで置換すればOKだぞ
そして
>>116の言うとおり。
正規表現を使えばよかろう。
Set regEx = New RegExp
regEx.Pattern = "(^\s*)|(\s*$)"
regEx.Global = True
strWriteData = regEx.replace( strWriteData , "")
118 :
nobodyさん:2005/09/16(金) 11:05:43 ID:fPKBboZa
済みません、教えて下さい。
PDFファイルを生成するミドルウェアはなにがおすすめでしょうか。
・主にレコードセットから生成
・画像挿入
・ページ数制御
・ASP.NETに移行の可能性有り
これくらいの事しかやりませんので、
あまり多機能すぎて開発工数がかかりすぎるより、
多少、機能を削っても工数のかからないものがいいです。
予算は50万円くらいです。
(ユーザーを説得できるだけの機能があれば100万くらいまで可)
ASP
IIS 6.0
IE 6.0
よろしくお願いします。
「工数かからないように」の一要素であるノウハウの多さという意味で言うと
PDFlibあたりがいいんじゃない?
ASPで構造体は使えますか?
使えない場合、何か代替でよい手法がありますか?
>>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"が出る。
動的にプロパティの追加が出来るのはtypo耐性が低くてイカン
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キボン。
126 :
125:2005/10/05(水) 20:57:09 ID:QIcIBhGo
質問age忘れた
>>127 遅延書き込みは関係ない気がする…
むしろ実行時にスクリプトを先読みしてる?
あそっか、ASPとかのスクリプトエンジンって
実行時にコンパイルしてんだよな(後の方の構文エラーとかも先に出るし)。
この場合ファイル名がリテラルだから…。
なるほどな。結構色々気を回してくれるんだなASP。
129 :
nobodyさん:2005/10/07(金) 18:51:33 ID:2Dl5nVCp
質問させてください
IIS(4.0)+ASP → ODBC → PostgreSQL
でADO接続しているのですが
.Close & Nothing 作業を行っても
Netstatで確認すると
数十秒コネクションが残ってしまいます。
ASPからDB接続するとデフォルトで
コネクションプールみたいな機能が
付いてたりするのですか?
(ODBCの接続プールは使用していません)
因みにVBScriptで作ってます。
130 :
nobodyさん:2005/10/07(金) 23:08:04 ID:??? BE:36756623-##
>>129 ASPに関わらず、netstatでみると殆どのアプリが数十秒コネクション残るよ
131 :
nobodyさん:2005/10/08(土) 01:00:06 ID:6j6nfXjs
まじっすか!!
実は2000人ほどログインするASPプログラムを
作成する予定なのですが
コネクションが数十秒残るとPostgreSQLでコネクション
限界に達してしまうんですよね…
接続プールやコネクションプールサーバを使用すれば
実現できるのでしょうか…
(もしくはロードバランサーで2台接続?)
みんなどうやってDB接続してるんだろう
情報(人-)謝謝(-人)謝謝です
>>131 DB側のコネクションとネットワーク層のコネクションは別な話だと思うが
>>131 ブラウザ→IIS間のセッションが増えても
その複数セッションに対して一つのコネクションを使いまわす事で
IIS→DB間のコネクション量が膨大にならないようにする
それがDBのコネクションプール
いいや違うね
端末〜Webサーバが同時に2000アクセスしても
Webサーバ〜DBへは同時に2000アクセスするわけではない。
下手すれば並列実行できずに待ち行列だよ
新規DB接続を生成するオーバーヘッドを減らす意味もあるでよ
137 :
nobodyさん:2005/10/09(日) 03:12:32 ID:/MEb5o0Y
DBソフト(PostgreSQL)の接続状況を見てみたのですが
やはりnetstatの接続内容と同じ内容になっていました。
netstat上でもClose後にESTABLISHのまま数十秒
コネクションを維持しています。
Close後にnetstatで見る情報がTIME_WAITEになっていたら
私も気にしなかったのですが…
ASPにてDBオープン
↓
netstat上にDB接続コネクションがESTABLISHで発生する
PostgreSQL上でコネクションが確立する
↓
ASPにてDBをクローズ
netstat上にDB接続コネクションがTIME_WAITEになる
PostgreSQL上のコネクションは開放される
↓
数十秒後にnetstatからコネクション情報が削除される
が私の考える流れなんですが…
あってますか?
因みにASP上のDB解放作業って
Close & Nothing 以外ないですよね?
質問ばっかりですみません
なんでそんなに接続を切りたいの?
複数リクエストに対して一つの接続が
使い回せてればそれでいいじゃん。
いちいち接続を切断するのは逆にオーバーヘッドが増えるって。
>137
コネクションプーリングじゃないの?
>>137 ちなみにPowergesとは何を使って接続してるの?
>140
>129が>137の最初のレスのよーだがそこに書いてある
ODBC経由のADO接続らすぃ
142 :
nobodyさん:2005/10/09(日) 23:02:23 ID:MkiNfj/O
137です。
ASP側でDBをCloseさせた後数十秒間
DB側のコネクションが持続するのが正常な処理であれば
私も問題ないと思うのですが、
コネクションプーリングしていない状況で上記問題が
発生しているためどういう事なんだろうかと頭を悩ませているところであります。
現在
@そもそもそういう仕様なのか?
AODBCの接続プール以外にコネクションプーリングする機能がデフォルトで
存在するのか?
BASP、サーバ設定等で開放するための処理が漏れているのか?
で色々調べているところです。
ASP以外の問題であれば板違いなのですが
@ASPのDB開放処理はClose & Nothing 以外することはない?
AASPのDB接続にて同じような現象に陥った経験はありませんか?
ということを聞きたいです。
>>142 > @ASPのDB開放処理はClose & Nothing 以外することはない?
ない、、、というかこれ以上何かする方法もない
あとIIS4.0ってのはどうにかできないの?
っていうか、複数の端末から同時にIISにアクセスするとして、
IISって並列にDBにアクセスできるんだっけ??
144 :
nobodyさん:2005/10/09(日) 23:43:28 ID:MkiNfj/O
皆様ご回答ありがとうございます!
たまたま手元にあったIISが4.0だったというだけだったのですが
なるほど…IISという可能性もあるかもしれないですね
IISに関してはまだ調べていないんでなんとも言えませんが
少なくともASPのソース自体に問題が無いという事で
要因の一つが消えて安心しました。
>>IISって並列にDBにアクセスできるんだっけ??
できます。
IISプロセスは当たり前にマルチスレッドなので
その各スレッドからのDBへのアクセスは並列になりますな。
147 :
nobodyさん:2005/10/10(月) 21:44:46 ID:47556GXn
Resource Poolingというのをはじめて知りました。
Microsoftのページは見てたつもりだったんですがお恥ずかしい(汗
どうやらADOでMDAC2.1以降を使用している場合
デフォルトで動作するようでこれが原因である可能性が
高い気がしてきました
テストしてみます
ありがとうございました
<input type = file>で参照したcsvファイルで
work_Aというテーブルに書き込めるようなプログラムはどう書けばいいのでしょうか?
参照するcsvはwork_Aテーブルとカンマで区切られて同一構造になってます。
サーバーはSQLサーバーです。
分かりづらい説明かもしれませんが宜しくお願い致します。
Global IP のあるフロントエンドサーバーが ASP で、
LAN にある FreeBSD から text/html なデータをだしたいんだけど、
どういう風にすればいいんですか?便利な proxy とかありますか?
>>148 一旦アップロードしたうえでfsoかadoで普通に読む
or
ADODB.Streamでアップロードも含めて一括でやる
151 :
bob:2005/10/24(月) 14:53:50 ID:txJyGq/T
違うスレでかいたのですがこちらに誘導されましたので
質問させて下さい。
会社でwebデザインをしています。プログラムはASPを使っており
外注しております。そのためASPに興味が出てきたため勉強をしたいのですが
なにから勉強したら良いか分かりません。ASP+SQLServerLです。
また良い参考書などがありましたら教えて頂けますか?
宜しくお願いします。
ASPを勉強中なのですが、サンプルでわからないところがあるので教えていただけないでしょうか?
<%
sCoString = "DBQ=" & Server.MapPath("./sample.mdb") & ";"
sCoString = sCoString & "DefaultDir=" & Server.MapPath("./") & ";"
sCoString = sCoString & "Driver={Microsoft Access Driver (*.mdb)};DriverId=25;"
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open sCoString
sSQL = "INSERT INTO tablename SELECT * FROM [TEXT;DATABASE=C:\mdb].[test.csv]"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sSQL, cn, 3, 3, 1
set rs = nothing
set cn = nothing
%>
とあるのですが、下のほうに
rs.Open sSQL, cn, 3, 3, 1
とあるのですが、
この3,3,1という数字は何なんでしょうか?
どうぞよろしくいお願い致します。
カーソルモードを定数化もしていないようなそんなウンコなサンプルは捨ててしまえ!
>>154 静的カーソル
ReadOnly
コマンドテキスト
複数行入力できるフォームを作り、入力された文中にある特定の行と列の数値で計算を行いたいのですが、
どのような考え方やプログラムを行えばいいでしょうか?
入力する文は数値以外は固定です
例)--------------------------------------
************************** 100
*********** 200 ******
****300
****400
****************500
-----------------------------------------
>159
正規表現。
それがイヤなら数値の前後の文字列をInStrとかで検索して
場所を特定してからMidなどで数値だけ抽出。
(関数名はVBScriptの場合)
>>159 数字以外が固定なら数字のところだけinput type=textにした方がいいんじゃないか…
余計なお世話だが、一度そういう無理をしてしまうと
後々になって全角も認識するようにしろとか
「3千」とかも読み取れるようにしろとか
だけど「八千代商事」とかはスルーしろとか
だんだん要求がアホらしくなっていったりしていくんじゃないかと心配してしまふ
>>161 ime-mode:disabled と javascript で isNaN かけるとモアベター
今、会社でASPの勉強をしているのですが、COMをかなり利用していて全然理解できません。
クラス化とかさっぱりわからないのですが、なにかいい参考書やHPはないでしょうか?
よろしくお願い致します。
>>163 きついようだけど、レガシASP程度で全然理解できないとなると、、、、
多分、ASPの日本語の参考書って10〜20冊くらいしか出てないから
本屋で好きなのを買った方がいい。
>>160 ありがとうございます。何とかInStrやMidなどを使い数値を抽出することができました
本で正規表現を読みましたが、短期間ではちょっと理解ができませんでした・・・
>>161 もともと別データから抽出したデータ中の必要な数値データを計算するだけなので問題ありません
心配ありがとうございます
>>163 いやでも自作COMコンポーネントをたくさん使ってると
後から予備知識無しだと全然読めないよね…
>>166 自作COMコンポーネントだったら参考書買っても無理だろ
ASPで翻訳サイトなどにあるクリックすると枠内にあるテキストが消えることってできるんでしょうか?
ソースを貼り付けて実行しようとしてもエラーが出てしまいます。
>>168 クリックするとテキストボックスが消えるってのはJavaScriptではないのか?
InterDevでASPの勉強してるんですが、
デバックって皆さんどうやってるんでしょうか?
ASP.NETみたいにブレークポイント作っても止まってくれませんよね?
イベントドリブンじゃあないから当たり前なのでしょうか?
今は、logファイルに変数を出力してやってますが、ほかになにかないんでしょうか?
>>170 Microsoft Script Debugger の最新版でできる。
俺は使わないけど。
アンケート画面をつくりたいのですが、
項目の1つに選択項目が7,8個ありまして、
それを1位から再下位まで順番をつけてもらいたい項目があるのですが、
どんな形で実現すればよろしいでしょうか?
アドバイスお願い致します。
>>170 Response.Write "<HR>" & 変数 & "<HR>"
Response.flush
とかを途中にぶち込むと画面は乱れるが大体どうなってるのか分かる
ログファイルに書き出すより、画面の描画の進度と見比べられるので俺は好み。
>>172 Javascriptのテクニックになるのでスレ違いだな
なんか、クライアントサイドとサーバサイドの区別も付かないヤツが多いな。
とりあえずJavaScriptくらい極めればいいのに。
そうすればJScriptでASP組めるし。
>172
テキストフィールドを1つ用意してカンマ区切りで入力してもらえば?
すみませんがスレ違いかもしれませんが教えてください
Server2000から2003に移行をしているものです。
IIS5.0では上手くいってなのですがIIS6.0にした途端
Session変数(関数?)がページ間で上手くわたらないのですが
なにかIIS6.0の設定が必要なのでしょうか?
クッキーもページ間で値渡しができなくてこまっています。
(クッキー自体はもしかしたら登録すらできてなかも・・・。)
いろいろ調べたのですが、なかなか出来なくて困っています
もしよろしかったら教えてください。
IIS5.0 プロセス分離モード ってやつもやってみましたがダメでした
177 :
nobodyさん:2005/11/01(火) 18:19:52 ID:olXap06e
>>176 ageときますスミマセン
おなじ事をサーバーで行なうと上手くいきます。クライアント側がさっぱりなのです
>>176 クライアントのセキュリティ設定が
その2003サーバに対してCookieを拒否するようになってたりせんか
>>176 ローカルだとうまく動くんでしょ?
なら
>>178 の言うとおりIE側の設定じゃね?
新しいサーバのホストは信頼されてる?
180 :
176:2005/11/01(火) 21:44:58 ID:???
>>178 そうかもしれませんが、server2000では何も設定せずにうまくいくのに
server2003だとクライアント側を設定しなければならなとなると、導入に問題なのですが・・・。
IISの設定じゃないのですかねぇ??
182 :
176:2005/11/01(火) 21:48:44 ID:???
>>181 ホスト名・・・。しらべてみます。うまくいったら報告します。
183 :
176:2005/11/01(火) 21:55:48 ID:???
ホスト名 ビンゴ!!。アドレスにコンピューター名を入れていました。
IPアドレスにしたら完璧に動きました。(LAN内ですので)
みなさまどうもお騒がせしました。まじ感謝です
お世話になります。
現在、asp上のリンクをクリックするとDBにバイナリデータで格納されているpdfファイルを読み込み、
ブラウザに表示をさせるという処理を行っているのですが、
ブラウザに表示できる端末とダウンロードのダイアログが出てきてしまう端末があります。
色々原因を探っているのですが、
今現在わかっているのはダイアログが表示される端末は
全てAcrobat Reader5.0がインストールされているものだということだけです。
しかし、Acrobat Reader5.0がインストールされていてもブラウザに表示できる端末もありました。
また、Acrobat Readerの設定(ブラウザで表示するかどうかの設定)が悪いのかと思いましたが、
pdfファイルをブラウザに放り込んでやるとちゃんとブラウザ上で表示されていました。
さらに、正常に表示できる端末では、
右クリック→対象をファイルに保存 としてやると正常にpdfを保存することが出来ますが、
ダイアログが表示される端末では 対象のファイルがありません のようなエラーメッセージが表示されてしまいます。
ちなみに、現在他のシステムも稼動していますので、
環境を変化させないために全ての端末にAcrobat Readerの最新版をインストールするということは出来ません。
現在わかっていることはこのぐらいなのですが、
ダイアログが表示されてしまう原因は何なのでしょうか?
また、上記で「ブラウザ」と表記しているものは全てIE5.5以上です。
185 :
nobodyさん:2005/11/02(水) 04:34:36 ID:8yGkDJEQ
ASPからWMIを使用し、JScriptで記述した場合の問題に直面しています。
あるフォルダの所有者を取得したいのですが、
VBScriptで以下の用に記述した場合は問題なく動作します。
<%
strFolderName = "C:\\Sample"
Set objWMIService = GetObject("winmgmts:")
Set objFolderSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" & strFolderName & "'")
Dim objSD
intRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD)
If intRetVal = 0 Then
Response.Write( "Ownerは[" & objSD.Owner.Name & "]" )
Else
Response.Write( "Couldn't retrieve security descriptor." )
End If
On Error Resume Next
%>
186 :
nobodyさん:2005/11/02(水) 04:35:05 ID:8yGkDJEQ
しかし、JScript版で以下の用に記述した場合、
'Owner' は Null またはオブジェクトではありません。 と表示されます
<%
var strFile = "C:\\Sample";
var objWMIService = GetObject("winmgmts:");
var objFolderSecuritySettings = objWMIService.Get("Win32_LogicalFileSecuritySetting='" + strFile + "'");
var objSD;
varintRetVal = objFolderSecuritySettings.GetSecurityDescriptor(objSD);
if ( intRetVal == 0 ) {
Response.Write( "Ownerは[" + objSD.Owner.Name + "]" );
} else {
Response.Write( "Couldn't retrieve security descriptor." );
}
%>
JScriptで記述した場合、何故objSDはundefinedになってしまうのでしょうか?
どなたかこの現象の原因のわかる方どうか解決方法のご指示をお願いします。
m(__)m
>>186 > var objSD;
JScriptの場合、これだけでは定義したとはいえない。
この状態で objSD の値は null 兼 undefined
>>184 Response.ContentType を明示的に宣言してる?
189 :
186:2005/11/02(水) 09:56:01 ID:8yGkDJEQ
>>187 レスありがとうございます。
自分ではGetSecurityDescriptor()にobjSDを渡せば、
内部でobjSDに対して何某かのインスタンスが生成されて
情報がセットされ戻ってくると思い込んでいたのですが、
それはつまりGetSecurityDescriptor()に渡す前に、
既に何某かの型でインスタンスを生成してobjSDに参照させていないのが
今回の原因ということでしょうか??
>>184 ブラウザのキャッシュを空にしたりすると動きが変わるかも知れない
それを差し引いてもAcrobatReaderの設定は揮発するから微妙なところだな
んで他のシステムではAcrobatReaderを何に使ってる?
他の同様のシステムではPDFがブラウザでちゃんと表示できてるのであれば
>>188氏の言うとおり、ContentTypeでapplication/pdfを明示的に指定することで
うまく行くようになるかも知れないと思われ
>>186 JScriptには参照渡しが無いからそういうメソッドは使えねえべ
>>189 >>191氏も言っているがJScriptにおける代入は "=" のみ。
関数の引数は全て読み込みのみになる。つまり値渡しか使えない。
関数の中で引数の値を変更しても、外には出れない。
193 :
184:2005/11/02(水) 23:46:26 ID:jsGUnMcJ
>>188>>190 どうもありがとうございます
>>Response.ContentType
Response.ContentTypeはapplication/pdfを指定しています。
>>キャッシュ
IEのインターネットオプションでキャッシュを削除してみたところ、
1台のみpdfが表示できるようになりました。
しかし、表示できるのは初回のみで、
2回目以降は表示できませんでした。
また、no-cacheの指定もしてみたのですが、
この指定をしてしまうと初回時に表示することが出来なくなってしまいました。
(Microsoftのサポートページにキャッシュを制限する指定をすると
ダウンロードダイアログが表示されてしまうという既知の問題が載っていましたので、
おそらくこれが原因だと思われます。)
また、他のシステムで実際にpdfが使用されているのかはよくわからないそうです。
しかし、やはり環境を変えたくないという事と、
端末は各店舗にあり、使用しているのはパソコンの素人であることから
Acrobat Readerのアップグレードはしたくないそうです。
長くなりましたので2つに分けます。
194 :
193続き:2005/11/02(水) 23:47:30 ID:jsGUnMcJ
以上のことにより、代替案を考えてみました。
DBからバイナリデータを読み込み、一時ファイルとしてサーバーに書き出す。
そのファイルに対してリダイレクトを行う。
というものなのですが、この案にも問題があります。
1.ASPには標準ではバイナリデータの書き出しが出来ないので、どのようにして一時ファイルを書き出すのか。
2.pdfには個人情報が含まれているので速やかにファイルの削除をしたいが、
pdfの読み込み終了を待ってからファイルの削除をすることが出来るのか。
の2点です。
1に関しては、ADODB.Streamというものがあるそうですが、
現在ではセキュリティの問題上、IEでは使用することが出来ないそうなのです。
色々調べてみたところ、BASP21というものが存在し、
それを使用すれば書き出すことが出来るそうなんですが、
現在自宅に居るため確認が取れない状態です。
2に関しては、1日に一回バッチを走らせてファイルを削除することを考えていますが、
24時間という時間が「速やか」かと言われると問題があると思います。
>>184の内容、もしくは今回の代替案に関して
こうしたらいいのではないかという意見がありましたら教えていただけないでしょうか?
>現在ではセキュリティの問題上、IEでは使用することが出来ないそうなのです。
その書き出しはサーバ内で行われるものでしょ?
IE関係ない。ADODB.Streamで普通に出来る。
>2.pdfには個人情報が含まれているので速やかにファイルの削除をしたいが、
>pdfの読み込み終了を待ってからファイルの削除をすることが出来るのか。
普通に考えると出来ないね。
他の方法を考えた方が良さそうだな。
あとはダメ元でcontent-disposition:attachmentとかを使ってみると
関係無さそうだけどまた状況が変わるかも…
つかそれ以前にその状況って、pdf直リンクならちゃんと開けるのか?
Content-typeをちゃんと設定してバイナリ吐くんだったら
クライアント側に流れるパケットはpdf直リンクとほぼ同じになるはずなのだが?
直リンクでちゃんと開けるのであったら…本気で解決したいなら
etherealとかでpdf直リンクの場合とバイナリ出力aspの場合の
それぞれのレスポンスヘッダをキャプチャして違いを見てみて、
違いがあったらバイナリ出力aspにヘッダを追加する。
それが一番手っ取り早い。
>>194 AcrobatReader5 のブラウザ内表示は悲惨なんだよ。
「Web表示用に最適化」がONになってるPDFをブラウザ表示させるとページが落丁したりする。
Adobeのサポートページに色んな情報があるから見てきな。
>>193 PDFのブラウザ表示はクライアント側の設定に依存するから
サーバ側でどんなにやったって無理なものは無理だよ。
198 :
186:2005/11/03(木) 20:35:58 ID:KtvlL72l
>>191,192
レスありがとうございます。
そしてJScriptに参照渡しが無いことを始めて知りました...orz
当たり前に存在するものだと...orz
するとJScriptではGetSecurityDescriptor(引数)に値する処理は、
行えないのでしょうか?
それともまったく別の記述方法でならDACLに値するものを取得することは
可能なのでしょうか?
199 :
184:2005/11/06(日) 23:28:23 ID:???
レスが遅くなってしまって申し訳ありませんでした。
皆さん色々なアドバイスどうもありがとうございました。
SEと相談し、結局SEが何かしら対策を考えるから今のまま作っていくことになりました。
色々アドバイスを頂いたのにもかかわらずこんな結果になってしまいましたが、
とりあえずはこのまま作っていきます。
本当にどうもありがとうございました。
>>199 いや、元々システムの設計としては間違ってないんだよ。
AcrobatReader 5.0の動き、ひいては
そんな微妙な動きをする時代遅れの古いバージョンを使い続ける…というのが良くない。
IEやOSのバージョンが上がってるんだからプラグインもバージョン上げていかないとねえ。
まぁガンガレ
201 :
nobodyさん:2005/11/10(木) 16:34:58 ID:l71/uwis
ASP.NETを使い始めたばかりで、今試行錯誤しながらテストしているのですが、HPを作る際に
画像を貼り付けたのですが、ftpでweb上にアップロードし、確認しようとしてみてみると
画像やコンボボックス等のオブジェクト類が一切表示されていません
ツールボックスのWEBフォームからオブジェクトを持ってきたのですが、HTMLのオブジェクトだと
表示されるようです。
.netによるデバック時は表示されているのですが、 web上だと表示されないのは何かが
足りないからかと思うのですが、わかりません。
漠然としていて申し訳ないですが、「これがないとダメポ」というのはありますか?
XMLファイルが無いのですが、これって関係ありますか?
203 :
201:2005/11/10(木) 19:15:00 ID:???
ありがとう。そっちに逝ってきます
204 :
668:2005/11/11(金) 11:39:15 ID:CsKh1TLX
リストボックス内のすべての値をRequest.Formにて取得したいのですが、
現状セレクトされている値しか取得できません。
どうすれば、取得することができるのでしょうか?
>>204 Javascriptのテクニックになるのでスレ違いだが
submitする直前にselect のmultiselectをonにして
全optionをselectedにしてからsubmitすればいい。
206 :
668:2005/11/13(日) 11:23:37 ID:GnU/8u4f
>>205 ありがとうございます。
やっとできました。
以下のbatファイルをASP化しようと思っています。
cmd /c net user vaio > I:\temp\test.txt
VBS化のソース↓
Dim WshShell
Dim rtnCode
Const SW_HIDE = 0
Set WshShell = CreateObject("Wscript.Shell")
rtnCode = WshShell.Run("cmd /c net user vaio > I:\temp\test.txt", SW_HIDE, True)
If rtnCode <> 0 Then Error rtnCode
というVBSは成功しました。
でもここからASPにできません。方法ってないですか?
<%@ Language=VBScript %>
<html>
<head>
</head>
<body>
<%
' 処理がとまってしまう
' DOSコマンドでも同様
Dim WSHShell
Set WSHShell = Server.CreateObject("WScript.Shell")
WSHShell.Run "notepad.exe", 3, false 'メモ帳を起動します。
' Microsoft VBScript 実行時エラー (0x800A01A8)<BR>オブジェクトがありません。: ''<BR>
'Dim WSHShell
'Set WSHShell = WScript.CreateObject("WScript.Shell")
'WSHShell.Run "notepad.exe" 'メモ帳を起動します。
' Microsoft VBScript 実行時エラー (0x800A0046) 書き込みできません。: 'MsgBox'になる
' MsgBox "メモ帳を起動しました。"
%>
</body>
</html>
209 :
208:2005/11/17(木) 19:58:44 ID:???
考えられる原因は?
>>209の書き方がちょっとカチンとくるがヒントを出してやるか
>>207-208ともに
ASPのスクリプトがサーバ内でどういう権限で動作するかって所を考えよう
>>207はWMIを使うという選択肢もあるかも。
>>208は…そのページにアクセスするとサーバでメモ帳を立ち上げたいのか?
意味が分からん。
211 :
208:2005/11/17(木) 20:41:09 ID:???
>>210 ありがとうっございます。
サーバ処理の概念がいまいちわかってないかもしれません。
WMIを検索して勉強してみます。
212 :
208:2005/11/17(木) 22:32:37 ID:???
うーん。
ASPでCMD処理って敷居高いのかな。。。VBの時はすんなり出来たんだけど。
>>212 敷居が高いの使い方がまちがっている
まあ、アクセス権限だな
最強に強まっていいのなら
IWAM_USERをAdministratorsグループにぶち込めば
大抵の事は可能になるが。
どうしても分からないことがありますので、どなたか教えて下さい。
以下のsampleソースを参考にメール送信フォームを作成したんですが、
CCにて、複数の宛先に送ることができません。(Toは固定アドレスです。)
参考にしたURL:
ttp://narita-system.co.jp/sendmails.htm ASP(VBScript)部分をこんな風にしてみたんですが、objNewMail.Cc = 変数;変数とすると、
読み込みエラーを起こして、表示自体ができなくなります。
objNewMail.Ccに1つの変数のみなら正常に送信できます。
この例でいきますと、objNewMail.Ccにて変数:nameと変数:bossに送りたいのですが、どうすれば良いのでしょうか?
どうか、よろしくお願いします。
<%
Set objNewMail = CreateObject("CDONTS.NewMail")
objNewMail.From = Request("mail")
objNewMail.to = "
[email protected]"
objNewMail.Cc = Request("name");Request("boss")
objNewMail.Subject = Request("name") & "さんのご意見"
objNewMail.Body = Request("comment")
objNewMail.Send
Set objNewMail = Nothing
%>
お願いします。
objNewMail.Cc = Request("name") & "," & Request("boss")
やないの?
>>216 あっさり、できました!!!ありがとうございました!!
感謝します!!!
DBからデータを取得して、
Office XP Webコンポーネントを使用して、
2軸のグラフを表示したいのですが、
どこか参考になるサイトありませんか?
あちこち調べてみましたがわからないので教えていただきたく。
WinServer2003+IIS6.0とOracle10gを組み合わせた
ASPのシステムを作ろうと思っています。
一つ問題がありまして、DB接続認証時にオーバーヘッドが発生しています。
> Set OraSession = CreateObject("OracleInProcServer.XOraSession")
> Set OraData = OraSession.DbOpenDatabase("DB01", "test/test", 0)
上記の処理を走らせるとOpen時に約3秒ほど待たされるのですが
これは解決の方法はあるのでしょうか?
IIS5.0の場合だと一瞬で処理が完了します。何か違いがあるんでしょうか?
222 :
661:2005/11/27(日) 10:29:06 ID:j0DdBp+E
今、会社でASPの開発でInterDev6.0を使用しているのですが、
左側に行数を表示するできないのでしょうか?
左側?
>>222 行番号を表示ってことでしょ?
使ったこと無いから分からんが。
インターデブ。あれ、何がいいのか未だにワカラン。
とりあえず行番号なら多分なかったと記憶してるよ。
InterDevはサーバ側のVBScriptの部分と
クライアント側のJavascriptの部分の両方で
キーワード色分けが出来るのは良かった。
あと現在オープン中の全ファイルからの検索&置換。
とか言いつつも結局今はsakura使ってるがw
まあ少なくともデザインビューは100%使ってなかったな。
色分けに関してはPeggyシリーズがとても良い
最近、Perl・PHPからASPをやり始めたんですが、
ASP(VBScript)についてどうしてもわからないことがあります。
フォームからのPOSTデータを Request.Form() で
取得してるんですが、どうやら100KB以上のデータは
Form では受け取れないことに気づきました。
100KB以上のデータをPOSTする際には
どのように取得するのが一般的なんでしょうか?
(例え100K以下のデータを送信する場合でも、100Kの制限がある時点で、Form は使いたくなくなります…)
調べたところ、100K以上のデータを扱う場合には
data = Request.BinaryRead(Request.TotalBytes)
で取得できるとあったんですが、このデータをどう展開していいのかわかりませんでした…。
すみませんがご教示願います。
まあ普通どんな長文だとしてもブラウザのtextareaに
原稿用紙みっちり埋めて128枚分は書かないからなあ。
あんまり大量のデータだったらファイル添付かな。
Request.BinaryReadで取得したデータはバイト配列なので
基本的にvbscriptではまともには扱えない
(まともじゃないやり方が無いわけではないが)。
VBとかCでDLL作って処理する用だね。
230 :
228:2005/11/30(水) 21:34:55 ID:???
>>229 レス有難うございます。
なるほど、まともに扱えないんですね…
100KB を意識しつつ Request.Form() を使うことにします。
もう一つ不明点が出てきました。
フォームのチェックボックス(name="checkbox")を受け取った場合、
Request.Form("checkbox")(1) などで要素にアクセスできるので
配列かと思い、 IsArray( Request.Form("checkbox") ) をやったところFALSE が返ってきました。
普通の配列は TRUE が返ってくるんですがこれはそういうものなのでしょうか?
チェックボックスかどうかを判断する材料が無くて困っています。
>>230 なんでname="checkbox"なんだよ
適当に分かりやすい名前つければいいじゃんw
234 :
228:2005/12/01(木) 12:15:06 ID:???
>>231 別のモジュールで対応するんですね。
Win2003での不具合についても情報ありがとうございます
>>232 VB配列なるものが普通の配列って意味でしょうか?
となると普通の配列とそうでないものがあるんですね。。
(というかFormは配列じゃなくてただのオブジェクト??)
>>233 checkbox だよってのを明示的にわかりやすくしただけです。
テストでやっていたので業務ではこんなことしませんよw
普通の配列で欲しければ
split(Request.Form("checkbox"),", ")
とかでそれっぽいの取れなかったっけかな
>>234 Formはオブジェクトですな
ちなみに配列についてはVBScript上では
Variantの配列とバイナリ配列というのがあります
Variantの配列がいわゆる普通の配列で、
バイナリ配列は配列というよりただのバイナリデータの塊。
話の流れだとRequest.BinaryRead(Request.TotalBytes)で取得できるのが後者で、
文字列に近いイメージで、ADO.Stream,MidB,AscB,Hexなどを無理やり使えば
ある程度いじることは可能。
>>234 Request とか Session は ASP Built-In Objects だから扱いが別。
Request.Form("checkbox") は IStringList ってオブジェクトだったと思う。
Count で要素数
Item(n) で各要素 (n >= 1)
フォームで送られてくるデータは name と value の組の単なるテキストだから
checkbox かどうかを判別する方法なんてそもそも存在しないよ。
>>237 Request.Formはコレクションジャマイカ?
Request.Form と Request.Form("checkbox") は違う
240 :
NT4.0:2005/12/06(火) 15:14:51 ID:A31iTPx+
運用してるサーバが、突然、
「HTTP/1.1 新しい Session の作成に失敗しました」というエラーは吐くようになりました
原因わかる方いましたら、お願い致します
メモリ不足?
一回再起動してみたら?
242 :
240:2005/12/06(火) 16:32:32 ID:A31iTPx+
すいません
NT4 じゃなくて、2000 Server でした
再起動したら直ったんですけど、
原因不明のままだと、チトまずいんで・・・
243 :
nobodyさん:2005/12/06(火) 17:11:53 ID:XSSghKFO
教えてください。
そこそこ閲覧のあるHPを公開したとして、ソースはなるべく短くし、DBとのやりとり(ストアド等)の数を減らしたり
してあげたほうがユーザー側にも、サーバー側にも負担って少ないですよね?
aspx.vbのソース行数を見ると1000行を軽く突破する勢いなんですが、多すぎますか?
ちなみに目標は1日1万ページビューで、SQL-SERVER+XPです
>>242 セッションが新規作成できないくらいに、メモリ使ってるとか?
メモリを使って開放してないとか?
>>243 そこそこの定義がわからん。
1000行なんてコンマ何秒の処理だろ。
245 :
243:2005/12/06(火) 17:50:50 ID:???
>>244 わかりにくくて申し訳ないです。
そこそこ=目標は1日1万ページビューです
ちょっと安心しました
>>243 aspx.vbはスレ違いだが…
まあソースは短いに越したことは無いが、
1000行程度ならそう長い訳でもないだろう。
ASP.netならなおさらクラス定義やなんやかんやでソース上で行数食うしね。
DBとのやり取りも回数を減らすに越したことは無いが、
大抵はそれより「途中で無駄なデータを発生させない」ように
気をつけておいた方がいい。
たとえば20件ごとに表示するのに、データ全行取り出して
要らない部分を空読みしてスキップ、
というようなことをやるとデータが増えるにしたがってたちまち重くなる。
ソースが短いからといって負荷が軽いとは言えない。
asp.netってコンパイルするんでしょ?
じゃぁ1000行なんて余裕でしょ。
多少長くても、定義やセッションの切断とかを明確に書いた方が早いことが多いよ。
>>248 実はレガシASPも実行時はコンパイルされてるぢょ
250 :
nobodyさん:2005/12/07(水) 11:04:22 ID:Q9Fd97MO
a = Split(b, ",")
nCnt = 0
' EOFまでループ
Do Until OnjRS.EOF
' DBからの値を格納
hoge = NVL(ObjRS.Fields("hoge_id").Value, 0)
' 配列aのnCnt番目の値が、DBからの値と同じ時だけ、cに代入
If a(nCnt) = hoge Then
c = "ifの中"
End If
OnjRS.MoveNext
Loop
a(nCnt)部分でエラーが出ます。
過去ログなどから、UBoundで配列の最大要素番号を指定してから出ないと
エラーになることはわかったのですが、
実際、どのように書いたらいいのかわかりません…。
251 :
250:2005/12/07(水) 11:36:40 ID:???
解決しますたm(__)m
激しく勘違いを…(((;゚Д゚))) ガクガクブルブル…
252 :
228:2005/12/07(水) 17:23:06 ID:???
すみません、レス遅れました…
>>235 カンマ区切りの文字列を分解して配列にするイメージっすね。
チェックボックスがチェックされていなかったり、
一箇所のみチェックだったりしても split はエラーを返さないんですね
>>236 なるほど、やっぱり二種類あるんですね…
いまいち二種類を使い分ける方法がよくわかってません。
恐らくその種類によって使えるメソッドも変わるんでしょうね…
>>237 checkbox かの判断の意図は、
チェックボックスかがすぐわかれば、それでループかけて
どこがチェックされてるか調べることができるのかなと。
(PHPでは連想配列で入ってくれてたので、キーの指定だけで判断できました)
みなさんはどうされてるんですかね??
(というか普通はどうするものなんだろう…)
何か簡単なフォームASPのサンプルって転がってないですかねぇ…
VBScriptがなかなかなじまない…
253 :
228:2005/12/07(水) 17:34:56 ID:???
結局のところ、フォームからのクエリを処理するために、
Request.Form の値を、
Set Query = CreateObject("Scripting.Dictionary")
とした連想配列(オブジェクト?)Queryにコピーしてから処理してます。
一般的にクエリを取得する場合は、Request.Form の 100KBの壁は無視されるのでしょうか?
それとも、ADO.Stream か BASP21 のようなツールを使って
Request.BinaryRead(Request.TotalBytes) からちゃんととるのでしょうか?
それと、ASPで連想配列を使いたい場合は、
Set Query = CreateObject("Scripting.Dictionary")
が一般的でしょうか?
また、連想配列の連想配列の場合は、
-----
Dim a1, a2
Set a1 = CreateObject("Scripting.Dictionary")
Set a2 = CreateObject("Scripting.Dictionary")
a2.add "key", "value"
a1.add "key", a2
Response.Write( a1.item("key").item("key") & "<hr>")
-----
な感じでやっています。
(変なことしてないかな…
すみません、ご指摘いただければと思います。
254 :
nobodyさん:2005/12/07(水) 19:51:07 ID:+pnCfHBy
流れをぶった切ってADSIの質問をさせください。
ASPでユーザー認証を行うため、以下のプログラムを作成しました。
環境はWin2003サーバーとFreeBSD+Samba3.0+OpenLDAPで、
ドメインに信頼関係を持たせています。
以下のプログラムはSambaの握っているOpenLDAPを覗きに行っています。
strPath = "LDAP://xxx.xxx.xxx.xxx/ou=AAA,dc=BBB,dc=CCC"
strUser = "ユーザー名"
strPassword = "パスワード"
Set objDSO = GetObject("LDAP:")
Set objUser = objDSO.OpenDSObject( strPath, strUser, strPassword, 1)
どこをどう変えても動きやがりません。エラー '80072032'とのたまいます。
また、普通に
Set user = GetObject("LDAP://〜〜適当に〜")
としてuser(sambaSamAccount型)を取得した場合に
name = user.Get( "cn" )
とするとユーザー名が取れるくせに、
pass = user.Get( "sambaNTPassword" )
とするとエラー '8000500c'
ディレクトリのデータ型と、ネイティブ DS のデータ型を相互に変換することはできません
とのたまいやがります。
どなたか同じようなことで悩んだ方、よろしくおねがいしやすm(__)m
>>228 複数のcheckboxがある場合はASPでは
>>235みたいにするのが普通だと思う。
splitの後にisArrayで配列になったかのチェックをすればいい。
それと、おせっかいだとは思うが
Dictionaryは確かに便利だがその使い方は無駄だと思う。
Dictionaryを入れ子にしたりして美しくデータを確保してる余裕があったら
さっさとResponse.Writeしていくべき。
基本的にWebプログラムの振る舞いの一般論として
一つのスレッドで大量のメモリを確保するような設計は推奨されない。
それと100KBの壁にずいぶんこだわっているようだが
一体どんな使い方をしようとしているのか?
普通に使っていて一つのinputで100KBに達することは
まず無いと思うのだが。
>>254 cn=ユーザ名, を加えればいいんじゃない
>>255 ご指摘ありがとうございます。
Split の後に isArray、参考になります。
PHP,Perl-CGI で書く時は、フォームのチェックボックス名の
連想配列を作って、そのキーがあるかないかで判断していたので
ASPでも同じ手法でやろうとしてました。
Dictionary等でデータの格納方法に気を使うよりは
素直にprintしてくって指摘も一理ありですね。。
また、100KB についてですが、確かにファイルアップが無ければ
滅多に超える容量ではないとは思うんですが、100KB の制限が
あるものを使うのも設計上どうかと思ってます。
どのようなフォームでも大丈夫なように、制限の無いものがあるのであれば、
あらかじめそれを使いたいってのが本心です。
でも実際のところはどうなのかな?と疑問に思ってました。
別のモジュールが必要だったり、制限があっても気にしないのが
ASPとして一般的であれば、それに越したことは無いので。。
BASPのFormメソッド使うやり方だと
100KBの壁を超えられるのかも・・・?
バグが無ければだけどナー
ASPのフォームでメールアドレスを入力させるときに
ドメインがちゃんと存在するかをチェックしたいと思っています。
VBScriptにMXレコードを見るなどのモジュールは存在しますか?
>>258 あるべ。VBScriptにはないけど。
標準で頑張るには裏でWScript.Shell使ってnslookupを実行する、
とかになるのかな?
261 :
258:2005/12/12(月) 15:52:11 ID:???
>>260 ありがとうございます。
標準ではnslookupからひくしかないんですね。
戻り値の判断が非常にむずかしそう…
>>259 VBScriptではきついってことでしょうか?
何か方法があれば教えていただけると助かります
>>261 VBScriptにはネットワークにアクセスするメソッドがないからね
BASP使ってSocketで何とかするか…
またはVBでDLL作っちゃっても良さそうだけどね
>>261 DNSから引くって考えるより、実際にメールを送信してみた方が早いかも。
ドメインがなければサーバエラーを受け取れるし。
264 :
nobodyさん:2005/12/16(金) 14:00:18 ID:ys2aEO8I
初歩的な質問かもしれませんが
フォームで価格を送信して貰う→数字以外の値が入力されていた場合、エラー表示
ができません。
TypeName関数では無理だったのですが分かる方いたら教えて下さい。
特殊文字「"#$%&'()」のような文字を弾く(エスケープ)するには、
HTMLEncodeを使用する以外の方法はあるんでしょうか?
>>268 そういう特殊文字をどうしたいの?
textboxとかに入力されたそういう文字を何とかしたいのか、
そういう文字を画面に出したいのか、
querystringで渡すときにおかしくならないようにしたいのか、
input type=textの初期値として設定したいのか。
「特殊文字を弾く」なんていう日本語では何をしたいのか全く通じない。
>>269 VBScriptにそんな型なんかねえよ
>270
まぁまぁ。
TypeName("aaa")は"String"を返してくるんだし。
>>270 君のような融通のきかない馬鹿はエンジニアとして失格。
>>272みたいに融通を利かせてしまう奴が
東証のシステムみたいなのを作ってしまうんだろうな。
>>273 なるほど。
>>270が融通のきかない馬鹿な使えないエンジニアであることは
認めるわけですな。ご苦労さん。
>>273 え? 東証のシステムのどこがおかしいの?
おかしいのは周辺の人間であってシステム自体は至極まっとうなもの。
やっぱお前だめだよ。まともなシステムに関わったことないんだね。
カワイソス
なんか香ばしくなってきてるな。
>>270の指摘は、言葉はくどくて感じ悪いが言っている事は至極真っ当だと思う。
>「"#$%&'()」のような文字
って、確かにどれもアルファベットや数字の類ではないけど
それらを十把一絡げに「特殊文字」と呼んで「弾く(エスケープ)」
と言われても何についてのことだか分からない…。
277 :
276:2005/12/25(日) 18:57:56 ID:???
なんか傍から見てると
>>270=言葉遣いがきつく対人能力は低そうだが仕事は細かい使えるPG
>>272=大雑把な雰囲気だけ指図して満足、
その後PGから指示漏れを指摘されると逆切れして相手を馬鹿扱い…
という使えないSE
みたいに見えるんだけどw
しかも
>>274 11:42:36
>>275 11:44:05
これ明らかに
>>272の自演だろw
>>277 いや、自作自演じゃないよ。自作自演つうのは自作自演だと
ばれないようにやるのが自作自演なわけで。しかも
>>275は
>>274に
対するレスでもないし。
やっぱ馬鹿の集まりってのは一味違うねぇ。
この板も早く強制ID制になってほしいものだ
そういえばここって強制IDじゃないんだよね。
さすが過疎板の代名詞
282 :
nobodyさん:2005/12/29(木) 14:08:54 ID:W4CzIrpP
お初で失礼します。
PHPプログラマですが既存のシステムを大人の事情でASP5.0 on IIS5.0への移行を行うことになりました。
だいたい言語仕様やアーキテクチャの仕様を調べたのですが
一つ大きな問題に直面してしまいました。
ASPsessionIDをクッキーでなく、自動でform内にhiddenで埋め込むことはできるのでしょうか?
(GETで?の後につけてはいけない)
クッキーoffでもセッションを使えるようにしなければならないというのが当初からの命題の一つなのです
283 :
nobodyさん:2005/12/29(木) 17:35:44 ID:BZLcPqC6
>>282 普通にできる
hiddenで埋め込んだ値をPOST送信 か Session 変数を使えばOk
>282 ちなみに ASP3.0 な
ん?
Session変数はクッキーで渡されたIDをキーにサーバの値を使うものだから
クッキーレスでは使えないぞ。
それをやるとしたら…うーん。
DB使うか、ApplicationにFreeThreadedDom突っ込んで
そこにデータを出し入れするかかな。
でも実のところHiddenの防御力はCookie以下だということは
認識しておいた方がいいかと。
書き換える気になればquerystringを書き換えるのと大して変わらないので。
>>285 確かに純粋にはくクッキーの一つだけど
でもIEのクッキー設定を無視するからクッキーoff環境でも問題ないよ
IEならどうにでもなるんだけどね…
クッキーレスを要求するっていうことはすなわち
それ以外のブラウザでも使えるようにって要件ではないかと思われる
288 :
nobodyさん:2006/01/01(日) 19:02:30 ID:Vw/N6o5Y
ディレクトリ再帰検索の降順表示について質問します。
<やりたいこと>
@特定のディレクトリの下位階層を無制限に再帰検索して展開表示
Aボタンで判別して最上位ディレクトリのみ表示か、すべて再帰的に展開表示するか選択
B表示されたディレクトリに対してonClickで開閉することが可能
Cソート機能(ディレクトリ名降順表示)
@〜BについてはソースAで動作しますが、Cで四苦八苦しています。
ディレクトリ名の降順表示はソースBの仕組みを使ったり、BASP21のソート機能等も検討しましたが、
問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので
動的配列を使っても展開中で再定義するとおかしくなってしまいます。
ちなみにリアルタイム性と速度を求められるので、テキストやDB格納は現段階では考えておりません。
どなたかアドバイスお願いします。
289 :
nobodyさん:2006/01/01(日) 19:04:32 ID:Vw/N6o5Y
<ソースA>
<%
strPwd = Server.Mappath("./")
BTN = Request.Form("BTN")
x = 0
If BTN = "開く" Then
BTN = "閉じる"
strCatDisp = "display:block;"
Else
BTN = "開く"
strCatDisp = "display:none;"
End If
%>
<script language=JavaScript>
function ClickShow(catid){
if(document.getElementById){
if(document.getElementById(catid).style.display == 'block'){
document.getElementById(catid).style.display = 'none';
} else {
document.getElementById(catid).style.display = 'block';
}
}
}
</script>
<form method=POST>
<input type=submit name=BTN value='<%=BTN %>' class=submit>
</form>
290 :
nobodyさん:2006/01/01(日) 19:06:01 ID:Vw/N6o5Y
<%
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Call DirSearch(strPwd)
'ディレクトリ検索
Sub DirSearch(TmpDir)
Set objDir = objFSO.GetFolder(TmpDir)
Set objSubDir = objDir.SubFolders
x = x + 1
For Each objSD In objSubDir
Response.Write "<span style='cursor:hand' onClick=ClickShow('cat" & x & "')>" & vbCRLF
Response.Write objSD.Name & vbCRLF
Response.Write "</span>" & vbCRLF
Response.Write "<br>" & vbCRLF
Response.Write "<div id=cat" & x & " style='" & strCatDisp & "'>" & vbCRLF
Call DirSearch(TmpDir & "\" & objSD.Name)
Response.Write "</div>" & vbCRLF
Next
End Sub
Set objSubDir = Nothing
Set objDir = Nothing
Set objFSO = Nothing
%>
291 :
nobodyさん:2006/01/01(日) 19:06:50 ID:Vw/N6o5Y
<ソースB>
<%
Dim strFile()
Set Fs = Server.CreateObject("Scripting.FileSystemObject")
Set objFiles=Fs.GetFolder("C:\winnt\system32").Files
ReDim strFile(objFiles.Count-1)
For Each objFile In objFiles
tmp0=objFile.Path
For J=I-1 To 0 Step -1
If tmp0 < strFile(J) Then
Exit For
Else
strFile(J+1)=strFile(J)
End If
Next
strFile(J+1)=tmp0
I=I+1
Next
For I=0 To objFiles.Count-1
Response.Write strFile(I) & "<BR>"
Next
%>
292 :
288:2006/01/01(日) 19:09:55 ID:Vw/N6o5Y
忠実に再現しようと思ったら、長くなってしまいました・・・orz
長文失礼しました。よろしくお願いします。
>>288 速さのためって言ってるけど。
毎回全フォルダ情報をクライアントに送りつけるっていうのは
フォルダ階層の数によるがかなり重くなると思う。
俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。
そうしないとしたら、再帰関数内で
@フォルダ内の全子フォルダを関数内の局所配列に取得
(ソートするならその時に)
Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰
とすれば大枠変えずに出来るんじゃないか。
ちなみに
>>問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので
>>動的配列を使っても展開中で再定義するとおかしくなってしまいます。
動的配列の再定義を繰り返すとか文字列の追加追加っていうのは
VBScript on ASPでは禁止事項。
そうやってでっち上げると忘れた頃にパフォーマンス劣化の原因になる。
VBScript上の変数にバッファリングしようとは思わないこと。
生成したデータを片っ端から表示していけるようなアルゴリズムにするのが原則。
294 :
288:2006/01/02(月) 20:27:19 ID:N1rmW7hx
>>293 アドバイス有難うございます。
>>そうしないとしたら、再帰関数内で
>>@フォルダ内の全子フォルダを関数内の局所配列に取得
>> (ソートするならその時に)
>>Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰
>>とすれば大枠変えずに出来るんじゃないか。
@は再帰的に格納するということでしょうか?
再帰するのはDIV表示が終わってからではなく、表示させる前段階で再帰処理する必要があります。
だからといってソートしている最中に再帰する方法だと動的配列の再定義をせざるを得ません。
(が、うまくいきません)
>>俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。
クリック時のフォルダ展開は言い忘れてしまいましたが、画面遷移しないという要件なので、
確かにAjaxが適していると思います。XMLHttpRequestで試してみます。ヒント有難うございました。
>>294 >>@は再帰的に格納するということでしょうか?
いや、そうじゃなくて単階層。
再帰関数の引数は妥当な線だとあるフォルダのパスでしょ?
関数の流れをざっと書くと
1.まずそのフォルダの子フォルダ一覧を配列に取得する。
2.必要があるならソートする。
3.親フォルダのDIV開始タグを書く。
4.そしてfor〜nextで子フォルダ配列をなめながら再帰。
5.親フォルダのDIV終了タグを書く。
こんな感じでやりたいことが出来るのでは?ということ。
296 :
nobodyさん:2006/01/04(水) 13:03:07 ID:O9dUywF6
大量のデータを1ページに50件ずつ1行ずつ表示させる時って、
みなさんはどうしてますか?
今のところ、全データをとりあえず取得して、
Doループで回してるのですが、
どうも負荷が大きすぎて…。
DBの方での質問なのかなとも思ったのですが、
とりあえず。
よろしくお願いします。
>>296 漏れはこんな感じでやってる(実際はもっと細かいチェックがいろいろと)
他にもっといい方法無い?
Dim conn, rs
Dim CurrentPage, i
Const DefaultPageSize = 50
CurrentPage = Request("P")
If CurrentPage = "" Then
CurrentPage = 1
ElseIf IsNumeric(CurrentPage) = False Then
CurrentPage = 1
Else
CurrentPage = CLng(CurrentPage)
End If
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockReadOnly
(厨略)
conn.Open
rs.PageSize = DefaultPageSize
rs.AbsolutePage = CurrentPage
rs.Open
Do Until rs.EOF Or i > DefaultPageSize
Response.Write(rs.Fields(0).Value)
Response.Write("<br>")
i = i + 1
Loop
rs.Close
conn.Close
Set conn = Nothing
Set rs = Nothing
DBがPostgreSQLだったらOFFSETとLIMITを使えば簡単。
SQLServerでも取得するデータ列にユニークなキーがあれば
TOPとnot existsを駆使することで、結構負荷軽めに
レコードセットの中間だけ取り出す事が可能だよ
なるほど。
300 :
nobodyさん:2006/01/05(木) 16:56:41 ID:KdflC/KD
VBScriptで、自分のPC(Win2000)をサーバーにして作業をしています。(この書き方おかしかったらすみません。)
Excelの既存ファイルを開き、データ書き込み、別名で保存ということをしています。
その時、作業フォルダとは別に、Cの直下に、作業フォルダ、開いたファイル、保存したファイルの3つのショートカットができるんですけど、なぜなんでしょうか?仕様ですか?
>>300 Officeいくつ?
あと、ASP越しにやってるの?それともWSH越し?
>>296 開始位置の格納
ページカウンタの格納
DBオープン
rs.AbsolutePosition = 開始位置
[ループ開始]
開始位置=開始位置+1
If 開始位置 = (ページカウンタ * 1ページあたり表示件数 + 1) Then ループ抜ける
[ループ終了]
ページングのためのリンクを表示
しかし全体の行数がものすごく多かったりする場合は
ひょっとするとReadForwardOnlyのレコードセットで空読みするより
素直にランダムアクセス可能なレコードセットを使う方が
結果としては速くなるやも知れんな。
やってみたこと無いから分からんけど。
306 :
300:2006/01/06(金) 09:03:43 ID:1e+7Xjcv
レスありがとうございます。
>>301 そうですか・・・。
>>302 officeは2000です。
後半意味がわかりませんが(すみません)、wsfは使っていないので、ASP越しだと思います。
後、マクロを含んだExcelだと別名保存ができません。
参照設定なども必要なのでしょうか?
以下、ソースです。
<%
Dim XL
Dim XB
Dim OpenFile
Dim SaveFile
Set XL = Server.CreateObject("Excel.Application")
Err.Clear
On Error Resume Next
OpenFile = Server.MapPath("./TEST.xls")
SaveFile = Server.MapPath("./TEST1.xls")
XL.Visible = False
Set XB = XL.Application.Workbooks.Open(OpenFile)
XB.ActiveSheet.Cells(1,1).value = "AAAA"
XB.ActiveSheet.Cells(1,2).value = "BBBB"
XB.Application.DisplayAlerts = False
XB.SaveAS SaveFile
XL.Quit
Set XB = Nothing
Set XL = Nothing
%>
>>306 ASPでOfficeとかShellとかのユーザ的なCOMを操作するのはMSのサポート外。
つまり何が起こっても文句は言えないということ。
ASP越しだとカレントディレクトリや%TEMP%変数の概念がShellと全然違うから
C:\直下に一時ファイルができたり削除されなかったりするのは仕様かもね。
308 :
300:2006/01/07(土) 10:51:35 ID:???
>>307 ふむぅ・・・。そうなんですか。
最終的には、DBからデータを取得して、Excel開いてデータを書き込んで、
マクロ起動してグラフの表示ってことをしたいのですが、前途多難ですな。
ファイルを開くのや、マクロの起動のサンプルを拾って、アレンジしながら試しているのですが、
全く思ったように動いてくれません。
>>308 ASPでグラフ表示はVMLを使うのが普通
棒グラフなら単純に画像の横や縦の設定だけでいいんじゃないの?
ビローンと伸ばすかギュッと縮めるかっつーことで
312 :
300:2006/01/09(月) 08:51:14 ID:???
スキルアップもかねてということで、Excel操作ができるようにと、提示されているのです。
VMLって、IEのバージョン限定でしか使えないんじゃないですか?
>>312 確かにIE4より前だと使えないが、
そんな古い環境じゃDHTMLもろくに使えないし、
今更そこまでサポートせんでもいいだろ。
ちなみにExcel.Applicationをサーバで使うのは
今ではMSの完全サポート外、むしろ止めとけって事になってるので
そこは気をつけておいた方がいいぞ。
元々Excelはクライアントアプリだから意味合い上ライセンス的にも微妙だし。
MS的にはOffice Web Componentでも使え、って話だ。
>>312 ASP使ってグラフ表示っていうと、イントラでしょ?
イントラならIE限定でいいんじゃね?
それにIE以外だとxlsファイルもブラウザで直接見れないんじゃなかったっけ?
>>300 SVG使えばいんでない。
とりあえず、IEでもプラグイン入れてれば見れるし。
316 :
nobodyさん:2006/01/14(土) 16:04:19 ID:6WSzNtEC
ASPのIf文の条件として
varDateというある日付の入った変数を
システム日付プラス1日より過去のものはtrueという
条件をつくりたいのですが、どう記述すればよろしいでしょうか?
よろしくお願い致します。
DateAdd(d,1,Date()) > varDate
質問です。
Response.ContentType="application/vnd.ms-excel"
Response.AddHeader "Content-Disposition" , " attachment; filename= data.csv"
Response.Write csvdata
この様な感じで、csvファイルをクライアントに保存させようとしています。
100件程度なら問題ないのですが、数千単位のレコードになると保存のダイアログは出るものの、
ダウンロードのファイル名もaspのファイル名になってしまい、保存できません。
何か対処方法はありますでしょうか?
319 :
nobodyさん:2006/01/16(月) 16:01:10 ID:UBjBFy/D
320 :
nobodyさん:2006/01/16(月) 17:08:53 ID:rp3amqOf
つContent-lngth
ASP.NET(aspx)ではなく、既存のASP(asp)の『Server.createObject』を
使用して呼出すことの出来るDLL(COM)を、.NET2003で作成したいのですが、
どうしても上手くいきません...orz
〜試したこと〜
@C# ⇒ クラスライブラリで作成 ⇒ 「COM の相互運用機能に登録」オプションをtrue ⇒ DLL完成
A試しに、VBSから@で作ったDLLを呼出して見る(createObject) ⇒ 成功
BASPから@で作ったDLLを呼出して見る(Server.createObject) ⇒ 失敗..orz
ファイルまたはアセンブリ名 ClassLibrary5、またはその依存関係の 1 つが見つかりませんでした。
VBSから呼出せるってことは、レジストリに
登録されてるってことだと思う。(実際に登録されている)
なんで、ASPからだと使えない?
>>322 IUSR_XXXがDLLに対するアクセス権を持っていない……とか。
324 :
322:2006/01/17(火) 15:03:56 ID:???
DLLをC:\winnt\system32の下へ持っていったら...orz...動いた...
なんで?レジストリには、DLLのファイルパスまで
あったし、VBSも動いてた!!
全然、わからない!!
つ 自分のアカウントの PATH とIISサービスの PATH が同じとは限らない。
というか違う。
326 :
nobodyさん:2006/01/17(火) 21:05:04 ID:4JhQoD7f
aspのソースって暗号化出来るんでしょうか?
dbの接続のパスとか書いてるそのままのソースを置くのは、
ちょっとアレかな〜と思いまして。
DBの接続文字列とかはレジストリに登録してそれをCOMあたりで呼び込むのがいいと思う。
(レジストリってVBScriptから直接呼び出せたっけ?)
WshShell.RegRead()使えば読める……はず。そいや使ったことないや。
331 :
638:2006/01/21(土) 13:32:23 ID:GsEUkG9T
ASPにてシステム日付の3日前の日付を取得したいのですが、
下記のようにすると変数varAに 38735 という数字が入ってきます。
システム日付の1日後のvarBには 2006/01/22 と入るのですが、
x日前の日付の取得はどうすればよろしいのでしょうか?
varA =DateDiff("d", 3, date)
varB =DateAdd("d", 1, date)
>>331 varB =DateAdd("d", -3, date
333 :
nobodyさん:2006/01/21(土) 18:49:21 ID:AIj0kho+
326に便乗質問
俺はweb.configに置いてるけどweb.configはサーバーだけで動くとか何とか
呼んだ気がするから安心してたけどひょっとして安心ではない?
334 :
638:2006/01/21(土) 19:00:34 ID:GsEUkG9T
>>332 なるほど、DateAddを使うですね。
ありがとうございました。
>>333 ここはASP.NETスレじゃないよ><
ASP → ASP.NET より
ASP → PHPのほうが、乗換えとして、自分の好みに合っている気ガス
そんなあなたにpythonですよ
ASPにはhtmlエスケープの関数ってありますか?
昔どこかのサイトで見かけた気がするのですが
失念してしまいました…。
>>339 レスありがとうございます。
VBscriptで書いてしまったので、
replaceでしこしこやってみますorz
>>338-340 Server.HTMLEncode() のことじゃないの?
そうならVBScriptでも使えるけど。
342 :
nobodyさん:2006/02/01(水) 18:59:54 ID:Im+A4ONK
かなり行き詰ってて助けてください。
Framework2.0(C#)ベースで作ったDLLをASPで動かしたいのですが、
XPのiis上ではうまく動くのに2003Serverのiisではクリエイトで失敗します。
Set hoge = Server.CreateObject("hoge.hoge")←ここで失敗
両環境下でRegAsmで登録しFrameworkのバージョンも同一です。
なぜ動かないか分からないのですが、
どなたかご教授お願いします。
344 :
342:2006/02/01(水) 21:45:57 ID:???
>>343 Server オブジェクト エラー 'ASP 0177 : 80070002'
Server.CreateObject に失敗しました
です。
権限とかの問題でしょうか?
>>342 %SystemRoot%は、両方のOSで同じ名前?
346 :
342:2006/02/01(水) 22:18:40 ID:???
>>345 2003サーバの%SystemRoot%が標準で:/windows/system32なら同じにしてます。
347 :
345:2006/02/01(水) 22:21:21 ID:???
>>342 違ってたらゴメンネ。海外のサイトで同じような質問していて
I suspect this is because the DLL is not in a particular location that the CLR is looking
when you create the object. Try copying the DLL to C:\Winnt\System32 or C:\Windows\System32
depending upon whether you have Windows 2000 or Windows XP Professional / 2003 Server.
って答えてたから。
348 :
342:2006/02/01(水) 22:33:26 ID:???
>>347 確認しましたらC:\windows\system32にDLLをおいてTLBを作成しているので
ほかに原因があると思います。
もしかしてRegasmで登録しているのが原因でしょうか?
349 :
342:2006/02/02(木) 02:42:30 ID:bVYIWBsA
どうしても解決しないので一旦age
ASPでIPアドレスの比較(?)をしたいと考えています。
IPマスクで192.168.1.0/24のような形式のもの(20項目程度)と$ipを比較して含まれていれば真を返すにはどのようにすればいいのでしょうか?
鯖はWinXP ProのIIS(.net Framework無し)、開発環境はVS.net 2005 ExpressEditionです。
範囲の問題じゃないの?
まんま24ビットの整数にしてAnd取る……って話ぢゃないのか。
.NETは知らんがVBSじゃオーバーフローしたような記憶が
>24ビットの整数にしてAnd取る
>>350 IPが連続してるなら正規表現、
バラバラであれば配列にして比較するか、DBを使ってるならSQLだな。
VBSでもちゃんとCLngすれば24bitも大丈夫だよ
357 :
350:2006/02/06(月) 02:39:19 ID:???
レスありがとうございます。
$ipになってましたがipのミスですorz
検査してくれるような便利な関数があれば良いなぁと考えてたのですが無いのですか・・・。
やはり/で2つに分けて地道にホゲホゲさせないと駄目なのでしょうか?
358 :
nobodyさん:2006/02/06(月) 10:00:27 ID:kQjET4Ig
文字列から検索対象文字がいくつあるかカウントする関数はありますでしょうか?
strTest という変数からchar(10)の改行文字のカウントをしたいのですが。
俺なら地道にFunctionステートメントで、InStr()関数と
For〜Next文でループさせて数えるけどね
>>350 ipaddrとipnetの間で比較する流れを完全に想像だけで書いてみるw
function conv(ip)
Dim ipary
ipary = split(ip,".")
conv = clng(ipary(0)*256^3) + clng(ipary(1)*256^2) + clng(ipary(2)*256) + clng(ipary(3))
end function
function bitmask(masklng)
Dim mask
mask = clng(0)
for i = 31 to 31-masklng
mask = mask + clng(2^i)
next
bitmask = clng(mask)
end function
function check(ipaddr,ipnet)
ary = split(ipnet,"/")
netaddr = conv(ary(0))
mask = bitmask(ary(1))
if (clng(netaddr) = clng(conv(ipaddr)) and clng(mask)) then
check = true
else
check = false
end if
end function
clngの挟み方は適当。多分使いすぎ。
bitmask辺りは99%の確率でバグってる悪寒w
361 :
360:2006/02/06(月) 22:24:50 ID:???
ミスった!
bitmaskのforはstep -1 でw
362 :
nobodyさん:2006/02/07(火) 09:32:11 ID:o795fuVl
レコードセットで、[列名]hoge1,hoge2,hoge3,hoge4.....hogeXXの項目のデータを取ってきて、
このデータを変数に格納したいのですが、
今のところ、
hoge1 = objRS("hoge1")
hoge2 = objRS("hoge2")
hoge3 = objRS("hoge3")
と言ったかなり格好悪いやり方をしています。
これを、スマートにするにはどうしたらいいのでしょうか。
ちなみに
1回目のレコードセットはhoge1〜hoge20
2個目のレコードセットはhoge1〜hoge25
と言ったように、
項目数も変わってくるんです。
ファイルアップで質問です。
レンタルサーバでファイルアップフォームを
作成しているのですが、BASP21が使えません。
(インストールに管理者権限が必要?)
VBScriptのデフォルトではファイルアップは
できないのでしょうか?
もし、他のモジュールを使えば可能なのであれば、
ファイルをコピーするだけで動くようなものを
教えていただけると助かります。
よろしくおねがいします。
367 :
364:2006/02/08(水) 16:53:03 ID:???
>>365,366
親切に回答いただきありがとうございます!
>>366 さんのサンプルを作ったところ、
うまくアップロードできたようです。
ただ、これを使うと通常の値
<input type="text"> などはどうやってとるのかが
知識不足のため、ソースを見てもわかりませんでした…
Upload("textbox") とかでもダメっぽいですね。。
>>367 multipart/form-dataでUPしてBinaryReadで受け取ると
バイト単位の処理になるから、テキストフォームとかと同時にやるとなると面倒くさそうだね。
駄目文字の処理とかも必要になるし。
369 :
nobodyさん:2006/02/09(木) 02:36:56 ID:v3Lm1+ha
Basp21のSendMailメソッドで質問があります。
上記メソッドを使用してメールを送信すると、
指定したアドレスに2重送信されてしまい困っています。
メールを送信する直前にDBへ履歴を登録しているので、
前回送信時刻と現在(今回送信)時刻の差(datediff)が60秒以内であれば、
メールを送信しないような処理をしているのですが無駄に終わっています…。
何かいい回避策があるようでしたら教えてください。
>>368 やはり受け取ったバイナリを手動でとらないとダメなんですね…ありがとうございます。
ファイルアップとテキストフォームの組み合わせは引き続き調べてみます。
>>369 アルゴリズムに問題があるのではないかと
VBScriptで17桁の整数を扱う方法ってある?
通貨型じゃ15桁+小数部4桁だよね?
京の位に達するのか。
ASPでどんな計算をしようとしているんだw
文字列でいいんじゃねーのけ?
>>369 その手の質問はBASPの掲示板でしたほうがいいと思うよ
375 :
nobodyさん:2006/02/10(金) 01:31:16 ID:gbK8yDLA
Ajaxっぽい非同期通信を組み込んでいて詰まってしまいました。
クライアント側
httpObj.open("GET","gettext.asp?sendData="+Data,true);
httpObj.send(null); //これで送って
サーバー側
getData = Request.QueryString("sendData") 'これで受け取る○
これはうまくいったのですが、送るデータ量が大きくなるとオーバーフローエラー
がでてしまいました。そこでPOSTで送ることにしました。
ところが受け取りがまったく反応してくれません。
クライアント側
httpObj.open("POST","gettext.asp",true);
httpObj.send("sendData="+Data); //これで送って
サーバー側
getData = Request.Form("sendData") 'これで受け取る×
getData = Request.QueryString("sendData") 'これで受け取る×
解決策がありましたらよろしくお願いいたします。
>>375 send前に
httpObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
をつけるのをマジおすすめ
378 :
sage:2006/02/10(金) 23:36:15 ID:gbK8yDLA
>>377 無事動きました!ありがとうございます!
win2003鯖(web Edition)+IIS6.0+VBscript+BASP21でメール送信をしようとしています。
PHPのmail()関数を使ってメールの送信ができたのでSMTPには問題なさそうです。
ところがVBscriptからだとSMTPで認証を要求されます。
この場合、実行ユーザが違うから権限が違うのかな、と思ったのですが、
Win鯖にうとくどのサービスがどのユーザで実行するか調べたいのですが、
どこで見れるのか教えていただけますでしょうか
また、ググってみたところ、2003web Editionにはユーザ管理機能はない、
ttp://www.fmmc.or.jp/〜fm/nwts/w2003s/ch1/1_1_3.html
なんて書いてあるんですがまじですか?
>>379 なんだか全然スレ違いくさいが。
>win2003鯖(web Edition)+IIS6.0+VBscript+BASP21でメール送信をしようとしています。
2003ServerにSMTPが動いていて、同じサーバ上からそれを使って送信、
ということでOK?
>VBscriptからだとSMTPで認証を要求されます。
どんな認証が要求される?
ダイアログなどを詳しく。
>この場合、実行ユーザが違うから権限が違うのかな、と思ったのですが、
>Win鯖にうとくどのサービスがどのユーザで実行するか調べたいのですが、
SMTPサービスの実行権限を調べたいなら
コントロールパネル→管理ツール→サービス
>2003web Editionにはユーザ管理機能はない
ActiveDirectoryが無いというだけで、サーバ内でのユーザ管理はもちろんある
>>380 全然見当違いなところのエラーでした。
BASP21でメールサーバをIPで指定していたんですが、
ループバック(127.0.0.1)で指定したら(゚д゚)ウマーでした
おそらくSMTPのリレー関係の設定の問題でした。
ごめんなさい
FileSystemObjectで、仮想ディレクトリ内にファイルをコピーしたり削除する場合、
そのフォルダに対して、
「インターネットゲストアカウント PC名\IUSR_PC名」のユーザーアカウントに、
フルアクセスの権限を与えています。
セキュリティーの観点から、こういうのは危ないんでしょうか?
383 :
nobodyさん:2006/02/15(水) 21:10:42 ID:lSEl6laF
.
.
Dim GetDate
for i=startYear to lastYear
GetDate = obj.xxxx
i = i + 1
next
.
.
このような形で年度別にGetDateに配列でデータを格納しています。
この年度別に作られる配列を一つの配列変数に代入したいのですが、
どうすればよろしいでしょうか?
>>382 フルアクセスは実行権限含むからまずい
読み取り+書き込み、がいいかと。
>>383 >>GetDate = obj.xxxx
にループ変数iが絡んでいないのだが?
あと
>>年度別に作られる配列を一つの配列変数に代入したい
言わんとしてる事はなんとなくは分かるが
やりたいことをもう少し具体的かつ厳密に。
385 :
nobodyさん:2006/02/16(木) 01:51:09 ID:joFVC4f3
ASPをApacheで動かしたい。
何かよい手はないかな?
画像アップロード板みたいなのを作ってるんですが、
データベース部分に、画像のアドレスや、その他情報を書き込み、
画像はBASP21を使いFTPでアップロードしようとしています。
普通なら、トランザクションを開始して、レコードを書き込んで、
ファイルもアップロードしてからコミットという考えだと思うんですが、
webのシステムの場合、ファイルのアップロードのような時間のかかる処理を、
トランザクション内に入れないほうが良いのでしょうか?
webの開発は始めてなので「どうなんだろう??」と悩んでしまい、、、
>>387 アップロードされるファイルサイズによるが、
普通はアップロードが完了してからDBに書き込むと思うぞ。
あと、BASP21はFTPじゃなくてHTTPのアップロードだと思う。
>>388 ファイルの名前をDBのIDと関連付けて登録したかったので、
DB→ファイルのアップロードと考えてました。
アップロード→DBとするなら、
もう1個別に採番用テーブルを作ってそれをファイル名とIDにする感じですかね?
>>389 > ファイルの名前をDBのIDと関連付けて登録したかった
それなら
UP用TEMPフォルダへアップロード
↓
ファイルチェック
↓
DBへ登録&ID取得
↓
正式なフォルダに移動&リネーム
が一番かな。
何にせよ、ファイルアップロードはクライアント側でアップロードをミスることが多いし、
ファイルのチェックとかもしなきゃいけないでしょ?
>>390 それだと最後の移動&リネームが失敗した時、
再度DBのデータを削除なり更新しに行くハメにならん?
>>391 一連の流れにDBのトランザクション使えばよくね?
>>392 >>387のいうファイルのアップロードの大きさが分からないが、
何百メガとかだと、DBのトランザクション使うのはマズいんでないかい?
少なくともロックは排他で、何回もリトライしてください〜の仕様にするしかないか。
IDはIDENTITYで取ればいいんだよ
データ空で一行INSERTした後その新キーを取得してcommit、
その後そのキーで行ロックしてファイルデータをupdateしてcommitしてやればいい。
ファイルデータupdate時に完了フラグも更新すれば
途中で失敗したものとも区別がつく。
つーか既にASPの話題じゃねえな
UP用TEMPフォルダへアップロード
↓
ファイルチェック
↓
DBトランザクション開始
↓
DBへ登録&ID取得
↓
正式なフォルダに移動&リネーム
↓
DBトランザクション終了(commit/rollback)
がいいかもな
396 :
nobodyさん:2006/02/25(土) 00:08:08 ID:5p0RQZcL
dimで宣言した二次元配列をOnClickでコールしたJavaScript関数内で使用する方法を教えてください。
>>396 JavaScriptのコードに展開すればいいじゃん
>>396 a(m,n) → b[m][n]
<script>
<%
Response.Write("var b=new Array("&(UBound(a,1)+1)&");")
For i=LBound(a,1) to UBound(a,1)
Response.Write("b["&i&"]=new Array("&UBound(a,2)+1&");")
For j=LBound(a,2) to UBound(a,2)
Response.Write("b["&i&"]["&j&"]="&a(i,j)&";")
Next
Next
%>
</script>
399 :
396:2006/03/01(水) 05:59:02 ID:/i7BGAMo
>>398 JavaScript関数内でa(m,n)が使用できないのですが...
400 :
nobodyさん:2006/03/01(水) 11:35:16 ID:e/ZVjBAD
getFolderメソッドであるフォルダのファイル名を全部取得します。
ファイル名には規則性があり、数値で1から連番です。
For Each objwk in objFOL.Files
'ファイル名を配列に入れる
ReDim Preserve arrAllFileName(i)
arrAllFileName(i) = ( objWK.Name )
i = i + 1
Next
として取得していますが、
1 2 3 6 7 22 27 と取得できるはずなのに、
配列の要素は
1 2 22 27 3 6 7 となり、
BASP21のSortメソッドを使ってものの順番は変わりません。
ファイル作成時間によってソートされているのではないかと
試してみましたが違うようです。
大変恐縮ですが、ソートする方法をご教授いただけませんでしょうか。
何卒よろしくお願いいたします。」
401 :
400:2006/03/01(水) 11:46:02 ID:e/ZVjBAD
追記;要素を入れるときに要素にCIntしても結果は変わりませんでした。
402 :
400:2006/03/01(水) 12:20:50 ID:e/ZVjBAD
すいません。自己解決しました。
数値型がだめなら、文字型だろ! と決まった桁数に0を補完するようにしました。
例) 1 → 0001 11 →0011
もともと
>>1 2 3 6 7 22 27 と取得できるはずなのに、
ここだよね
XP以降のExplorerならば確かに初期状態だとそうなるけど
ファイル名って文字列だからね。
ソートすると
>>1 2 22 27 3 6 7 となり、
で正しいわけだよ
>>399 サーバーサイドのa(m,n)の値ををクライアントサイドのjavascriptのb[m][n]に引き渡してる
一応過去ログも見てみたのですが、見当たらなかったので質問させてください。
ASP(VBScript)@IIS5.1、OSは2000ServerとXPです。
単純にデーターベース(ADO OBDC)からデータを読み出してResponse.Writeで表示させているだけなのですが
メモ型のフィールドに入力した値がうまく表示できないのです。
入力されているデータ(mdb)を直接Acessで編集してフィールドの方をテキスト型に変更するとうまく表示されます
ASPの方でdbから読み出した値がNULLか空かそれ以外かを先に判定させて、
"それ以外"の場合のみ
Response.Write [dbの値] & "<br>"
と書き出すようにしているのですが。いざ実行すると
<br>
としか出力されない状況です。
通常なら表示されて当たり前じゃないかと思うのですが、どこかIIS等の設定がおかしくなっているのでしょうか?
>>405 NULLだったらどう動くようにしてるの?
408 :
405:2006/03/06(月) 10:13:00 ID:???
>>406 if文で分岐させているのですが、NULL値の場合は
Response.Write "NULL値です"
と表示するようにしています。
>>405 <br>の代わりにvbCrLfを使えばいいということですか?
お二方レスしていただいたのですが、実はついさっき自己解決してしまいました。
dbの値を直接If文の判定式に書いたり、Response.Writeで直接使用していたのが問題のようでした。
一度他の適当な変数を作成してそれに代入してから使用すると、正常に判定と出力をすることができました。
お騒がせしてすみません^^;
まさかとは思うが
If なんとかかんとか = Null Then
とかやってないよな。
410 :
405:2006/03/22(水) 17:47:30 ID:???
>>409 亀レスだけど
If IsNull(変数) Then または If Not IsNull(変数) Then
ってやってた
411 :
nobodyさん:2006/03/26(日) 07:43:17 ID:/latXqRh
質問です。
メールフォームの送信を.aspでやるときに、送信者側のファイル添付は可能でしょうか?
mailer.addattachmentメソッドがあるようなんですが、そのまま使ってもファイルは添付されずに、送信者のローカルPCのファイルへのパスが送られてくるだけなんですけど。
これってもしかして、一旦uploadscript.aspなんかでサーバーへアップロード保存して、サーバー側に保存されたファイルを添付させるという、2段階手続きじゃないとムリなんですか?
その場合、送信するメールフォームと対になるサーバー側の画像ファイルとの関連づけはどのようにするのか悩んでるんですが、何かアドバイス有りましたらよろしくお願いします。
>>411 mailer.addattachment ってなんてあったっけ?
414 :
nobodyさん:2006/03/26(日) 17:42:32 ID:/latXqRh
>>413 おっしゃるとおり、サーバー側にあるファイルを添付するメソッドなので、サーバーに添付されるファイルをアップロードした後、添付送信という手続きをふまなければならないみたいです。
ただ、一つのメール送信フォームに、この手続きをどうやって組み込むのか四苦八苦してます。
具体的には、ファイルのアップロードは、
BFORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
で、処理側の.aspコマンドファイルはSet Uploadというメソッドでサーバー上の任意のフォルダへアップロード、
そして、メールフォームの送信は、
<form action="aspmailform.asp" method="post">
で、処理側.aspには、
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
というコマンドでメール送信という状態なのですが、これらを一つの送信ボタンで出来ないものか悩んでいます。
上記の、aspmailform.aspとuploadscript.aspを一つにして併記してみても機能しないようです(多分、やり方が悪いのかも?)
さらに、addattachmentメソッドはサーバー側のフルパスで指定しなければならないので、送信者のローカルPCのファイルパスを拾って関連づけるのも不可能なような気がするのですが。
というかんじで、困っています。
ASP21というのは、どのような環境で動作可能なのかもう一つ理解していないんですが。
SendMailではなく、ASPMailしかインストールされていないサーバー環境でも動作可能なのでしょうか?
もし可能であれば使ってみようと思います。
415 :
nobodyさん:2006/03/26(日) 17:45:46 ID:/latXqRh
上記訂正、
BFORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
↓
<FORM METHOD="POST" ENCTYPE="multipart/form-data" ACTION="uploadscript.asp">
です、すみません。
SMTPsvg.Mailerは使ったことないからわからないけどBASP21使うとこんなかんじ
チェックしてないんでバグあるかもしれんけど
------------送信側
<html><body>
<form action="fileuptomail.asp" enctype="multipart/form-data" method="post">
From: <input type="text" name="mailFrom"><br>
To: <input type="text" name="mailTo"><br>
Subject:<input type="text" name="mailSubj"><br>
Body: <textarea cols="40" rows="10" name="mailBody"></textarea><br>
File:<input type="file" name="file"><br>
<input type=SUBMIT name=UPLOAD>
</form></body></html>
------------受信側(fileuptomail.asp)
<%
Set bobj=Server.CreateObject("BASP21")
TEMP=Server.MapPath("/temp/")&"\tempfile.tmp"' 一時保存ファイル
SMTPname="*.*.*.*"' SMTPサーバーのIP
' FileSave
a=Request.TotalBytes
b=Request.BinaryRead(a)
f=bobj.FormFileName(b,"file")
fsize=bobj.FormFileSize(b,"file")
filename=Mid(f,InStrRev(f,"\")+1)
l=bobj.FormSaveAs(b,"file",TEMP)
' Mail
msg = bobj.SendMail(SMTPname,bobj.Form(b,"mailTo"),bobj.Form(b,"mailFrom"),bobj.Form(b,"mailSubj"),bobj.Form(b,"mailBody"),TEMP&"|"&filename)
%>
とりあえずaspのシステム作るなら、basp21は突っ込んどくオイラ。
なんだかんだで、永い間使ってて安心して使える。
WinCEでの開発なんで自力でbasp21っぽいの作ってるオイラ
バグだらけで不安になりながら使ってる
419 :
nobodyさん:2006/04/10(月) 20:06:46 ID:3UIEjnKE
下記ソースは5年ぐらい前に作ったんですが、またこれが必要になったので
バックアップから引っ張り出してIISに貼り付けましたが動きませんでした。
以前は動いたのに。
現在の動作は、VBS中にExlを書いてもスルーされて
次のプログラムに行ってしまいます。
どこを直せば動くようになるんでしょうか。
よろしくお願いします。
テスト環境はWinXPproです。
セキュリティパッチは全て当ててます。
動くようになれば2003鯖に実装予定です。
Sub Exl
Dim ExcelApp, ExlFile
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing
End Sub
これ、ASPで動かすんなら全体が<% %>で囲まれるから
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
はおかしいと思うんだが
421 :
70:2006/04/10(月) 21:57:23 ID:w8+tUl+V
>>420 すみません、一部記述が抜けてました
subとend subだけが<% %>で囲ってこんな感じです。
<%
Sub Exl
%>
Dim ExcelApp, ExlFile
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value="<%= Year(Now()) %>" & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing
<%
End Sub
%>
>>421 IE上でExcelのCOMを動かそうとしてる??
423 :
421:2006/04/10(月) 22:28:02 ID:3UIEjnKE
>>422 はい、そうです
この方法はよくないんでしょうか?
>>423 今のIEじゃローカル上のファイルを操作するのは
セキュリティ的に無理だと思う
425 :
422:2006/04/10(月) 22:49:35 ID:w8+tUl+V
>>424 では、サーバー側に一時的なファイルを作成してそれをクライアント側で
ダウンロードする仕組みにするには、どの様なコードを書けばよいでしょうか。
サンプルコードがあるサイトをご存知でしたら教えてください。
お願いします。
自分のPCにExcel入ってないから試せないんだがこんな感じかなぁ
<%
Sub Exl
Dim ExcelApp, ExlFile, Filename, bobj ,b
Set ExcelApp = Server.CreateObject("Excel.Application")
ExcelApp.visible = True
ExlFile="D:/asp/files/temp.xls"
Filename="temp.xls"
ExcelApp.DisplayAlerts = False
ExcelApp.Workbooks.open(ExlFile)
ExcelApp.Sheets("page1").Select
ExcelApp.ActiveSheet.Range("A1").value= Year(Now()) & " 年 "
ExcelApp.ActiveSheet.PrintPreview
Excelapp.Quit
Set ExcelApp = Nothing
Response.ContentType = "application/octet-stream;name=" & Filename
Response.AddHeader "Content-Disposition","attachment;filename=" & Filename
Set bobj = Server.CreateObject("BASP21")
b = bobj.BinaryRead(ExlFile)
Set bobj = Nothing
Response.AddHeader "Content-Length", ubound(b) + 1
Response.BinaryWrite bydata
End Sub
%>
あ、ごめん
× Response.BinaryWrite bydata
○ Response.BinaryWrite b
428 :
425:2006/04/10(月) 23:17:23 ID:3UIEjnKE
>>426 ありがとうございます。
明日試してみます
430 :
425:2006/04/11(火) 07:27:09 ID:j7JR4Ohz
>>429 目的の動作が出来ました、ありがとうございました。
431 :
nobodyさん:2006/04/14(金) 21:34:06 ID:D01n0ua1
XPproで動いてたASPを2003鯖に入れたらページが見つかりません
とかなって表示できません。
XPで動いてたんでスクリプトには問題ないと思うんですが
IISの問題でしょうか?
どこを直せばよいでしょうか?
432 :
nobodyさん:2006/04/14(金) 21:47:20 ID:D01n0ua1
ためしに自分で作った仮想ディレクトリーにdefault.aspを
配置しましたが、Directory Listing Deniedとかなって表示できません。どうすればよいでようか?
助けてください。
434 :
432:2006/04/14(金) 22:58:23 ID:D01n0ua1
WebサービスでASPを許可したらいけました」
435 :
nobodyさん:2006/04/15(土) 10:40:23 ID:GTWKBHgT
Fname="D:/asp/DB.mdb"
DBF="Driver={Microsoft Access Driver (*.mdb)};User ID=;Password=12345; DBQ=" & Fname
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBF
上記コードでXPproのIISでは正常に動きますが、2003鯖ではこんなエラーになってしまいます。
Microsoft OLE DB Provider for ODBC Drivers エラー '80004005'
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0x9ac Thread 0xad0 DBC 0x22a1f94 Jet' を開くことができません。
レジストリをいじらずに動くようにするにはどうすればよいでしょうか?
また、システムにODBCデータソースを追加する以外の方法で別のやり方あったら教えてください。
>>435 Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]一般エラー レジストリ キー 'Temporary (volatile) Jet DSN for process 0xe9c Thread 0xa74 DBC 0x2bc0b4 Jet' を開くことができません。
Accessにパスワードが設定されている場合に発生します。
>>435 今時mdbでそんな方法で接続してる奴いねよ
Microsoft.Jet.OLEDB.4.0 で接続しろよ
438 :
435:2006/04/15(土) 11:21:55 ID:GTWKBHgT
>>436 パスワードを解除したらできました。
ありがとうございます。
439 :
435:2006/04/15(土) 11:28:34 ID:GTWKBHgT
>>437 ああ、古いASP引っ張り出したんであれだったけど
これに直しました。
DBF = "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"User ID=;Password=;Data Source=" & Fname
>438
まぁパスワード解除しちゃったそうだから今更だけど
パスワード付きmdbをJet OLEDB使って開くときは、
ConnectionString/Passwordプロパティにパスワード入れるんじゃなくて
Connection.Properties("Jet OLEDB:Database Password")に突っ込むこと。
441 :
435:2006/04/16(日) 13:54:35 ID:eJrc5hWb
Fname="D:\asp/DB.mdb"
DBFile= "Provider=Microsoft.Jet.OLEDB.4.0;User ID=;Password=;Data Source=" & Fname
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DBFile
Set RS = server.CreateObject("adodb.recordset")
RS.Open "SELECT * FROM main WHERE id=" & request("id") & " and pass=" & request("pass") & ";",ConnadOpenStatic, adLockOptimistic
RS("aaa")=Request("aaa")
RS("bbb")=Request("bbb")
RS.update
RS.closeset
RS=nothing
Conn.closeset
Conn=nothing
上記更新コードを実行すると、
ADODB.Recordset エラー '800a0bb9'
引数が間違った型、許容範囲外、または競合しています。
というエラーになってしまいます。
どこを直せばよろしいでしょうか。
お願いします。
442 :
435:2006/04/16(日) 17:50:24 ID:eJrc5hWb
解決しました。失礼しました。
435は解決したとみせかけて実は解決していなかった
だから質問をコピペし、別の板、もしくは別のスレで書き込み答えを得ようとしたのか?
ASP.netやり始めて勉強してるんだけど、asp関係の板ってこんなに過疎ってるとは思わなかった。
いろいろ勉強してるんですが、なかなかおもしろいのになぁ。
SQL2005が2000と比較して結構強力になってるっぽいし、ASP.netもいろいろおもしろい。
勉強し始めて1週間ぐらいだけど、5年前手書きでがりがり書いてたASPとは全然違う。
いまObjectDataSourceにDataSetを渡して、データバインドコントロールでいろいろ表示させてるけど、
これは結構使えるかもって思った。次の開発はasp.netでやってみようかなぁ。
445 :
nobodyさん:2006/04/21(金) 08:06:46 ID:2wM3++cG
ASP.netを開発するにはどんなツールが必要ですか?
447 :
nobodyさん:2006/04/22(土) 05:00:11 ID:KZQOiwti
ツールを使わないで作るASPでsendmailみたいなプログラム作れないでしょうか?
cgiでSMTPを使って出来たのだからありそうだけどなかなか見つかりません。
よろしくお願いします。
448 :
447:2006/04/22(土) 05:11:37 ID:KZQOiwti
SMTP鯖を直接叩いてメールを送るソースお願いします。
449 :
447:2006/04/22(土) 07:52:46 ID:IlbM7gzP
>>449 こんなのMSであるんだな。初めて知った。
でもこれみると、POP Before SMTPやSMTP Authには対応してない気がするのは、
漏れだけかな・・・
となると、まず認証関係を確かめる必要がある。
次はスパムされちゃう恐れがあるので、そのSmtpを運営してるプロバイダを使用してる
ユーザだけとか、企業だとIPアドレス等とか、いろいろ制限されててメール送信して
くれない可能性があるね。
452 :
447:2006/04/22(土) 13:47:10 ID:IlbM7gzP
ちなみにこれがCGIでSMTPを叩いてメール送信するソースですが
これをASP用に変えられないでしょうか。
お願いします。
use Net::SMTP;
$smtp = Net::SMTP->new($domain); #SMTPサーバ
$smtp->mail($mail); #送信元の指定
$smtp->to($to); #宛先の指定
# データ部の組み立て
$smtp->data();
$smtp->datasend("To:$to<$to>\n"); #Toヘッダ
$smtp->datasend("Subject:$kenmei\n"); #件名
$smtp->datasend("\n");
$smtp->datasend("テスト\n");
$smtp->dataend();
$smtp->quit;
ツール使わないっていってんのに、おもいっきりモジュールつかってるんですが。
use Net::SMTP;
これが許されるならBASP21を素直に使えよ。
ラジオボックスを複数個用意して、いずれかが選択された時に出力する部分を入れ替える、というのは可能でしょうか。
たとえば、
<form name="sample">
<input type="radio" name="test" value="1" checked>
<input type="radio" name="test" value="2">
<input type="radio" name="test" value="3">
</form>
<%@ Language=VBScript %>
<% If document.sample.test(1).checked = true Then %>
ラジオボタンの1が選択された時に表示される内容<br>
<% Else If document.sample.test(2).checked = true Then %>
ラジオボタンの2が選択された時に表示される内容<br>
〜〜
こういった感じのものを作りたいと思っていますが、どうも上手くいきません。
よろしくお願いします。
>>454 可能
普通にクラスのメソッドで、ポストされたラジオボタンの値に従って
処理をわければいいだけだと思われ。
456 :
454:2006/04/23(日) 03:41:00 ID:???
POSTで同ページにアクションを送る、という方法ではなく、ラジオボタンを
押された時に表示を切り替えれたら、と思っています。
ラジオボックスのonClickプロパティでどうのこうの…という方法を試して
みましたが、どうもエラーが出てしまいます。
ソースのサンプルみたいなものがあれば嬉しいのですが、見つからず…。
>>454 たぶんASPとクライアントサイドのVBを混同してると思われ
こういうことやるなら鯖負担軽減のためにクライアントサイドでjavascriptとかで処理した方がいいと思うけど
どうしてもASPでって言うなら↓みたいにすればできるけど
---------------------------
<%
Dim CHK,URL,MSG
URL= Request.ServerVariables("SCRIPT_NAME")
CHK=Array("","","")
If Request.QueryString("test")<>"" Then CHK(Request.QueryString("test")-1)=" checked"
%>
<html>
<body>
<form name="sample">
<input type="radio" name="test" value="1" onclick="self.location.href='<%=URL%>?test=1'"<%=CHK(0)%>>
<input type="radio" name="test" value="2" onclick="self.location.href='<%=URL%>?test=2'"<%=CHK(1)%>>
<input type="radio" name="test" value="3" onclick="self.location.href='<%=URL%>?test=3'"<%=CHK(2)%>>
</form>
<%
Select Case Request.QueryString("test")
Case 1
Response.Write "1つ目が押されました"
Case 2
Response.Write "2つ目が押されたようです"
Case 3
Response.Write "3つ目が押されたかも…"
Case Else
End Select
%>
</body>
</html>
表示だけの問題なら全部ソースに書いといて1つだけ表示させればいい
<html>
<head>
<script>
function disp(targetID){
document.getElementById("Disp1").style.display="none";
document.getElementById("Disp2").style.display="none";
document.getElementById("Disp3").style.display="none";
document.getElementById(targetID).style.display="inline";
}
</script>
</head>
<body>
<form name="sample">
<input type="radio" name="test" value="1" onclick="disp('Disp1');">
<input type="radio" name="test" value="2" onclick="disp('Disp2');">
<input type="radio" name="test" value="3" onclick="disp('Disp3');">
</form>
<div id="Disp1" style="display:none;">ラジオボタンの1が選択された時に表示される内容</div>
<div id="Disp2" style="display:none;">ラジオボタンの2が選択された時に表示される内容</div>
<div id="Disp3" style="display:none;">ラジオボタンの3が選択された時に表示される内容</div>
</body>
</html>
まぁ既にスレ違いだが
460 :
454:2006/04/24(月) 02:09:47 ID:???
ソースを元に作成してみます。
手短ですが、返答ありがとうございました。
461 :
nobodyさん:2006/04/24(月) 11:16:04 ID:gF03A8tY
今さらかもしれないのですが、ISAPIについて教えてください。
ISAPIFilterからApplication変数を読む事ってできないでしょうか。
文字列の比較について聞きたいのですが、分かる方がいればお願いします。
ドメインのカントリーコードを抜き出して比較するためのコードとして、以下のように書きました。
Dim country1
Dim country2
country1 = Session("domain")
If country1 = "" then
err = 1
Else
country2 = Split(country1,".")(UBound(Split(country1,".")))
If country2 = "com" or "net" or "jp" then
err = 1
End If
End If
Session("domain")には、フォームから送信されたドメイン名(www.hogehoge.orgなど)が入っています。
しかし、これだとエラーが出てしまいます。
何度か試してみましたが、If country2 = "com" then のように、一種類だけなら問題なく動きました。
原因が分かる方いませんか?
463 :
462:2006/04/25(火) 11:20:35 ID:???
先ほど書き込みした者です。
昨日から悩んだ末の書き込みでしたが、先ほど演算子の優先度の関係に気づき、自己解決しました。
板汚し失礼しました。
464 :
nobodyさん:2006/04/28(金) 01:48:17 ID:TXbB+xqv
>>464 IISの設定で「既定のWebサイト」のプロパティから
ディレクトリセキュリティ→匿名アクセスおよび認証コントロールの「編集...」
のダイアログの「匿名アクセス」に
チェックついとるか?
>>464 それってルーターかモデムにアクセスしようとしてるんだよ
試しにルーターかモデムにログインするIDとパス入れてご覧
>466
それはひょっとしてギャグで(ry
468 :
464:2006/04/29(土) 12:17:28 ID:5l2q50I6
469 :
nobodyさん:2006/04/29(土) 13:29:04 ID:xQDtvren
携帯サイトを作ろうとしてますが、キャリアによって移動するページを仕分けたいのですが
どのような判別ソースを書けばよいでしょうか?
キャリアはEZ、Docomo、Vodafoneですが、画像を表示できるタイプとできないものの
全部で6パターンを仕分けたいです。
よろしくお願いします。
470 :
nobodyさん:2006/04/29(土) 17:09:41 ID:xQDtvren
これをASP風に変更すればどんな感じになるでしょうか?
お願いします。
sub User_Agent {
my($user_agent) = @_;
# exp. DoCoMo/1.0/P209is/c10
if (user_agent =~ /DoCoMo/i) then
platform = "DoCoMo"
agetPart = split(/\//, user_agent);
browser = "DoCoMo"
if agetPart[1] =~ /\(/) { # FOMA
$agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;
$browser_v = $1;
$platform_v = $2;
} else { # i-mode
$browser_v = $agetPart[1];
$platform_v = $agetPart[2];
}
if($platform_v eq '') {
$platform_v = '';
}
return ($platform, $platform_v, $browser, $browser_v);
}
471 :
nobodyさん:2006/04/29(土) 17:12:39 ID:xQDtvren
しくじりました。こっちです。
sub User_Agent {
my($user_agent) = @_;
# exp. DoCoMo/1.0/P209is/c10
if ($user_agent =~ /DoCoMo/i) {
$platform = 'DoCoMo';
@agetPart = split(/\//, $user_agent);
$browser = 'DoCoMo';
if ($agetPart[1] =~ /\(/) { # FOMA
$agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;
$browser_v = $1;
$platform_v = $2;
} else { # i-mode
$browser_v = $agetPart[1];
$platform_v = $agetPart[2];
}
if($platform_v eq '') {
$platform_v = '';
}
return ($platform, $platform_v, $browser, $browser_v);
}
473 :
466:2006/04/30(日) 00:30:55 ID:???
>>467 すまん。実際俺はそうだったよ
串指してないし
今すぐループバックアドレスでぐぐれ。
475 :
464:2006/04/30(日) 15:56:09 ID:BgW+gShw
えー色々と問題を解決していきました。
とりあえずお礼と結果
>>465 チェック入ってました。結局アクセスできませんでしたが、
他のファイルはアクセスできることがわかりました。
多分、最初のファイル自体の問題なんじゃないかと思います。
有難うございました。
>>466 違いました。
有難うございました。
で、ASPをやってみて、JScriptとVBScriptは上手くいくんですが、
ASP.NETのC#ができません。MMCで使用する言語をC#にしたんですが
どうやら実行が許可されていないようです。
どうすればいいでしょうか。
ASP.netはスレ違いなんだが…
とりあえずやってみようとしてるファイルの
ファイル名と内容とブラウザに出てきたエラーの詳細を晒してみ。
477 :
464:2006/04/30(日) 17:14:27 ID:BgW+gShw
>>476 わかりました。以後、ASP.NETの質問はASP.NETスレでやります。
http://127.0.0.1/ ファイル名:index.aspx ←IISのドキュメントのところで設定した。
カレントディレクトリはwwwroot
HTTP 403.1 アクセスは許可されていません:
実行アクセスは許可されていません。
・背景
プログラムの実行が許可されていないディレクトリから、CGI、ISAPI、
またその他の実行可能プログラムを実行しようとしました。
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="ja"><head>
<title>Test</title></head><body>
<h1>Test</h1>
<p><%= "test" %></p>
</body></html>
wwwrootのフォルダのアクセス権だな。
Everyoneに読み取りと実行の権限がいるはず。
あと既定のwebサイトのプロパティでアプリケーション設定の実行アクセス権を
「スクリプトのみ」か「スクリプトおよび実行可能ファイル」にしてあるか確認。
479 :
464:2006/05/01(月) 01:40:32 ID:???
>>478 動きました。(少し感動)
有難うございます。
480 :
nobodyさん:2006/05/01(月) 21:20:33 ID:G9IWAFk4
>>480 function User_Agent (var1,var2) {
var user_agent = Request.ServerVariables("HTTP_USER_AGENT").Item();
// ex. DoCoMo/1.0/P209is/c10
if (user_agent.match(/DoCoMo/i)) {
platform = "DoCoMo";
agetPart = user_agent.split("/");
browser = "DoCoMo";
if (agetPart[1].match("(")) {// FOMA
// $agetPart[1] =~ /([0-9]\.[0-9])\s([^\(]*)(.*)/ ;←ここ意味不明?代入?正規表現?
browser_v = var1;
platform_v = var2;
} else {
browser_v = $agetPart[1];
platform_v = $agetPart[2];
}
if (platform_v=="") { platform_v = ""; }// ここ意味あるの?
}
return (platform, platform_v, browser, browser_v);
}
こうか?適当。ノーチェック。
function UserAgent(userAgent)
dim platform,agetPart,browser,regex,omatches,omatch
dim browserV,platformV
if instr(Ucase(userAgent),"DOCOMO") > 0 then
platform = "DoCoMo"
agetPart = split(userAgent,"/")
browser = "DoCoMo"
if instr(agetPart(0),"(") > 0 then
set regex = new RegExp
regex.pattern = "([0-9]\.[0-9])\s([^\(]*)(.*)"
set omatches = regex.execute(agetPart(0))
set omatch = omatches(0)
browserV = omatch.submatches(0)
platformV = omatch.submatches(1)
else
browserV = agetPart(0)
platformV = agetPart(1)
end if
end if
UserAgent = array(platform, platformV, browser, browserV)
end function
hoge1.aspにて
dim hoge
set hoge = new clsHoge
set session("sshoge") = hoge
hoge2.aspにて
dim hoge
set hoge = session("sshoge")
response.write hoge.hello()
というようにhoge2.aspでオブジェクトを取り出して
使いたいのですがhogeのhello()メソッドにアクセスできません。
どこに問題があるか分かる方がおられましたら
教えていただけないでしょうか?
>>483 hello()メソッドはどこで定義したの?
>>482 ありがとうござあいます
今日は酔ってるんで明日やってみます
>>483 超残念。
SessionにはVBScriptのオブジェクトは格納できない。
(厳密に言えば格納は出来るけど、それを取り出して使う事が出来ない)
SessionはIISのオブジェクトであって、VBScriptとは次元が違うから。
自力でserialize的な仕掛けでも作るしかないね。
Microsoft JScript 実行時エラー エラー '800a138f'
分かる人、助けてくらはい
せめてそのエラーを吐くソースを晒せ
>>487 ランタイムエラーを起こすJScriptコードがあるってことだな。
ちらっとぐぐってみたら
WindowsUpdateが絡んでいるようなのがちらほら。
だとしたらちょっと厄介な話かもね
引越ししたんだが、webサーバーに使ってたマシン(Win2000server)でaspを実行すると、
response.redirectで引っかかるようになってしまった。
別PCで動かした場合は今までどおり動くんだが、、、
IISとか設定いじった覚えもないし。
何か疑うような所ってあります??
IISの設定で親のパスを有効になってますか?
>>492 なってます。
ナンデダロ。。。。
response.redirectで別aspに飛ばすと、
内部エラー500で止まってしまう。
495 :
491:2006/05/30(火) 09:33:53 ID:???
「ISAPIアプリケーションをキャッシュする」のチェックが抜けてますた。。。
外した覚えもないんだけどな。。。
>>492,
>>494様、サンクスです。
496 :
nobodyさん:2006/06/08(木) 21:56:07 ID:Ak1nru4j
初歩的なんですが、テキストの色を変えるために
Response.Write "<FONT color"red">hoge</FONT>"
ってやるとエラーになるんですが、どうすればいいんでしょうか?
>496
redの前後の"を""と二つ続ける
↓
ウマー
498 :
nobodyさん:2006/06/09(金) 00:24:28 ID:ziVzofuc
>>497 サンクスです!
そっか、単純に"だと閉じちゃうのか。
499 :
nobodyさん:2006/06/09(金) 02:24:04 ID:ziVzofuc
また詰まってしましまいました。
Response.Write "<input type=""submit"" value=""hoge"">"
とすると「オブジェクトがありません」て言われました。
何がまずいんでしょうか?
500 :
499:2006/06/09(金) 02:35:40 ID:???
自己解決です。
ただのタイプミスでした。スイマセン。
501 :
nobodyさん:2006/06/09(金) 09:32:31 ID:1vEHWatH
>>500 つか、TYPOくらい
ここにPOSTする前に
見直して確認しろよ。www
502 :
nobodyさん:2006/06/22(木) 22:11:24 ID:EZKQQCl5
そのはず
504 :
nobodyさん:2006/06/22(木) 23:47:07 ID:EZKQQCl5
505 :
nobodyさん:2006/06/22(木) 23:52:08 ID:EZKQQCl5
>505
そこ「Response.End : スクリプトの実行を中止します」って何をデタラメ書いてんだ
---red1.asp---
<%
Session("HOGE") = "HOGE"
Response.Redirect "red2.asp"
Session("HOGE") = "HAGE"
%>
---red2.asp---
<%=Session("HOGE")%>
結果は各々の目で確かめましょう
509 :
nobodyさん:2006/06/24(土) 16:27:07 ID:NUoL74NB
ファイルのアップロードについてですが、BASP21を使わずにやれる方法ありませんでしょうか?
サンプルURLなどお願いします。
>>509 BASP使わないとしてもADOの比較的新しいバージョンが必要。
あとはググれ
別解として自分で一からファイルアップロードコンポーネントを書いてしまうというのもあるな。
513 :
nobodyさん:2006/06/25(日) 15:19:55 ID:HTU8DLsE
ADO.Stream を使ってファイルをアップロードしたいのですが
どのように記述すればよいでしょうか?
お願いします。
鯖は2003です。
516 :
nobodyさん:2006/07/06(木) 14:06:24 ID:/8ybWcGq
textboxに数字以外の文字を入れた場合エラーを返すにはどうしたらいいですか?
VBSでお願いします。
518 :
892:2006/07/07(金) 14:18:20 ID:SQksCJlc
使い方としてはこんな感じでよいですか?
chk = ○ '← なんか入れる。
if chk = [0-9] then
ok
else
error
end if
お手軽にIsNumeric関数じゃダメかな?
判定基準に気をつける必要はあるけど
>>520 数値判定ならIsNumeric
数字判定なら正規表現
522 :
518:2006/07/09(日) 22:47:13 ID:X7Dt+q6q
できました。ありがとうございます。
523 :
518:2006/07/09(日) 22:55:02 ID:X7Dt+q6q
続けて質問で申し訳ないのですが、
ページをPDFで表示する場合ってどうやってやればいいでしょうか?
エクセル表示とかはわかるんですが・・・
524 :
nobodyさん:2006/07/09(日) 22:57:13 ID:DTwv2VIN
525 :
518:2006/07/09(日) 23:20:58 ID:X7Dt+q6q
説明が適当ですいません。
表を表示しているページをボタンを押下した時、そのページごとPDF出力して
印刷をかけたいのですがどうしたらよろしいでしょうか?
>>518 事実上無理だから諦めなさい。
多分その調子でやっていたら実現するまでに
30スレ分くらいお前の質問で消費されるわ
528 :
nobodyさん:2006/07/10(月) 23:11:34 ID:iQivVhLt
>>525 AcrobatインストールすればIEのツールバーにAcrobatのアイコンができる。
そのボタンを押せば現在表示されているページがPDFで表示されるよん
530 :
525:2006/07/12(水) 11:50:39 ID:MVSuxQrd
ありがとうございます。色々試してみます。
レガシASPの開発環境でお勧めは何ですか?
Visual Studio .Net(2002/2003/2005)かVisual InterDev 6.0
を検討していますが、.Netでも補完機能やデバッガ
の使い勝手は良いですか?
Visual InterDev 6.0はデバッグがなかなか動かなくて…
>501
開発環境が.NetだとレガシASPなんてサポートしてないはず。
「いいじゃん、一緒にASPも.Netにシチャイナ? 」ってなもんで。
# VS.net入れたらレガシASPが動かなくなるってことではないので念のため。
デバッグはResponse.Writeデバッグで十分だと思う…。
534 :
531:2006/08/07(月) 22:55:50 ID:???
>>532,, 533
回答ありがとうございます。
.Net2005のExpressEditionでごく単純なASPで試してみましたが、
Option Explicitが動かないほか、include先で定義している関数が
未定義扱いになってうまくいきませんでした。
ASP3.0用のbuildProviderがあればうまくいくのかもしれませんが。
Visual InterDev 6.0でなんとかやろうと思います。
新規開発ではないので、.Netにしちゃうと、全コード移行しないといけないので。
535 :
533:2006/08/08(火) 20:22:28 ID:???
ちなみに俺はVisual InterDevのレスポンスの悪さに業を煮やし
程なくしてサクラエディタに乗り換えました。
たかがVBScript、MSDN Libraryさえ引ければ補完のメリットなんて
あってないようなもんだしw
フォルダ内全ファイル対象の置換は便利だけどねw>InterDev
536 :
nobodyさん:2006/08/11(金) 21:57:33 ID:yHgdeCQU
Windows2003Server、IIS6.0、SQLServer2003でメルマガ読者の管理を行う
プログラムを作っています。
上司に、メールアドレス入力欄にDOSコマンド?を入れると、
サーバ側で起動するから、それができないような処理を入れろ、
と言われたのですが、現象が再現できません。
(上司も誰かに突っ込まれたらしく、どうすれば実行できるのかわからないようです)
入力チェックは、一旦変数に格納した後、
正規表現でメールアドレス書式をチェックしており、
DB登録、検索時にはメールアドレスは暗号化しています。
現象が再現できれば、対応策も考えられると思うのですが、
どなたか、こういった問題をご存知の方、アドバイスいただけないでしょうか。
>>536 無視していいんじゃね?
多分セキュリティゴロの商売トークを真に受けてるだけだろ。
チェックするとしたらDB登録時のSQLインジェクションぐらいか。
commandオブジェクト使うとか、ちゃんとシングルクォートのエスケープをしていれば無問題。
538 :
nobodyさん:2006/08/12(土) 02:29:08 ID:xBjeg5WF
>>536 IISにおいて、フォームから適当なDOSコマンドを入れると
サーバ側で動き出すなんてありえない。
BASP21のExecとか、cgiがexeファイルとか、自作ISAPI使ってるっていうなら
ありえなくないが。
539 :
536:2006/08/12(土) 12:28:22 ID:???
>>537,538
レスありがとうございます。
自分もずっと調べていたのですが、やはりソレらしい情報はないですね。
(Jetエンジンを使った問題がヒットしましたが、そもそもJet使ってないし
チェックで弾かれています)
とりあえず、SQL文をしっかり洗い出して、エスケープなどの抜けを
しっかり調べてみます。
お騒がせしました。
Dim hoge
Set hoge = Application("hoge")
とするとApplication("hoge")にまだ値が入っていないとき
オブジェクトがありません。というエラーになってしまいます。
事前に値が入っていないかチェックする方法はありますでしょうか?
よろしくお願いします。
isEmpty(Application("hoge"))
しかしApplicationにオブジェクトを格納するのは大抵ビミョウじゃぞ
543 :
542:2006/08/18(金) 21:33:47 ID:???
……前半は忘れてくりゃれorz
544 :
nobodyさん:2006/08/18(金) 23:42:54 ID:FoNP/zJS
546 :
nobodyさん:2006/08/24(木) 15:03:40 ID:aU8FJkVc
質問です。
Response.ContentType = "application/pdf"で
ページをPDF出力することってできないんですか?
>>546 それを送った後で、PDFのデータ実体を
ブラウザに送り出してやればOK
548 :
546:2006/08/25(金) 09:47:25 ID:NQK5sUA1
>547
それってResponse.ContentType = "application/pdf"が書いてある
コードのページ自体をプラウザで表示してやれば、PDFに変換されたものが
でてくるって事ですよね?
できないんですが・・・
html→PDFの変換を自動でやらせるって事?
550 :
546:2006/08/25(金) 17:19:37 ID:NQK5sUA1
そのとうりです!
できるよ
Response.ContentType = "application/pdf"って書いてpdfになると思ってる奴は
Response.ContentType = "audio/mpeg"って書いたら何が出ると思ってるんだろう
ちょっと考えれば出来るか出来ないか分かるだろうにな
553 :
546:2006/08/25(金) 19:44:31 ID:NQK5sUA1
何をどう考えたらいいかわかりませーん。
もうすこしヒントを
>>553 単純には出来ません。
真っ当なやり方をするとしたらPDFlibとかの外部コンポーネントでも使って
頑張ってコツコツ作っていくしかない。
>>548 PDFのデータ実体って、
バイナリデータだぞwww
誰がプレーンテキスト吐き出せって言ったよwww
久しぶりに超うけた。
>556
まぁスレともレスともあまり関係ないが
後学のためにテキストエディタで何か一つPDFファイルを開いて見てみることを勧める
559 :
nobodyさん:2006/08/28(月) 01:03:57 ID:7CABj+h0
>>553 リクエストがある度にPDF化するのは
サーバに負荷がかかるし、実際レスポンスも悪くなる。
事前にPDFに変換しとくか、
クライアントPCにAcrobatとかインストールして
IEのツールバーに表示されるPDF変換アイコンを押してもらうといいよ
PDFはバイナリーデータもサポートしてるけどな
まぁ
>>556はそんな事どうでもいいくらいおバカだが…
Nowから秒より下の値を取得したいのですが
やりかたがわかりません。
たとえば
Year(Now)とすれば年が取れるのですが
yyyy/mm/dd hh:mm:ss.fff
のfffの部分を取得したいのですが
やり方があったら教えてください。よろしくお願いします。
>>561 Now()ってss以下、
1000分の1秒単位の精度の
戻り値があったっけ?
たしか
yyyy/mm/dd hh:mi:ss
までじゃなかったか?
100分の1秒で求めるなら、
Timer()使って.(ピリオド)から右側の値だけ
取得することは可能だと思うけど、
1000分の1秒ってのが厳しいな。
そもそもPCのタイマってそんなに精度ないよ
ネタ元がアレゲなんだが
「分解能の高いタイマ関数ほど実行に時間がかかる傾向がある」
と聞いたことがある。
565 :
nobodyさん:2006/08/30(水) 01:05:53 ID:F1Hs7Aoq
566 :
546:2006/08/30(水) 09:26:55 ID:7QXl0OJH
やっぱりコツコツ作っていくしか無いんですね。
ありがとうございました。
java開発からASP開発に周り、ASP開発は初めてですが、
javaのstrutsのようなフレームワークみたいなコンポーネントってあるのでしょうか。
MVCになってなくても良いのですが、htmlの部品の表示などをもっと簡単にしたいです。
>>568 ASPです。古いパッケージのカスタマイズ案件なので・・・
>>567 気の利いたフレームワークとかは無い。
自分でfunction作るしかないね。
不幸中の幸いとして
function hoge()
%>
<DIV>ほげほげ</DIV>
<%
end function
っていう書き方が出来るので
それを利用したりするとちょっとは楽できるかも。
XMLDOMってやつを見つけました。
数が少ないですが、探せば使えそうなものがいくつか出てきそうです。
573 :
nobodyさん:2006/10/04(水) 00:11:43 ID:SPPmb2Gu
ついに一ヶ月書き込みがない。。。
さすがに全ての面で枯れたな。
ASPとりあえず何でも出来てよく動くんだけどね。
VBScriptがあまりに非力過ぎるんだよなー。
ウチの社内じゃまだまだ現役だよ。
……はやいとこ.NETに移行したいんだけど、他にメンテできる人がいないから……
577 :
574:2006/10/06(金) 00:15:23 ID:???
む、「枯れてる」と言ったのはテクニックとかそういった意味の話で。
今更スレの話題になるようなトピックは無いと言いたかっただけ。
ちなみに俺も今は昔売ったASPのシステムの保守で飯食ってます。
あと5年は無くならないだろうな…。
たしかに、技術的なモノは出尽くした感があるね。
新機能もないし・・・。
>>577 「保守」って言葉は、システム屋には実に都合のいい考え方だよね。
実際には日常的にはほとんど何もやらないのに(っていうか日常的に何かやらなきゃいけないシステムは糞だ)、
「保守作業」と称して、コンピュータに疎いヤツらから金を巻き上げられる魔法の杖。
>>579 そんな保守だったらSAIKOだなー。
そう甘くねんだよ。
公僕相手だと担当者が代わる度にそいつの趣味で下らん直しを入れさせられる…
全く相手してらんねー。
そんなに金使いたかったらもらってやるから金だけよこせ。金だけ。
581 :
nobodyさん:2006/10/06(金) 22:06:34 ID:G5aLUCYG
>>575 社内レベルで .NET にする必要はないと思う
582 :
nobodyさん:2006/10/06(金) 23:43:25 ID:gk7iZtFm
ASPってフレームワークなんてないよね?
やっぱりC++とかVBとかでdllを作ってそれをASPで使う感じなのでしょうか?
ASPとASP.NETではどちらが生産性が高い?
>>582 まずあなたが「フレームワーク」をどういう意味で言ってるかを明らかにしましょう。
生産性についても同様。
雛形的な意味かな?
何をやりたくて何を探してるのか具体的にかけば
レスもあると思う。
>>580 担当者が変わるたびに直すとしても、いったん直したらまたしばらくは
特に何もすることないだろう。担当者が毎月変わるわけじゃあるまいし。
それで毎月保守代をもらえれば楽な仕事だ。
>>585 よほど「保守担当」にネガティブイメージ持ってるらしいな。
世の中には面子とか根性論とかによってそういう「まともな理屈」が追い出された
異世界も存在するのさ。
>>586 そうなのか。。。 大変だな。
そういう異世界を経験しないで済む俺はラッキーなのかな?
>587
苦労はしてみてもいいかもしれないが
地獄まで見ることはないさ……
>>588 俺は公的な組織が大嫌いなのでそもそも付き合うことは一生ないと思うが、
そちらはどうしても付き合わなきゃならないのなら、頑張ってくれ。
おまいがシステム業界の「小泉純一郎」となって、バカを駆逐・啓蒙してくれることを祈る。
590 :
nobodyさん:2006/10/11(水) 16:28:51 ID:o9Xn/RpH
ASPで入力欄(INPUTタグ)に""と入力してDBに登録します。
これを再度編集しようとINPUTタグで表示すると、
value=""""となり、何も表示されません。
なにか、良い方法というのはあるのでしょうか?
591 :
nobodyさん:2006/10/11(水) 19:12:14 ID:WiH1H+/l
>>590 DBに保存したデータ「""」が
表示されなくて困ってます、ってこと?
そうなら、DBに保存する辞典で、
エスケープシーケンスをくっつければいいんじゃね?ね?
592 :
nobodyさん:2006/10/11(水) 20:09:36 ID:o9Xn/RpH
>>591 Response.Writeによる表示はされます。
しかし、INPUTタグの中に表示しようとすると出来ません。
Server.HTMLEncode()を使ってみましたが、
データが変わってしまうので・・・使い方がよろしくないのでしょうか?
>>592 >>Server.HTMLEncode()を使ってみましたが、
>>データが変わってしまうので・・・使い方がよろしくないのでしょうか?
変わらないよ。ためしに
<input type="text" name="test" value="""">
ってというのフォームに加えてsubmitしてみ。
594 :
593:2006/10/11(水) 20:38:48 ID:???
うげ。変わった。
value="&quot;&quot;"
ね。中身は半角にしてちょんまげ。
一番カンタンな解決方法はaaaが""として
<input value='<%=aaa %>'>
とすることだな。逆にシングルクォーテーションがいれらんなくなるけどw
おいらならこうするな
<input value="<%=Replace(aaa,"""",""")%>">
あ、試してる間に先越されたうえに
>>593氏と同じミスを・・・
<input value="<%=Replace(aaa,"""","&quot;")%>">
&を半角に・・・
>592
ASPというよりHTMLの問題だね。
HTML エスケープ でググってみ。
XSSの巣はここですか?
ダセェ煽りだな
お前がな
お前がな
ばーか、俺だよ
オレ、オレ!
ASP、っていうとまずApplication Service Providerかと思われてしまうご時世になってしまったな
Application.Lockのタイムアウト時間を設定するやりかたを
教えてください。
よろしくお願いします。
>>606 多分設計が間違っているんじゃないかなあ。
Lockをどういう目的で使ってる?
608 :
nobodyさん:2006/10/17(火) 23:56:36 ID:pxOS6RG8
>>606 自分でLockをタイマー解除するスクリプトを作るしかない
ASPでクッキーを削除するにはどうしたらよいでしょうか?
Response.Cookie("cookie") = "1"
で書き出せることはわかりました。
ブラウザ閉じたら消えるが
611 :
nobodyさん:2006/10/19(木) 22:03:30 ID:x3Bmvwr5
>>609 ブラウザ側で持ってる物だからサーバーから消せるわけないじゃない
空文字列をセットするか消されるタイミングを指定するか
Response.Cookies("cookie").Expires = 有効期限
日本の罫線文化に適合しているのは、ASP.NETよりもASPなのかな?
本で解説されているような、ASP.NETの便利なコントロールよりも、
Repeater使ってセル結合しているような複雑な表をつくるほうが多いし。
ASP.NETと違った、タグライブラリを活用するような、独自の進化版ASPを誰か作ってくれないかな。
>>611 有効期限を指定していないクッキーは普通ブラウザを終了させると消えるよ
>>613 うむ
ASP.netのwebコントロールっていう奴らは
何かイマイチ日本人の感覚では使いづらいわな。
>>613 どっちかというと.net系言語を使ってASP的な書き方をするやり方、がいいな。
ASPをC#.netで書ければなあとか思ったりする。
そこでActivePythonか?
でもそこまでしてでもある…。
617 :
616:2006/10/21(土) 08:22:50 ID:???
× でもそこまでしてでもある…。
○ でもそこまでしてまだまだASPか?って感じでもある…。
618 :
nobodyさん:2006/10/21(土) 21:45:20 ID:vl2bs6UL
ASPのSessionオブジェクトについて質問です。
全く異なる二つのWebアプリケーション test1.asp と test2.asp を同時に開き、それぞれ Session.SessionID を出力したところ全く同じものが入っていました。
これを、別々の Session を持たせたいのですが可能なのでしょうか?
また、一つのWebアプリケーション test.asp 上で、このプログラムが呼ばれる度に新しい Session を作ることは可能なのでしょうか?
ブラウザのウインドウを二つ立ち上げて両方 test.asp にアクセスした時に、別の Session を作りたいと思っています。
もちろん、二つのブラウザがそれぞれページ遷移してもそれぞれのセッションを保持したままをイメージしているのですが…
本やサイトを調べましたが詳しく解説されているところが見あたらず、質問させていただいております。
よろしくお願いします
IEに関して言うと、同じプロセスだとSessionIDがかぶる。
つまり<A TARGET="BLANK">とか、Ctrl-Nとかで新規ウィンドウを開く、とかして複数のIEのウィンドウを開いた場合は
同じSessionIDを持つ事になる。
っていうか、IISの仮想ディレクトリのプロパティで
アプリケーションを分ければいいだろ
621 :
618:2006/10/22(日) 09:04:54 ID:???
>>619 ありがとうございます。
やはりウインドウ毎に意図的にSessionを発行し直すというのは無理なんですね
>>620 レンタルサーバなので、サーバ側はいじれないんです…
622 :
nobodyさん:2006/10/31(火) 21:52:10 ID:4zgJkeOl
ページに3つのメニューリストを配置して、
MenuList1の選択値によってMenuList2の内容が決定し、
MenuList2の選択値によってMenuList3の内容が決定するといった処理を行いたい場合、
どのようにしたらよいのでしょうか?
>>622 リストを変更するたびにPOSTして
サーバサイドで次のリストを変更して戻すのが
このスレとしては正しいwww
624 :
nobodyさん:2006/11/01(水) 00:17:54 ID:ASDxYcPa
>リストを変更するたびにPOST
ここをもう少し詳しく教えてもらえませんか
>>625 それはJavaScriptとかの
クライアントサイドスクリプトの話だから
スレ違いwww
>>625 selectのonchangeでサブミットするようにすればいいんだけど、
わからなければjavascriptの勉強してください
毎回ボタンを押させる方式にすればjavascriptじゃなくてもできるけどね。
こんな感じ。
[ ▼][送信]
↓
[ ]
[ ▼][送信]
↓
[ ]
[ ]
[ ▼][送信]
onchangeでsubmitできるのはjavascriptでしたか。
vbscriptで実現は無理でしょうか?
だとしたら
>>628の案が現実的ですね。
>>629 クライアントサイドスクリプトもVBScriptで書けるよ、IE専用なら。
でもそういう事じゃないだろうな〜。
そうなんですよねサーバサイドでなんとかしたいんですよ。
どうしてもonchangeイベントでpostする為には、JavaScriptの選択なんでしょうね。
これまでVBScriptメインで作ってきているのですが、VBScriptのページと
JavaScriptのページが混在したシステムは問題ないのでしょうか?
>631
クライアント側(というか、ブラウザに送り込まれてブラウザで動作するコード)はJavaScript、
サーバ側で動作する(クライアント側には送られない)コードはVBScriptで書くのがASPのたしなみ。
と昔聞いた。……ごめん聞いたのは嘘だが現実問題、JavaScriptのコード内に<%〜%>入れて制御するなんてのすら
実務ではよくあること。
>>631 混在って言うのは、サーバサイドかクライアントサイドのどちらか片方で両方の言語を使う場合。
サーバサイドとクライアントサイドで別々の言語を使うのは、普通、混在とは言わないよ。
ソース上では混ざって見えるかもしれないけどね。
極端な話、ブラウザからすればサーバサイドで何してようがどうでもいいわけで。
ASPが最終的にはHTMLに則った文字列を吐き出せればOKだと思ってる。
csvとかpdfとかはまた別の話ね(´・ω・`)
635 :
nobodyさん:2006/11/12(日) 07:55:38 ID:m+ZTUqAd
FileSystemObject.CopyFileでコピーしようとしましたが
こんなエラーが出ました。どうすればよいでしょうか?
お願いします。
Microsoft VBScript 実行時エラー (0x800A01A8)
オブジェクトがありません。: 'FileSystemObject'
エラーが出るコードを予想
Set fso = CreateObject("FileSystemObject")
ネットでサンプル探せばわかると思うけどこんな定義してるコードはないよ
ここで重要なのは637があってるかどうかではなくて
635が問題になっているソースも出さずに解決策をクレクレしているところだよ。
だれかエスパーよんでこい
>>641 どういうときにそういうエラーがでてくるのか把握してないおまえは素人
まぁ、これくらいは検討つくよな
でも質問者として最低限エラー箇所のソースは出すべきだろ
がきんちょ二匹煽り合いやめれ
646 :
nobodyさん:2006/11/22(水) 11:39:26 ID:AQ+oMtaq
メルマガ申し込み者に、申し込み内容の確認のため、BASP21を使ってメールを返すASPスクリプトがあります。
このサイト(スクリプト)はPC用なのですが、
メルマガ&確認メールの送り先メルアドは、PC、携帯と好きな方を入力できるようになっています。
このページでメールの送り先をsoftbankに指定した場合のみ、確認メールがいつまでも帰ってきません。
メールの送り先が、PC、ドコモ、auの場合は問題なく確認メールが届きました。
サーバ内のファイルには、申し込み内容がログとして保存されてますので、
その先の、メールを送信する部分の処理で詰まっているのだと思います。
この問題をASPの記述で回避する方法はないでしょうか?
あるいは、板違いになってしまいますが、
BASP21の設定、サーバの設定等で回避する方法があれば教えて欲しいです。
>>646 まずSoftbankに仕様が分からないとどうしようもない
650 :
nobodyさん:2006/11/25(土) 12:59:51 ID:Fb29QKCd
Webサーバとデータベースサーバを分離してデータベースサーバ内のMDBファイルに
アクセスして更新、参照するには、Webサーバ側にどのように設定すればすればよいでしょうか。
よろしくお願いします。
>>650 MDBだったら共有フォルダに配置するだけだろ。
・・・ってか、そういう無駄な分散措置は止めとけ。
ローカルサーバに配置した方が圧倒的に応答が早いぞ。
せめてSQL Server 2000かMSDE2000くらい導入汁。
MDBファイル置いてるだけなら、
それはデータベースサーバではなくて
ただのファイルサーバwww
MDBってwwww
653 :
nobodyさん:2006/11/25(土) 15:52:13 ID:XtlTaIQl
ではMysqlに接続するのはどうでしょうか?
MySQLは4.1.18ですが、どのODBCドライバをWebサーバにインストールすればよいでしょうか?
お願いします。
655 :
nobodyさん:2006/11/26(日) 13:58:58 ID:YkByGaO7
ASP使うなんてところは小規模とかイントラとかだから実際のトコMDBで十分だと思う
>>656 参照Onlyなら充分www
更新有りならNG。
・・・でもな、MDBで
>>650の言うような分散に
意味があると思うか?
ないな
mdbのバックアップ(コピー)を別のサーバに置くというのならまだしも・・・
659 :
nobodyさん:2006/12/02(土) 08:53:02 ID:RpBW8wOH
IIS
Win2003server、IIS6.0、アップロードにBASP21を使って、
巨大ファイルファイルのアップロードをしていますが、
68Mbぐらいまではうまくいくのですが、70Mbを超えると
Request.BinaryRead()の部分で「予期しないエラー 関数が|を返しました」
という原因不明のエラーが発生しております。
MetaBese.xmlのAspNaxRequestEntityAllowedは1Gbに変更しているのですが
それ以外にも設定するところがあるのでしょうか。
>>659 アスキー転送のHTTPでそんなデカイのUPするな
661 :
nobodyさん:2006/12/03(日) 23:43:04 ID:w/wCFOfB
>>660 ASPではどうやっても80Mb前後が限界だったので
急遽VC+のCGIでアップロードするようにしました。
なんとか600Mbぐらいまではアップロードできるようになりましたが
それ以上はユーザーには物理的限界ということで納得してもらいました。
何のシステムなのか非常に気になる
書類のスキャン画像を複数枚分固めてうpするとか。
まぁ、600MBもいっぺんに送るってかなりな気がするが。もうちょっとでCD一枚分……
>>661 俺も元請のバカ営業のうかつな一言で
1GBのアップロードを要求された事があったよ。
結局ASPじゃ無理だったから
Apache + PHPに切り替える事になったけどね。
665 :
nobodyさん:2006/12/11(月) 21:27:03 ID:5Ff1t4H3
入力された文字がカタカナかどうかを判別するには何かいい方法ないでしょうか?
>665
「カタカナ判定」でググれ。
価格.comって、ASP使っているんだな。
あと日経の一部のサイト(nikkei4946.com)もASP使っているし。
まだまだ、ASPの需要はあるのかな。
Win系のサーバー=ASPってとこは結構多いね
PHPとかJSPの親和性が昔よりかは高くなってるので
最近はだいぶ食われて来てるけど
スレ違いかもしれませんが、コーディングについての質問です。
ASPでバブルチャートのグラフを表示する際に
バブルを立体的に表示させたいのですが、
Excel のグラフで言うところの『3-D 効果』の
チェックに該当するプロパティが分かりません。
マニュアルやGoogleで調べても
それらしい記述が無くて困っています。
とりあえず、グラデーションで誤魔化そうかとも考えていますが…。
どうか皆様のお力をお貸し頂けないでしょうか。
お願いします。
>>669 まずはグラフ作成を何で行っているのか。
話はそれからだ。
671 :
669:2006/12/16(土) 09:10:52 ID:???
>>670 ソフトのことですかね?
「これでやって。ヘルプはこれを参照に」って言われて作ってるだけなんで
ソフトはよく分からないんですよね。
土日は休日なんで来週調べてきます。
いやもう来なくていいよ迷惑だし
>>672おまwww
この程度で迷惑とか言うなら2ちゃん来なきゃいーじゃんww
674 :
nobodyさん:2006/12/17(日) 12:16:30 ID:5QCUiU3O
以下のようなFLASHとASPを連携させたアプリケーションを作りたいと思っています。
FLASHにはテキストフィールドとボタンを配置。
↓
テキストフィールドに値を入力。
↓
ボタンを押し、テキストフィールドに入力されたデータをASPへ渡す。
↓
ASPで処理したデータをFLASHに返す。
↓
帰ってきた値、テキストをFLASHで表示する。
どのように作ればいいのかどなたかご教授していただけませんしょうか?
スレ違いでしたらすみません。
>>674 ヒント:ASPはテキスト(HTML)を返す
678 :
669:2006/12/18(月) 19:59:24 ID:???
文句を言われながらも舞い戻ってきてしまいました。
で、バブルチャートの3D効果の件ですが、
ソフトは Office Web Components だそうです。
ChartSpace1.Charts(0).SeriesCollection(0).Interior.SetOneColorGradient _
chConstants.chGradientFromCenter, chConstants.chGradientVariantEnd, _
0.8, chConstants.chColorAutomatic
「もっと見栄えを良くして」という要望が出たので
こんな感じでグラデーション描画にしてますが、
やはり3Dの方が良さそうな感じ。
Hasなんとかみたいなプロパティがありそうですけど……。
よろしければご教授お願いします。
680 :
669:2006/12/19(火) 06:55:59 ID:???
>>679 見た見た見ました。
メソッドからプロパティまで一通り2回ほど。
まぁ見落とした可能性は否定できませんが……。
検索でタイトルだけじゃなく内容でも探せたらいいんですけどねぇ。
681 :
nobodyさん:2006/12/23(土) 05:03:14 ID:VEjj9Ul/
最近Win2000サーバーから2003に移行しました。
PHPのコードからfsockopenで、Winサーバーにアクセスし、
そこのASPのコードで、Winサーバのデータをアップデートということをしているのですが、
移行以来PHP側でEOFが検出できなくなり、
そこでfsockopenのタイムアウトまで処理が止まるようになりました。
複数のPHPサービスでひとつのASPを参照しているので、ASP側で対応したいのですが、
ASPで0x1aを出力するにはコード的にどうすればいいのでしょうか?
また、IISの設定で対応できるのでしょうか?
Response.Write(Chr(26))じゃダメ?
>>680 で、どうしてOWCのことをASPスレで聞こうと思ったの?
あけましておめでとうおまえら
FLASHとASPの連係は
JavaScript介してfsCommand使ってやる方法girl
ASPでファイルを書き換える処理をしたいのですが
排他制御をどのようにすればよいか思案中です。
一般的にはApplication.Lock()/Unlock()で
やればよいでしょうか?
Application.Lock()/Unlock()はApplicationオブジェクトの排他制御だから関係ない。
FileSystemObjectにもそれらしきものは見当たらなかったから、適当にロックファイルを作るしかないんじゃね?
ロック開始時に適当な名前でファイルつくってロック解除するときにファイル消すとか。
I/O負荷やファイルが残った場合のことを考えるとオススメできんけどね。
DBにデータを突っ込んで都度自動生成するの真っ当ジャマイカ?
>>687 残念ながらDBが使えない環境です。
考えていたのは
Function fileaccess()
Application.Lock()
'ファイル読み書き処理
Application.Unlock()
End Function
というような関数でファイルへのアクセスはこの関数内だけ
にしようと思っていました。
>>688 サーバ上でそういう処理をするexeを作って、
それをaspから起動させてあげればいいとおもうよ
排他処理等はexeのほうでやればいい。
aspはexeを起動して、パラメータを渡すだけ。
簡易的なロックとしてApplication.Lockを使うのはアリ
Application変数に使ってますフラグを立ててロック・・・か?
いやそれもアリだけど
>>688の方法でOK
ApplicationオブジェクトがLockの状態の時に
他からさらにLockしようとすればUnlockまで待たされるから、
Application.Lock中にファイルアクセスするようにしておけば
結果的にファイルへの同時アクセスは起こらない。
ASPだとちょっとしたアプリならメモ帳で作れちゃう。
サンプル作るときに便利。
……サンプルだって言ってんのにそのまま本番運用するなヽ(`Д´)ノ
厳密にはWin32APIでロックしないと別アプリから書き換えられそうだな
だからexeを作って、それで実行しなさいってば。
一度実行したSQLの結果を出来たらHASH形式のような形でasp上で保持したいのですが、
何か良い方法は無いでしょうか?
各ページで一度実行し、aspの実行が終わるまでは値を保持し続けるという感じで作りたいのです
Session()
Application()
あとはASP.NETみたいにエンコードしてレスポンスの中に埋め込んどくとか
ありがとうございます。レスポンスに埋め込むという考え方は思いつきませんでした。
今、本などを頼りにちょっと調べてみました。
Response.Pics["test"] = "aaaaaaa"
Response.addHeader("test","aaaaaaa")
のどっちかでイケると見た。ちょっとテスト環境立ち上げて調べてみます!!
ぜ、全然出来なかった。。。。
>>699様、すいません。もう少し教えていただいても良いでしょうか?
>>701 エンコードしてformのhiddenに埋め込んで、
渡してあげりゃいいんでないの?
またはセッションかクッキーとか。
テキストにシリアライズできるものなら、これらの方法でおけ。
データベースに入れておけばいいのに
DictionaryオブジェクトをSessionに突っ込めばいいんじゃね
だからDictionaryとかFileSystemObjectとかADO連をApplicationやSessionに突っ込むなと何度(ry
Dictionaryで何とか作成しますた。みなさん有難う御座います。
しかし、PHPに馴れ親しんでただけになんて使い辛いんだ。。。。。
どういう目的で保持したいのか分からないと何とも言えんけど
リモート スクリプティングでXML形式のデータを抱え込むってのは駄目なんか?
>>698 >各ページで一度実行し
ここがよくワカラン
>>711 Recordset閉じても
そのASP内はレコードの内容を参照したいってことかも
そんな無茶な(´Д`;
ASPのマニュアルってどこにあるんでしょうか?
全てが網羅されているようなリファレンスが欲しいです。
718 :
nobodyさん:2007/03/09(金) 02:53:04 ID:wWCfPyjx
Javaから移ってきました。
1.画面上で入力された検索条件をうけとる
2.検索条件を元にDBを検索する
3.2の結果を画面上に表示する
といった単純な処理がしたいのですが、みなさん1ファイルにすべての処理書いてますか?
せめて2の処理だけ別の関数にしたいのですが、クラスという概念がないのでやりかたがよくわかりません。。
>>718 外部ファイルにサブルーチンで記述して、インクルード汁。
720 :
nobodyさん:2007/03/09(金) 19:16:42 ID:wWCfPyjx
>>719 複数件数のレコードをデータベースから取得する場合
外部ファイルの関数の戻り値はなににするんですか?配列ってできないですよね?
クラスあるよ
722 :
nobodyさん:2007/03/09(金) 19:46:02 ID:wWCfPyjx
まじかーーーーー。。。
>>720 あくまでインクルードなので、外部ファイルに書いたfunctionが
いま記述してるaspに含まれるイメージ。
Javaで言うところの継承元で記述したプロシージャが
継承先でも利用できるって感じ。
関数の戻り値はレコードセットでしょ。
Set rec = db.execute(sql)
的に記述すると思うけど、そのrecを返してあげればいい。
もしくはbyrefで渡してあげれば
>720
使いにくいけど配列あるよ。Javaの配列とListの間というか……
動的にサイズ変更はできるが、Listのように「突っ込めば自動的に延びる」とはいかない
(つかCの*allocそのまんまだなorz)
あとはScripting.DictionaryってMapみたいのもある。
Javaのオブジェクトと違って一般にオブジェクトはSessionに入れてはいけないことには注意。(>709参照)
>>718とか
>>698って、SQLの実行(=Recordset作成)と表示を
別々のプロシージャにしたいって事だと思うんだけど
それってどういうメリットがあるの?
>>726 擬似的に表示部分と、レコードセット取得部分の分離ができるってことじゃないかな。
asp.netでいうところの、ObjectDataSourceを使用した3層モデルみたいな。
ともかく同じレコードセットを様々なページで使用していたり、
引数としてレコードセットを渡すだけで演算してくれたり、表示してくれたりとか、
共通のプロシージャにしておけば変更があったときに修正が楽。
つかclassを書くのになれていると、どんどん機能を細分化したプロシージャを
作りたくなってしまう。
>>727 ああそうか、単に表示に使うだけ、じゃない場合もあるか。
そうだよなー、ありがとう。
729 :
nobodyさん:2007/03/11(日) 01:36:28 ID:KRIEOlu8
718です。
別のプロシージャにしたい理由は727さんの言うとおりです。
付け加えれば、表示部分のファイルはなるべくシンプルしたいというのが希望です。
ASPなんか廃れてレスないかと思いましたが、たくさんあってよかったです。
>729
どうして結構使われてるんだこれが……嫌になるほどorz
気が向いたらWebうろついてるときにURLの末尾に気をつけてみ。割とあるから、.asp。
(そして.aspxは滅多と見かけない……)
社内システムでは何気に健在
移行してぇ('A`)
732 :
nobodyさん:2007/03/12(月) 09:32:41 ID:efUleaQS
ASPの既存のシステムのメンテをすることになったのですが、
IISを新規導入したときのスタートページで表示されるIIS/ASPのマニュアルが、
IE7から使うと左側のメニューが真っ白で何も表示されません。
IE6に戻す以外に方法はないのでしょうか。WindowsXPです。
733 :
nobodyさん:2007/03/12(月) 12:50:49 ID:1w2oGal7
既存のaspアプリケーション(2000サーバ)で動いていたものを
2003サーバWebEditionに移行しようとしてつまづいています
具体的な症状ですが、aspからコールしたchr関数に対して、
256以上の引数を渡そうとするとエラーを起こします。
ちなみにデスクトップにvbscriptを作成したものを実行した場合は
場合は希望の動作をしてくれます ex. chr(-27300)→"表"
多分マルチリンガル絡みでつまづいていると思うのですが
ご助力をお願いします。
734 :
nobodyさん:2007/03/12(月) 18:56:45 ID:1w2oGal7
自己レスです
Win2003WebEditionのインストール時に地域設定を
きちんとすることで問題解決しました。
元のサーバはインストール終了後に
地域設定を行っていました。これによってIISの起動ユーザの
地域設定がUSになってたようです。
これをJPに戻す為に色々やってみたのですが・・・
結局再インストールでOKでした。。。。。
735 :
nobodyさん:2007/03/13(火) 05:41:56 ID:Fi31q+iU
ASP(VBS)からWinInet.dllのAPIを呼び出す手順を教えてください。
朝までわかりませんでした...
InternetOpenとかいきなり呼んでも起こられるし
CreateObjectできるクラスはなさそうだし。
サンプル見つからないのは無理だからでしょうか。
もしかしてWinInetはCOM,ActiveXのI/Fないんでしょうか
WinInet.dllで何をしたいかによると思うんだけど。
いずれにしても、自分でActiveXを作るか、似たような機能をもつ
コンポーネントを探すしかないかと。
737 :
nobodyさん:2007/03/13(火) 19:46:01 ID:Fi31q+iU
>>736 735です。
そうですね、何も書いてないですね..
FTPです。WinInetのAPIが直接できると思い込んでいました。
ATLでAPIのラッパを作ってみます。
ありがとうございました。
>>737 FTPならIISですぐ使えるDLLがたくさんでてるから、自分で作る必要ないよ。
日本の有名どころならBasp21。ググればすぐでてくる。
海外製のフリー、商用利用可のものも結構あるよ。
ちなみにASP.NETならFTPもframeworkにあるので簡単に実現できる。
739 :
nobodyさん:2007/03/14(水) 05:56:53 ID:bC1XPAIw
>>738 アドバイスありがとうございます。(返信遅くすいません)
おっしゃる通りBASP21Proを初め、いくつかの外部ソフトや
InetCtl等も検討しユーザに打診はしたのですが、
基本は「標準」環境のまま(Win2000Server)で、追加インストールが
難しい環境なのです。追加は「自作」のみで。
割と大きな会社のイントラでその中に「おまけ」として乗せてもう
アプリであり、その「おまけ」が環境いじるな!という感じでして。
ActiveXを自作しても登録せにゃならんから、お手上げだな
自作して登録するのも、どっかからかもってきて登録しても、
結局環境をいじることになるじゃん。
自作の場合のみ環境をいじっていいということと、
おまけが環境いじるなってのと、
言ってることが激しく矛盾していると思うのだが。
そいつにif文の書き方を教えてやれ。
何が目的なのかわかれば別のアドバイスもできるかもしれんのに、質問が
743 :
nobodyさん:2007/03/14(水) 20:18:20 ID:kF5h7YY1
すべての画面で ON ERROR RESUME NEXT って使ってる?
トランザクション処理するところしか使ってないんだが。。
>>743 使わないなー
ビジネスロジックでエラーが発生するのは論外だし、
エラーが想定されるところだったら、想定したエラーがでないように
ちゃんと回避するのでエラーは発生させないし、
想定外のエラーには対処のしようがない。
するとデータの整合性を考えて、万が一変なデータが入ってきた
時にロールバックできるようにトランザクション関係しか使わないね。
よく他の言語でIsNumericの代わりに例外処理を使用して
falseを返すような関数を使ってる例があるけど、ああいう使い方は嫌い。
>>744 やっぱそうですか。
ASPはあまり情報がないので、2chだけが便りです。
746 :
nobodyさん:2007/03/15(木) 06:16:54 ID:FtlXdgK0
>>740-742 #すっかり昼夜逆転になり返信遅れすいません。
レジストリ登録は自作なら可能です。
この差はオープンソースかどうかが大きいようです。
ただオープンソースでもフリーはダメ(ならありえないような。。)
要はインフラ担当部署がレジストリとDLL等更新するものが一目で
わかる形でないとダメということらしいです。
(影響、インストール作業等)
ちなみに、外部遮断されていて、パッチもほとんど当てません。
一応、BASP21はかなり一般的で、Pro版もあると再度押しています。
質問です。
ブラウザからUTF-8できたPOSTデータは単純にResponse.Write(Request.From(hoge))
1行だけ書いたASPでは自動変換(初期SJISかなんか?)に変換されて出力される、という
ことでOKでしょうか。
んでこの自動変換を指定変換にするのがCodePageで、CodePage = internal_encoding
ということでいいんでしょうか。
またこの設定はコード上以外の画面から設定(IIS上)はどこかにあるのでしょうか。
CSVファイルをデータベースとして利用したいのですが
ODBC接続とOLEDBプロバイダ接続があるのですが
どちらがお勧めでしょうか?
>748
ASPからODBCを直接操作する方法は基本的にないので
(サーバサイド言語にPerlScriptでも使って、Win32::ODBC使えばどうかしらんけど)
基本的にOLEDBプロバイダ接続になります……
が、CSVを直接操作するOLEDBプロバイダがこれまたないので、結局
ASP - ADO - OLEDB - ODBC - CSV
という呼び出し階層になるかと。
具体的にどうするかは任せた>750
' てか、CSVを直接DBとして扱うにはschema.iniとかいろいろめどいんだけど
>750
……スマソorz これで接続できるとはしらんかった……
ということで俺にはもう語れることは何もないので適切なアドバイスたのむ>752
GUIDを取得する方法ありますか?
GUIDって?
質問です。
社内で小規模のASP+ACCESSでのデータ管理をしています。
ACCESSデータをEXCELファイルに出力するASPはできましたがその逆を今作成中です。
セル指定とかすこし難しいので、とりあえずすべてのデータを一旦workテーブルに取得して、
workデータと正規データの比較をして正規データの更新をするというものをASPで組もうと思いますが、
出力時のSQLやらpathを逆にしてもうまくいかないのです。
ASP+ACCSESSでEXCELデータのインポートするプログラムを作成した
経験をお持ちの方がいらっしゃれば、気をつけるべきポイントや陥りやすい失敗等
ご教示願えませんでしょうか?
もしくはどこか簡単に説明してあるサイトをお教えねがえないでしょうか?
検索ワードに入れ方がおかしいのかVBAばかりhitしてしまいます。
ファイルをメモリ上に読み込んでおいて
それをファイルにアクセスする関数で読み込めるというような
高度なことはできますでしょうか?
>>757 ADOでExcel開いて読み込んでまたADOでAccessに吐けばいい
761 :
nobodyさん:2007/03/29(木) 22:12:47 ID:rjNaOEAO
VisualStudio2005でプロセスにアタッチしながらデバッグするときに
UTF-8で作成されたファイルでインクルードされている方が文字化けしてしまいます。
1.インクルードする側のファイル(拡張子.asp)
2.インクルードされる側のファイル(拡張子.inc)
と2個のファイルがあって1個目のファイルは先頭に
<%@ LANGUAGE=VBSCRIPT CODEPAGE=65001 %>
とすればアタッチ中でもちゃんと漢字が表示されますが(しないとこちらも文字化けします)
2個目のファイルはインクルード元での指定を無視してしまい、
デバッグ中はどうもSHIFT−JISで表示しようとしてしまいます。
かといって2個目のファイルでCODEPAGEを指定しようとすると
@をプログラムの中で2回も使うな、ボケ、とIISに怒られます。
UTF-8で記述されたファイルをアタッチ中にちゃんと表示させるにはどのような指定が必要なのでしょう
VS2005なんか使ったことない。。
ASPといえばInterDevじゃないの?
ASP.NETと勘違いしてるんじゃないか?
764 :
761:2007/03/30(金) 00:59:16 ID:DVcKJnhU
VS2005でもASPはサポートされてます。
というか会社はVS2005強制でInterDevを使ったことがないです
助けてください・・・
basp21のw3getってhttpsのページには使えないんですかね。。?
767 :
nobodyさん:2007/03/30(金) 22:39:27 ID:DVcKJnhU
768 :
少しは読め:2007/03/31(土) 16:50:04 ID:???
aspで携帯の絵文字変換出来るライブラリ(有償でも無償でも)
なんかありますか?
770 :
nobodyさん:2007/05/01(火) 18:41:17 ID:6TKvIbfn
おしえてくだされ
<!-- #include file="../hoge.inc" -->でエラーが出る・・・なんで?
windows2000server IIS5.0
773 :
nobodyさん:2007/05/02(水) 00:25:44 ID:0nrPdC3j
>>770 親パスが有効になってないんじゃないの。
sageてなかった。スマソ。
メモ帳などでテキストファイルを開いて閉じた後
そのファイルに対してASPからFSOでファイルを書き込みオープンを
実行すると1回だけオープンエラーが発生します。
ある環境だけで発生するのですが、どういった可能性が
考えられるでしょうか?
>775
具体的なエラーの内容(エラーコードとかメッセージとか)がわからんので
100%憶測でしか答えられんが
そのテキストファイル(と、そのファイルのあるフォルダ)の権限はどーなっとるんだ?
FSOで書き込んだ後にちゃんと閉じてるか?
その「ある環境」っていうのがわかんないことには
>>775 1回だけってのもどういう状況か分からん
でも、きちんと説明すれば誰かが回答すると思うよ
780 :
nobodyさん:2007/05/10(木) 18:25:45 ID:PeRRNbU6
VBは多少できるのですが、WEBでは、VBは使い道ないと思ってました。
趣味で、perl+sql(フリーソフト)とかperl+JSP簡易版(フリーソフト)の
とか、遊んでますが、
この先、ASPは需要ありそうですか。
(実はWEB会社に転職したいと思ってます)
>>780 古いWebアプリのメンテが中心だと思われwww
>>780 どの程度の会社に勤めたいかによるけど、
ある程度のSI会社は ASP.net か JSP 以外は求められない。
Webデザインやってる会社にSEとして入るならPHPとかActionScriptだね
レガシASPは社内SEとか、中小のパッケージソフトハウス
783 :
nobodyさん:2007/05/10(木) 23:29:04 ID:PeRRNbU6
>>782 さん ありがとう
Webデザインやってる会社希望です。
PHPとActionScriptがんばります。
>>783 ActionScriptはともかく、aspだろうが、phpだろうが、jspだろうが
言語的には出来ることはほとんど変わらないから別に何でもいいけど、
問題は開発環境や、それに付帯するライブラリをどれだけ学ぶかどうか。
全部の言語で簡単な掲示板を作ってみるといいよ。
785 :
nobodyさん:2007/05/11(金) 00:27:17 ID:OT5s23Oj
>>784 さん
僕は、オブジェクト指向型言語の習得は、まず構文を暗記してます。
(この勉強方正しいかわかりませんが?)
PHPに慣れたら、掲示板に挑戦してみます。
結果があるなら過程はなんだっていいんだよ
788 :
bob:2007/05/15(火) 12:33:20 ID:eko0AQ5x
すいませんが教えて下さい。
つなみに超初心者です。
ASPをVbscriptで記述しています。
ある商品を登録してから1週間の間
”New”のgif画像を表示させ
登録から1週間以上たった物は何も表示させないようにし
たいのですがうまく記述できません。
queryに割り当てている文字列まで分かっているのですが.....
Windows 2003
DBMS:SQL Server 2000
>>788 やりたいことは分かったけど、
if文でイメージタグを出す出さないを分岐させるだけの話だから、
「その通りになるようコーディングしろ」としか言えないwww
昔、こんなふうにやってた気がする。
DateTimeというフィールド名でInsert時の日付がデータベースに入っていたとしたら、
select DateName("yyyymmdd",Now()) As NowDate, DateAdd("yyyymmdd",DateTime, 7) As LimitDate From ****
↑現在時刻を20070516のような文字で返す ↑Insert時の日付に+7して20070516のような文字列で返す
んでInsertDateとNowDateをIF文で比較して、NowDate < LimitDateのうちだけ画像を表示とか。
保存時の日付だけ取得して、asp側で現在時刻+7して比較する方法もアリ
791 :
bob:2007/05/15(火) 12:56:55 ID:eko0AQ5x
>>789 if分は分かっているのですが....
さすがに分かっている人ならバカみたいに簡単な事だろうと思います。
もう少し頑張って勉強してみます。
ありがとうございます。
>>791 SQLを知りたいならSQLのスレの方が良いと思うがな。
DateDiff(Day,GETDATE(),DateAdd(day,更新日,7))が0以下なら7日以内って判定できると思うが。
793 :
bob:2007/05/15(火) 13:08:37 ID:eko0AQ5x
>>790 ありがとうございます(>_<、)
一度挑戦してみます。
質問ばかりで申し訳ないのですが
if分とselect分の使い分けが
いまいち理解できないのですが....
>>793 if文はVBの制御ステートメント、
selectはsqlのクエリ(データベースへの問い合わせ言語)でまったく別物。
set rec = db.execute("SELECT DateDiff(Day,GETDATE(),DateAdd(day,更新日,7)) AS DateDiff FROM **** WHERE")
みたいにレコードセットを取得して、
set DateDiff = rec("DateDiff")
みたいにレコードセットからDateDiffの値を取得して
IF DateDiff <= 7 THEN
Response.Write("<img src='new.gif'>")
END
みたいに更新後7日以内だったらnew.gif画像を表示させるみたいな感じ。
Windows2000Serverで動いていたASPサイトを、開発用に
WindowsXP Pro SP2のIISで動かそうとしたのですが、
global.asaの<OBJECT>で設定したDLLを使っているASPページにアクセスすると
ブラウザに「オブジェクト 'objLock' を作成中にエラーが発生しました。」
と出てしまいます。
他のDLLは普通に使えているのですが。
XPのIISにはこの辺に制限があったりするのでしょうか?
>>795 何のDLLをどう使ってるのかわからんので何とも言えんな。
797 :
795:2007/05/18(金) 13:44:58 ID:???
スコープをApplicationからSessionに変更したら動きました。
DLLは自作のCOMオブジェクトです。
他のCOM DLLはApplicationスコープでも作れているので、そのDLL内の処理
に原因があるようです。
やっていることはiniファイル読み込みとか色々で、すぐに原因を探すのは難しいです。
798 :
nobodyさん:2007/05/23(水) 09:52:14 ID:bVeQ8hR2
クッキーを使わずにsession使う方法ありませんでしょうか?
お願いします。
800 :
798:2007/05/24(木) 08:42:16 ID:oLiY6jgv
オンメモリクッキーの使用方法お願いします。
802 :
nobodyさん:2007/06/02(土) 00:08:27 ID:eR36W2F0
ASP(VBScript)のコードををきっちり詰めて書いたつもりでも、
実行してソースを見ると無駄な空行が入ったりしてしまうのが気になっています。
これは一体何なんでしょうか?
気にせずコードを見やすく書いた方がいいんでしょうか?
それとも<% 〜 %>の直後にHTML部分の最初を持ってくるなどして
意地でも空行が入らないようにするべきなんでしょうか?
ASPで書かれたページのソースを見ると、無駄な改行が入ってるものが
多いみたいですが…。
>>802 > それとも<% 〜 %>の直後にHTML部分の最初を持ってくるなどして
> 意地でも空行が入らないようにするべきなんでしょうか?
そうするしかないね
あまり気にしないほうがいいよ。
>>803 気にしなくて大丈夫ですか。ありがとうございます。
改行もそうだけど、字下げをどうしたらいいかも悩む
この変数は宣言されていません。:_'adOpenKeyset'
というエラーが出るのですがどう対処すればよいでしょうか?
>806
1. adovbs.incってのがC:\Program Files\Common Files\System\adoにあったらラッキー。
それをASPの頭で#includeすればおk
(Visual Studioとか開発系のアプリ入れてれば入ってる可能性あり)
2. なかったらその単語でぐぐるか、あるいは、MSDNかAccessあたりのヘルプがあればそれで調べる。
具体的な数値として代わりに何指定すればいいか分かったら、
あとは自分でConst adOpenKeyset=ほにゃらら するなり、数値をべた書きするなりお好きなように。
# 直接その値書けば早いんだが、多分他にadCommandTextとかその辺でも引っかかるだろうから……要領は同じ。
WindowsVistaのIISで ASP + ADO + Jet4.0 を動かせてる人いますか?
mdbに接続を開こうとするとエラーになってしまいます。
<%@ Language=VBScript Codepage=932%>
<%
Dim con
Set con = Server.CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\Database1.mdb;"
con.Close
%>
エラーメッセージ
-----------
Microsoft JET Database Engine エラー '80004005'
エラーを特定できません
/test/Default.asp, 行 5
同様のコードがWSHでは動くんですが、ASPだと動かないんで、セキュリティ?
関連の設定が原因なんでしょうか?
テストのため一時的に、IUSER_XXX の 対象mdbとmdbがあるフォルダへのア
クセス権をフルコントロール に設定してみましたが同様の現象でした。
IIS7のASP設定はデバッグ機能をONにした以外はデフォルトのままです。
環境
OS:WindowsVista Ultimate
IIS:IIS7
MS Office2007 インストール済み
810 :
nobodyさん:2007/06/23(土) 01:19:44 ID:b9QfdI5n
ていうか、VISTA+IIS7でASP自体うんともすんとも言わない(涙
アプリケーション開発機能の下はすべて有効化してあります
>>809さんどうやって動かしたの?
ページの頭のほうに合計があり、そのあとに明細が続くような
ページ構成の場合、明細を足していって合計を出すので
先に合計があると2回明細をなめる必要があると思うのですが
こういった場合にうまいやり方はありますか?
>>811 明細をなめながら 変数 html に出力内容をためていく
同時に変数 sum に明細を足していく
最後に sum → html の順にResponse.WriteすればOK
css使って、見た目上は合計表示が上に来るようにするとか。
変数にHTMLをためていくのにJavaのStringBuilderみたいな
ものはありますでしょうか?
文字列の連結だと遅くなるような気がして避けていたのですが。
>>815 Join(Array(1,2,3,4,...,n),"")とやると、結構速くなる。
WinXP SP2ではbasp21のSleepが効かないみたいですね。
ASPで使っても、単独VBSで使っても、1秒も待たずに戻ってきます。
既知の問題でしょうか?
<tfoot>に明細入れて<tbody>に合計書けばいいんじゃね?
>>817 試してみた
OSはWindows XP Professional (5.1, Build 2600) Service Pack 2
ソース
<% Set b=Server.CreateObject("BASP21")
fdate=now
b.Sleep 10
Response.Write(b.version&" > "&fdate&" | "&now) %>
結果
BASP21.DLL = Feb 11 2003 BSMTP.DLL = Feb 11 2003 > 2007/06/26 20:46:10 | 2007/06/26 20:46:20
問題ないぽいね
Application.Lockについて教えてください。
いろいろなサイトを見ているとApplication.Lockのあとに
Application変数にアクセスした時点でロックされるという
記述が見受けられますが、実験をしてみたところ
Application.Lockだけでもロックされるようです。
(Application変数へアクセスなしでもロックされる)
テストした環境はWindows2000Professionalなのですが
環境によって動作が異なったりするのでしょうか?
よろしくお願いいたします。
ロックされているのをどうやって確認した?
baspでスリープさせました。
ふむふむbaspでスリープさせるとロックされましたというメッセージが出ると。
んなわけあるかボケ
スリープ前と後に時間を表示させました。
>>820 俺も前にやってみた事があって同じ結論に達したんで
>>692で
そんな事を書いたんだけど、なんか微妙に否定されたっけなあ。
ASPをはじめようと思っています。
しかし、本でみたプログラムと追加と削除のWindowsコンポーネント追加のところに
IISをインストールできる項目がありません。
WindowsXP HomeEdition を使っているからでしょうか・・・どこかにインストーラ
がないかと探したのですが、一向にみつからないのです。
HomeEditionじゃダメです
829 :
827:2007/07/08(日) 16:40:58 ID:???
そうですか・・・残念です
830 :
nobodyさん:2007/07/11(水) 05:38:51 ID:cv7DWB99
CreateObjectで作ったオブジェクト操作でフォルダのコピー処理をしようと
考えています。そのフォルダーにファイルが三つ以上あった場合コピー処理
を行いたいのですが、どのように記述すればよろしいでしょうか?
>>830 If そのフォルダのFilesのCount >= 3 Then
フォルダをコピー
End If
832 :
nobodyさん:2007/07/13(金) 07:45:43 ID:0WQRj1y6
>>827 XP Home ed.の人は、abyss web serverを使えば?
ASP.NETとPHPが動くし、レガシASPも
シェアウエアのモジュールで動く。
ASPの最強設計教えてくれ。
IIS5.0(Windows 2000 Server)でマクロ付きのExcel2000ファイルを開くにはどうしたらいいでしょうか?
EnableEventsが効かないみたいなことは書いてあったのですが orz
どうぞ教えてください。
サーバ側でExcelを起動するという事?
なら考え直した方がいいんじゃないかな。
838 :
nobodyさん:2007/07/23(月) 21:22:45 ID:L7uJTgb1
ASPのみにかかわる問題かどうかわからないのですが
現状iis6上のaspでしか実験できない環境のため、
ここに問題提起いたします。
iis6のaspファイルに対して
office2007で作成したpptファイル(≠pptx)をhtmlのputで
アップロードしようとしたのですが
ファイルを認識出来ない場合があるのです。
特にスライドにテーマを指定した場合に必ず発生します。
ファイルの取得はbasp21を使用しています。
Set bobj = CreateObject("basp21")
aryBinary = Request.BinaryRead(Request.TotalBytes)
strFileName = bobj.FormFileName(aryBinary, "aaaa")
このサンプルコードの場合(strFileName="")がtrueになってしまいます。
同じ階層の別名保存したpptxファイルは認識しますし、
office2003で作成したpptも認識します。
多分office2007側の問題で回避が難しいと思うのですが、
例えば他のサンプルソースのやり方では再現しないとか
asp.netならば再現しないとか
aspでも他の環境では再現しない当の情報が集まれば幸いと思っております。
もしご存知の方おられましたら教えてください。
試してみたけど、問題なくできたけどなぁ。
840 :
838:2007/07/24(火) 17:12:05 ID:???
なんとか解決いたしました。
お恥ずかしい話ですがメタベースのアップロード制限に引っかかっておりました。
pptx⇒pptの変換でファイル容量が4倍以上に膨らんでおり、
その点に気づけずに問題提起してしまいました。
スレ汚し申し訳ありません。失礼します。
841 :
nobodyさん:2007/07/24(火) 23:38:04 ID:L70Yovvo
エラーが正しく検知できていたのかどうかが気になる
selisoftのシェアウエアASPはクラッシュして使えなかった
baby aspはDBのフィールド名を日本語にしなければ良好
アプリケーション全体で共通して使う定数の定義ってどこでやってますか?
.NETだとweb.configが使えるんですが……
まだプロトタイプなので共通ファイルつくって各aspファイルでインクルードしてますが、
はたしてこの方法が正しいものかと心配です。
私も共通ファイルです。
global.asaでもいいのかも。。
global.asaでApplicationオブジェクトに入れてる
846 :
nobodyさん:2007/07/28(土) 21:46:31 ID:ec0MqZyi
windows2003 sp1 でMSXML2.ServerXMLHTTPを使ってサーバサイドでのモジュール間通信を行っていたのですが
windows2003 sp2に移行したところ、これが機能しなくなりました。
処理が帰ってくる間まで数分かかる所から見てタイムアウトを起こしているようなのですが
エラーオブジェクトが何も拾ってくれず詳細が分かりません。
IISのログには
POST /testServ/Main.asp |-|ASP_0147|500_Server_Error 80 - 127.0.0.1 Mozilla/4.0+(compatible;+Win32;+WinHttp.WinHttpRequest.5) 500 0 64
と書かれているのですが、これでググっても解決策が見当たりません。
なにか情報はありませんか?
847 :
843:2007/07/29(日) 10:22:27 ID:???
>>847 Application変数が非意図的に変更されてしまうケースとは?
aspを書くのが自分ひとりじゃないって事かな?
849 :
843:2007/07/29(日) 19:21:34 ID:???
>>848 可能性の問題だけなので論ずるのは現実的でないかもしれませんが、
「変数」という以上は値を変更することが可能ということですよね。
あんまり深い意味はないのです、ごめんなさい。
書くのは自分1人じゃないです。
もちろんグローバルな定数なのでそういう名前にするという情報は共有しますが、
誰かがうっかり変えちゃって訳の分からないバグに遭遇したらイヤだなあと、、、
臆病者なんです。。。
そうか、いちいちincludeするのが面倒だけどConstの方が安心だね
global.asaで定数宣言できればいいのにな
メインのASPプログラムの他に、変数や定数などを記述した設定ファイルを持ち、
条件によって設定ファイルを分けるというプログラムを作りたいです。
この場合どうすればいいんでしょうか?
Server.Executeで呼び出してもそっちで設定した変数情報は受け取れないみたいで困ってます。
それに別ディレクトリのファイルは指定できないし…。
SSIのインクルードだと、ASPより先に実行されるから条件によって呼び出すファイルを
分けられないし…。
Perlでよく見かけるように、メインのプログラムの他に変数の設定をするファイルがあって、
それをrequireで呼び出すみたいな感じにしたいんです。
なるべくデータベースは避けたいです。
自作のテキストファイルを作って一行ずつFileSystemObjectで読み込む処理を作るしかないんでしょうか?
>>851 セッション変数とリダイレクト使えばいいんじゃね
853 :
851:2007/08/03(金) 21:46:29 ID:???
あ、すいません初歩的なことを見落としてました。
>>852 別の方法で自己解決しました。ありがとうございました。
手っ取り早くゴーインにってのはダメ?
<% Select Case Request.QueryString("a")
Case 1
%><!-- #include file="a.inc" --><%
Case Else
%><!-- #include file="default.inc" --><%
End Select %>
856 :
854:2007/08/03(金) 23:28:07 ID:???
>>855 > メインのASPプログラムの他に、変数や定数などを記述した設定ファイルを持ち、
> 条件によって設定ファイルを分けるというプログラムを作りたいです。
だったんで
*.incの中身を代入式の羅列にすればいいんでないの?
つか、ゴーインにってのはつまり「全部読み込んだ上で条件分岐させれば」ってことなんだけどね
>>856 変数はそれでいいかもしれんが、定数は複数定義でエラーに・・・
858 :
854:2007/08/04(土) 20:17:30 ID:???
>>857 854みたいな手抜きするときは全部変数にしてたっけ
Const使うんなら確かにムリだな、スマン
ファイルのロックでApplication.LockとUnlockを使おうかと思ってるんですけど、
このやり方だとロックとは関係ない変数も含めて、ロック中には
すべてのアプリケーション変数に対して1つのプロセスしかアクセスできない
状態になってしまいますか?
ロックしたいファイルが複数ある場合や、関係ない変数までロックされてほしくない場合は
やはりロック用のファイルを作るやり方の方がいいんですかね?
>>859 あるいはApplication変数にロック中フラグを持つとか。
>ロックとは関係ない変数
これは認識違いだな。細かいけど。
861 :
nobodyさん:2007/08/12(日) 03:19:14 ID:uRVuqpj5
ASPのエディタってInterDevしか無いんですかねぇ。
とりあえず、以下が実現出来ればOKなんですが。。。
@HTMLとVBコードの色分け
AVBの候補表示
Visual Web Developer 2005 Expressで、VBコードの色分けが出来れば早いんですが。。。
何か良い知恵があればご教授下さい。
ASPスクリプとはメモ帳で十分
863 :
nobodyさん:2007/08/12(日) 09:17:33 ID:uRVuqpj5
>>862 一人でやるならそれでいいんだけどね。。。
スキルが解らん外部の人間が10人も来るから、出来る限り負担を減らしたいんだけど。。。
2005だとインテリセンスとかおかしくなるんじゃないか?
俺は色分け程度であればTeraPadっていうフリーのテキストエディタ使ってた。
候補は古いMSDNライブラリ入れときゃいいんじゃないの。
>>861 DreamWeaverである程度は可能。
ステップ実行とかBreakPointはムリだけど。
866 :
nobodyさん:2007/08/14(火) 00:50:47 ID:wVC1GBRu
質問があるのですが、
サーバー側の処理で、データベースに書きにいく処理をするASPがあった時に、
そのASP内でエラーが発生した場合クライアントにどうエラー内容を返せばよろしいですか?
response〜〜〜なにで返せばいいかわからなくて
>866
そりゃあ、そのエラーの内容と、それによってどうしたいか、によるとしか言えないが……
まずどういうエラーが想定されるか洗い出して、そのときどうするか、を打ち合わせて決めておく。
そのとき「想定外のエラーが出たらどーするか」も忘れずに。
決まったらあとはその通り作るだけ。
>>865 DreamWeaverってVBの候補表示って出来るんですか?
それができれば、一番良い選択肢になります。。。
>>864 秀丸かTeraPadですよね。。。普通。
デザインからコードの修正まで出来たら、かなり工数も削減出来るんだけど。。。
自作しようかな。。。でも、消え行く技術ですからね。
>>866 オマイはオレか?
どんぴしゃで似たような質問しよーと思ったとこだったんだが。
>>868 外部OCXのオブジェクトはムリだと思うが、
VBScriptの一般的なコードなら、コードアシストがある程度は効く。
完全だとは思えんが、そこそこは役に立つよ。
>>866 俺はResponse.Redirect で元の入力フォームのページかエラー専用ページに飛ばしちゃうなあ。
入力フォームに戻す場合は、入力された値が残っててなおかつエラーメッセージが表示されてたり
エラー箇所が強調表示されてると親切かも。
っていう答え方を期待してた?
>>866 そのまま Response.Write じゃだめなの?
Server.CreateObjectを実行できる権限をユーザーに与えたい場合
どういった権限を与えればいいのでしょうか?
CreateObjectするものによる。
>>875 ありがとうございます。
MSXML2.DOMDocument
をCreateObjectしたいです。
MSXML2.DOMDocumentなら、msxmlのdllに実行権限があればOKだとおもう。
普通は実行権限があると思うけど、IISの権限が全然ないのかな?
文書管理システムをASPで作れって、どんな罰ゲームだよ・・・orz
MVCを意識して作ってる?
・・・って何となく誰でもいいから聞いてみたくなった
>>879 頑張ってるけど無理。
登録・削除・更新ならできるけど、画面表示は厳しい
ASPでMVCというと、当時MSが推してたのは
MとCはCOMコンポーネントで、だったからなぁ
882 :
nobodyさん:2007/09/14(金) 07:07:50 ID:VMti5Srh
Ajaxが最新の現状でJavaをやり
ASP.NETが最新の現状でASPをやる。
日本の企業は、どうして一歩遅れているの?
>>882 一歩どころじゃねぇよwww
最新技術で提案すると、
「実績は?」「安定性は?」「信頼性は?」
そんなの有る訳ねぇwww
なんだかんだ言って保守的だよな
下手するとWindowServer2003でさえ拒否される
885 :
nobodyさん:2007/09/14(金) 17:56:16 ID:VMti5Srh
一般人は、日本のIT企業は世界最先端だと思ってるだろうにな。
886 :
nobodyさん:2007/09/15(土) 14:31:43 ID:0YoYWRyt
ページ表示後、定期的にサーバー側からクライアントにページ変更内容を
送ってブラウザを更新する方法を探しています。
javascriptのreloadを使うしかないのでしょうか?
>>886 サーバ側から送るというより、
クライアントから取りに行くという仕組みになりますね。
reloadでもajaxでもいけます。、
要件しだいです。
>>888 887です。更新チェックも色々あるんですね。
私がイメージしてたのは、ご想像のとおりポーリングです。
ピギーバック、コメットなど他にもあるみたいですが、
やはり、まずはクライアントからのリクエストありきなんですね。
新規案件をASPってのはどうなのよ…
893 :
892:2007/10/11(木) 22:54:31 ID:???
自己レスですが、このソフト会社にメールしました。
InterlinkとTeliosは持っているので、H/PC2000 MIPS用のを送ってもらって、
日本語環境下で どの程度使えるか、試してみます。
へぇ、こんなのがあるんだ。面白そう。
レポートきぼん。
895 :
892:2007/10/16(火) 22:00:26 ID:???
896 :
892:2007/10/16(火) 22:11:46 ID:???
897 :
892:2007/10/19(金) 06:43:19 ID:???
PockePCがまだ入手できていないので、Pocket IISのほうをテリオスとInterlinkで試した。
H/PC2000でも見事に動いて日本語も使えます。
レスポンスもまずますOK。 こんな小さなマシンでASPが快調に動くのに感動。
久々に覗いたら面白そうなことをやってるね。
資産をいかせるってのはいいなあ。
899 :
892:2007/10/23(火) 22:40:46 ID:???
PocketASP2.1を試しました。 (その後メールがあり、H/PC2000用も)
その結果のまとめ (AccessのmdbをActiveSyncでそのままcdbに変換)
PocketASP2.1
1、セッション変数とDBのフィールドに日本語名が使えない。
2、DBのコネクトとレコードの読み出しはノーマルのASPのままでよい。
(Serverオブジェクト使用可。書き換え不要)
Pocket IIS
1、セッション変数とDBのフィールドに日本語名が使える。
2、DBのコネクトとレコードの読み出しは、ADOCEの文法で書かなくてはならない。
(Serverオブジェクト使用不可。ADOCEに書き換え)
参考 Pocket IISでのDBへのコネクト例 (Serverオブジェクト未使用)
Set conn = CreateObject("ADOCE.Connection.3.1")
conn.open "Data source=\My Documents\test.cdb"
参考 Pocket IISでのレコードセットへのアクセス例
Set rs = CreateObject("ADOCE.Recordset.3.1")
rs.open SQL,conn,3,3
一長一短ですが、DBの列に日本語名のものがあるという掟破りが
あるので、今のところPocket IISでいくつもりです。
900 :
nobodyさん:2007/11/05(月) 23:16:08 ID:lWoMRDzX
>>892 面白そうだね。
土日にやってみます。
「ぴいたん」ってフレームワークが公開されたから今試しています。
使った人他にいる?
↑環境を記述するのを忘れていました。
開発環境
WindowsXP Pro
VS2005Pro
C#
ASP.NET Ajax
です。
初代VS.NETからサポートに入っていますが、今だによく分かっていませんorz
903 :
892:2007/11/07(水) 07:17:28 ID:???
>>900 cdbを使うなら、PPC2003以降とそれ以前では
互換性がないので注意が必要です
これを忘れてH/PC2000で変換したcdbを
うっかりW-ZERO3に移して動かしたら
画面が真っ黒にフリーズしました
W-ZERO3は、ときどきエラーコードをはかないで
いきなりクラッシュするから参ります
904 :
892:2007/11/07(水) 08:39:58 ID:???
905 :
892:2007/11/07(水) 20:03:23 ID:???
ASPのサイトでCookieを使っているのですが、
同じサイト内にASP.NETのページがあり、
そこで同じキー名のCookieを使う(保存する)と
ASPのほうのCookieが文字化けしてしまいます。
おそらく文字コードの問題だと思うのですが、
解決策をご存じの方いらっしゃいませんか。
・Cookieのキー名を変える
・文字コードを同じにする
・BASE64等でエンコード
etc.
908 :
906:2007/11/10(土) 16:48:44 ID:???
>>907 ありがとうございます!
エンコードする方法で検討してみようと思います!
PocketASPはマルチバイト文字の処理に対応していないため、
mdbから変換したcdbの日本語は、文字列がシングルバイトとして処理される。
この結果文字化けする。
(空のDBに、新しくPocketASPを使って格納するデータは
unicodeからsjis変換されるため文字化けしない。)
結論として、既存のPCのデータと連係する使い方には、PocketASPは
適さない。 この場合は、Pocket IISを使うべき。
SprintDBでcdbの中を見ると、
1,mdbから移行したデータは正しく日本語で格納されている
(が、読み出そうとすると文字化け)。
2,PocketASPを使って新しく格納したデータは日本語は文字化けした状態で
格納されている(が、読み出そうとすると正しく表示される)。
910 :
nobodyさん:2007/11/30(金) 08:05:30 ID:lQA31XGx
IIS7のデバッグ機能はどこで設定するのでしょうか?
保守
912 :
nobodyさん:2008/01/12(土) 04:22:38 ID:3VTztCHa
aspで書かれた自動登録型リンク集のaspソースを配布してるところって無いですか?
913 :
ZZTAKE:2008/01/24(木) 13:25:14 ID:2IzLMozq
ASPで伝票番号のチェックデジットを付加する処理を作成しています。
SQLサーバーのデータベースから伝票番号の読み込み、チェックデジットを
付加して画面に表示したいのです。
SQLサーバーのデータベースの項目は char 12バイト です。
《例》 lpRenjiSt の 中身は 120100406519 です。
lpRenjiSt = rsRkcrenji("no_renji_st")
Response.Write lpRenjiSt
rsDenBan = ( lpRenjiSt mod 7 )
このASPを実行すると
Microsoft VBScript 実行時エラー エラー '800a0006'
オーバーフローしました。[string "120100406519"]
となりうまく動きません。 型の変換をうまくつかわないといけないと思うのですが
よくわかりません。 いろいろとサイトを検索しましたがわかりませんです。
なにかよい方法はないかアドバイスをお願いします。
>>913 ( lpRenjiSt mod 7 )した結果をCStrで文字列に変換すれば解決しないか?
CStr( lpRenjiSt mod 7 )
って…
>913
VBScriptで普通に扱える整数は最大 2147483647 まで。
Modは整数しか扱えないから、120100406519を整数として取り扱おうとして
オーバーフロー起こしてるわけだ。
とりあえず、実数にすりゃもっと大きい値でもいけるから
CCur(lpRenjiSt) - Fix(CCur(lpRenjiSt) / 7) * 7
で目的の計算はできるけど、なんかもう少しましな計算方法ないかなぁorz
インド人カモーン
916 :
ZZTAKE:2008/01/25(金) 20:26:39 ID:npqN1P1V
>914
解決できませんでした><
917 :
ZZTAKE:2008/01/25(金) 20:29:10 ID:npqN1P1V
915>
ありがとうございました。 なんとかなりました。
918 :
nobodyさん:2008/01/27(日) 00:55:27 ID:zxdwLMhT
初心者でございます。
WEBサーバー側に0〜9までの数字があって、ASPにアクセスするたびに
ブラウザに0〜9の数字が順繰りに1つだけ表示されるASPは
どうやって書くのがいいでしょうか。
>>918 基本的にはアクセスカウンターと作り方は一緒。
カウントが9まで行ったら0に戻るようにするだけ。
アクセスする度というのがどのレベルで言っているのかによるけれど、
・ファイルやDB (全ユーザ共通)
・アプリケーション変数 (全ユーザ共通)
・セッション変数 (ユーザ毎、セッション終了でクリア)
・Cookie (ユーザ単位、任意のタイミングでクリア。ただしユーザによってクリアされることもある)
・ページ毎の変数 (カウントの記録には使えない)
のどこにカウントを記録して、どこに表示用の変数を持つかで動作が変わる。
アクセスカウンタなら普通はファイルかアプリケーション変数に全体のカウントを記録して、
セッション開始時にカウントをインクリメントしてセッション変数に記録、
セッション変数に記録したカウントを表示する。(セッションが終わるまではカウント固定)
カウントを記録する時に、排他制御を忘れないように。
>>918 ユーザ共通で順繰りするのか、ユーザ毎に順繰りするかで、やり方が異なる。
初心者という前提で、ユーザ共通なら、テキストファイルに+1した数字を書き込んで、読み取り。
ユーザ毎ならクッキーに+1した数字を書き込み、クッキーから読み取って表示するのがラクだと思う。
やり方は勉強してね。
921 :
nobodyさん:2008/02/10(日) 23:22:30 ID:0/brfQ0G
VistaのIISでデータベース(Access)にアクセスしたいのですが、
うまいことできません。ADOが使えないの…?
うまいことやる方法をご存知の方教えて下さい。m(_ _)m
むしろAccessというかJetを使わせたくないんじゃないか。
Jetドライバの64ビット版は作る気ないらしいし。
以前MDBを叩くASPを乗せるサーバを
うっかり発注担当が64ビットの2003Serverにしたことがあって
届いてからえらい目にあったorz
>>921 やっと解決の糸口を見つけた。。。
C:\Windows\System32\inetsrv\config\applicationHost.config
に
<system.applicationHost>
<applicationPools>
<applicationPoolDefaults>
<processModel identityType="NetworkService" loadUserProfile="false" />
</applicationPoolDefaults>
</applicationPools>
</system.applicationHost>
てな感じで追加。
OSでODBCの設定をして動作させることには成功してないけど、
以下のような感じなら動く。
Set Con = Server.CreateObject("ADODB.Connection")
Con.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("hoge.mdb")
あー、いつASPのシステムをゼロから書き直さなければいけない時がくるのか。。。怖泣
普通サーバーにVistaは入れないんじゃないの
てゆーか、Windows Server 2008 から Vista に右へならえで、今までどおりに使えなくなるんじゃって考えるんじゃないの
そーいや2008から32ビット版出ないって聞いたことあるけど
やっぱ出ないのかな
mdb使ってるASPは全滅確定なんだが
' いや、SQL Server compact ed.に置き換えるとかすりゃ滅びないけどさ。
VistaでQuick'n Easy Web Serverを使ってるが、簡単便利 mdbもフィールド名に日本語使わなければまったく問題ない
Baby Web Serverの上級版で29ドルのシェアウェアだが、これでIISと決別した
Baby Web Server ての入れてみたがどういう風にhtml開けばいいんだ…
933 :
931:2008/02/17(日) 20:43:15 ID:???
thx。
Quick'n Easy Web ServerでMDBの列名に日本語が使えないというのは誤りだった。使える。
セッション変数に日本語が不可なだけ。
IIS6 で Server.URLEncode した文字列(たとえば、「00 ああああ.txt」みたいなの)を
再度サーバーで受け取ったとき、正常に復元されないんだけど、他にこんな問題がでてるところあるかな?
936 :
nobodyさん:2008/02/22(金) 23:50:16 ID:S8mvAaEP
baspで数字をエンコード時に数字の桁数が3桁の場合、エンコード文字列の後ろに=
が付いて正しくデコードできなくなるけど何か方法はないでしょうか?
今はとりあえず数列の先頭に0を付けて6けたにしてデコードしてますが。
>>936 作者にバグレポートするか、
回避できてるその方法で使うか、
でいいじゃねぇか。
938 :
nobodyさん:2008/03/11(火) 07:11:59 ID:ZFpQQyBC
ASPからshellでFTPを使ってファイルのダウンロードを考えてますが
セキュリティ的に問題ないでしょうか?
ないない まったく無いよ。
940 :
nobodyさん:2008/03/14(金) 16:35:28 ID:nvwoWO0Y
すいません、ASPのエラー一覧が記載されてるページ教えてもらえませんか。
MSDNから削除されたみたいです。
941 :
nobodyさん:2008/03/21(金) 21:33:27 ID:5A6od0ec
サーバー間でファイルのやり取りを考えてるのですが、
目的のネットワークドライブのファイルを
CreateObject("Scripting.FileSystemObject")
を使ってコピーしようとしてもうまくいきません。
何かいい方法ないでしょうか?
ちなみに相互のサーバーは同一LAN上にあります。
942 :
941:2008/03/21(金) 22:04:48 ID:5A6od0ec
サーバーのOSはWin2003です。
>941
「うまくいきません」てのはどういう状況なのかkwsk
まさかとは思うが、普段使ってるユーザーで切ったネットワークドライブが
ASPからだと見えないとかゆー話じゃないよね?
944 :
941:2008/03/22(土) 06:51:48 ID:HjD2LhX7
>>943 Wsh.MapNetworkDrive "Z:", "(保存ドライブ)\\192.168.10.12\D\BACK", False,"administrator" , "pass"
FS.CopyFile "(コピー元)\\192.168.10.15\D:\TEST", "Z:\", True
上記のように書いてますが、「指定されたログオン セッションは存在しません。」
とのエラーが保存ドライブ指定の所で起こっています。
よろしくお願いします。
>944 疑問点。
1. そのコードはほんとにその通り書いてあるのか。
「(保存ドライブ)\\192.〜」というパスが有効なわけがないのだが。
実際のアドレスとかパスは晒せんから、と変えるならともかく
説明書きならコメントで書いてくれろ。
もしかするとその記述でエラーが出てるだけじゃないかと思ってしまう。
2. 「保存ドライブ指定の所」というのがどこのことか分からない。
MapNetworkDriveでドライブを指定してるとこなのか
CopyFileの第二引数の"Z:\"がエラーになってるのか。
3. 2行目を見ていてどーも不安なのだが
1行目の「\\192.168.10.12\D\BACK」のDってのは、そのPCに「D」という共有名があるんだよな?
間違ってもDドライブのつもりじゃないよな?
Dドライブの管理共有のつもりなら「D$」だぞ?
(ちなみに2行目の「\\192.168.10.15\D:\TEST」もほんとに「D:\」と書いてるなら
それはそれでエラーだ)
>946
……俺、クマー? ま、まぁいいやorz
948 :
nobodyさん:2008/04/06(日) 14:35:10 ID:VbyGl1Vx
Win2003サーバーで割り当てられたネットワークドライブの有効性をチェックする為、
下記のソースを書いてますが、割り当てドライブZが存在しても"無効"の処理に流れて
しまいます。
Win2000サーバーでは期待通りに動くのですが、どのようにすればよいでしょうか。
よろしくお願いします。
Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.DriveExists("Z:") then
Response.Write "有効"
Else
Response.Write "無効"
End If
Set FSO=nothing
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
>>948 ヒント1:ネットワークドライブはユーザ個別の設定
ヒント2:ASPにアクセスした時IISはどのユーザで実行すると思う?
>>950 thx
何とか問題を解決することが出来ました。
IISは匿名アクセスにしてASPのプログラム上で統合Windows認証を
するにはどうすればよいでしょうか?
>>952 ルートは匿名アクセスにして、どこか仮想ディレクトリの下にASPを集めて
そこを統合Windows認証にすれば?
ASPが<a href="***.zip">りんく</a>の様に出力していたとして、
リンクをクリックしてから、
ファイルダウンロードダイアログが表示されるまでのタイムアウト時間ってASP側で操作できる?
>>957 そういうのはWebサーバの仕事だろ。
IISのプロパティ探してみろ。
959 :
957:2008/05/11(日) 19:19:01 ID:???
>958 Thx。とりあえず設定はしてみました。
別の問題があがったんで、もう一個質問させてください。
IISで公開していないフォルダにあるファイルを、
ASPからADODB.Streamオブジェクトを利用し、
LoadFromFileメソッドとReadメソッド及びResponse.BinaryWriteメソッドで
ユーザーにダウンロードさせようとしています。
小さいファイルなら問題ありませんが、
大きいファイル(500M程度)だと
LoadFromFileメソッドに2分以上かかり、エラーとなってしまいます。
IISのタイムアウト時間は900秒、キープアライブにチェックはついております。
ADODB.Readメソッドに引数をつけて少しずつ読み込ませようとしても、
最初のLoadFromFileメソッドに大きな時間がかかってしまい、
エラーとなるのは変わりありません。
IISのタイムアウト時間を120秒以上に設定しても、
IEでダウンロードする限りリンクのクリックから120秒でIEはエラーを表示するようです。
何か解決策はありますでしょうか。
960 :
nobodyさん:2008/05/13(火) 14:08:07 ID:ZvilEQTc
兄さん、2つの異なる画像ファイルを1つの画像ファイルに合成して
出力するようなことってできるのかい?
>960
ヘイブラザー、合成って言葉の意味によって変わってくると思うが
できないってことはないと思うんだぜ
素のASPだと死ぬほど大変だと思うが。
ImageMagickとか使うんかな、そういうときは
962 :
nobodyさん:2008/05/21(水) 03:02:58 ID:SRNKrM3a
スレ消化に約3年か_| ̄|○
>962
流速が全てじゃないさ
すんません質問です
<%
Response.Status ="301 Moved Permanently"
Response.AddHeader "Location","/hoge/"
%>
とリダイレクトさせてるのですが、これを10秒後にリダイレクトさせるとかって出来るんでしょうか?
httpヘッダじゃなくて
htmlヘッダにしたら?
966 :
964:2008/05/26(月) 11:07:48 ID:???
>>965 ありがとうございます
metaでってことですよね?
SEO上metaだとやや不利なんで、最終手段にしたいんですよね
リクエスト受けた10秒後に応答すればいいんじゃない?
10秒ぐらいならブラウザもまってくれるよ。
ユーザーは待ってくれないけどな
>>952 HTTPヘッダで、認証方法をNTMLにしろって叩き返せばプログラムで制御できるよ
IISのディレクトリセキュリティは、統合Windows認証と匿名認証の両方にチェックが必要。
ただしIIS6の場合、一度NTML認証したあと、どうしても匿名認証でないと実行できないページに移動したりすると、正常に動かなくなった経験があるので、この方法はおすすめできない
970 :
969:2008/06/01(日) 21:27:27 ID:???
間違えたorz
× NTML
○ NTLM
質問させてください。
DBへアクセスする関数を切り出したいのですが、
1.DBへの接続・切断は1回だけ
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open XXX
GetData()
InsertData()
・・・
ObjConn.Close
Set ObjConn = Nothing
2.DBへの接続・切断は関数毎
GetData()
InsertData()
・・・
Function GetData()
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open XXX
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
GetData = ObjRS.GetRows
ObjRS.Close
Set ObjRS = Nothing
ObjConn.Close
Set ObjConn = Nothing
End Function
どちらが正しいのでしょうか。
2の方が関数の切り分けとしては良い気がするのですが、
関数毎に接続・切断するのは負荷が高いような…。
>>971 処理ごとに関数を分ける → 将来どういう呼ばれ方をするかわからない
ってことで関数の中で接続から切断までやったほうが良いと思うよ。
どうせIISがコネクションをプールしてるから、それほど負荷は高くない。
>>974 うーん、正直微妙。
・組み込みオブジェクトや関数なんかはintellisenseが有効
・If文などのステートメントに対してはサポートされてない
・Option Explicitにしても宣言してない変数をチェックしない
・宣言した変数を列挙しない(これが一番残念)
・includeした先では自作Classのintellisenseは無効
あぁ、.NETに移行したい。。。orz
977 :
976:2008/07/02(水) 07:14:52 ID:???
もう次スレも立たないだろーな。
979 :
nobodyさん:2008/07/06(日) 00:28:27 ID:hwQT1MmG
ASP初めて2日目のASP初心者です。どうぞよろしくお願いします。
とある理由からASP.NETではないASPを勉強しなくてはならなくなり、
WindowsXp homeではIISが入れられないという理由で
windows98をサブマシンに入れて、Personal Web Serverをいれました。
ですが、sample.aspというファイルを作ってアクセスを試みようとしても、
Server Application Errorがでてアクセスできません。index.htmlならアクセス可能でした。
初歩中の初歩かもしれませんが、どなたか教えて下さるとうれしいです。
http://www.site-cooler.com/kwl/asp/1.htm#1-1 上記のページを見ながら、やっていたのですが、アクセスのところで躓いてしましました。
何かほかにも設定が必要なのでしょうか? ご教授よろしくお願いします。
>>979 それだけでは情報が少ないが、詳細オプションのディレクトリの編集で、
スクリプトにチェックが入ってるかい?
>980 様
返信ありがとうございます;−;
はい、PWSの詳細オプションの仮想ディレクトリのSCRIPTSのプロパティーの編集では
アクセスに、読み取り、実行、スクリプトにチェックを入れております。
これとは違うものでしょうか?
他にも情報が必要でしたら、何でも言ってください。
FireFoxでアクセスした場合、Server Application Errorで
IE6の場合はHTTP 500 内部サーバーエラーでした。
なんとか自己解決しました。付き合ってくださった980様ありがとうございました;−;
>>982 PWSだとスクリプトマッピングが変になりやすいから、単純に
再インストールで直ったりするよなあ