1 名前:nobodyさん mailto:sage [2005/07/03(日) 12:27:28 ID:???] レガシASPについて語るスレです。質問や雑談もOK。 何より手軽なので社内イントラであればまだまだ第一線です。 ASP.net については専用スレッドでお願いします。 関連スレ: 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/ 過去スレ: ==ASP== Part 3 pc8.2ch.net/test/read.cgi/php/1059401269/ ==ASP== Part 2 pc2.2ch.net/php/kako/1028/10280/1028024916.html ==ASP== pc.2ch.net/php/kako/984/984840107.html
158 名前:nobodyさん mailto:sage [2005/10/24(月) 23:44:59 ID:???] >>154 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdmthrstopen.asp
159 名前:nobodyさん mailto:sage [2005/10/26(水) 01:22:49 ID:???] 複数行入力できるフォームを作り、入力された文中にある特定の行と列の数値で計算を行いたいのですが、 どのような考え方やプログラムを行えばいいでしょうか? 入力する文は数値以外は固定です 例)-------------------------------------- ************************** 100 *********** 200 ****** ****300 ****400 ****************500 -----------------------------------------
160 名前:nobodyさん mailto:sage [2005/10/26(水) 01:43:44 ID:???] >159 正規表現。 それがイヤなら数値の前後の文字列をInStrとかで検索して 場所を特定してからMidなどで数値だけ抽出。 (関数名はVBScriptの場合)
161 名前:nobodyさん mailto:sage [2005/10/26(水) 20:54:07 ID:???] >>159 数字以外が固定なら数字のところだけinput type=textにした方がいいんじゃないか… 余計なお世話だが、一度そういう無理をしてしまうと 後々になって全角も認識するようにしろとか 「3千」とかも読み取れるようにしろとか だけど「八千代商事」とかはスルーしろとか だんだん要求がアホらしくなっていったりしていくんじゃないかと心配してしまふ
162 名前:nobodyさん mailto:sage [2005/10/26(水) 20:58:37 ID:???] >>161 ime-mode:disabled と javascript で isNaN かけるとモアベター
163 名前:nobodyさん mailto:sage [2005/10/27(木) 00:32:40 ID:???] 今、会社でASPの勉強をしているのですが、COMをかなり利用していて全然理解できません。 クラス化とかさっぱりわからないのですが、なにかいい参考書やHPはないでしょうか? よろしくお願い致します。
164 名前:nobodyさん mailto:sage [2005/10/27(木) 00:38:09 ID:???] >>163 きついようだけど、レガシASP程度で全然理解できないとなると、、、、 多分、ASPの日本語の参考書って10〜20冊くらいしか出てないから 本屋で好きなのを買った方がいい。
165 名前:nobodyさん mailto:sage [2005/10/27(木) 02:38:55 ID:???] >>160 ありがとうございます。何とかInStrやMidなどを使い数値を抽出することができました 本で正規表現を読みましたが、短期間ではちょっと理解ができませんでした・・・ >>161 もともと別データから抽出したデータ中の必要な数値データを計算するだけなので問題ありません 心配ありがとうございます
166 名前:nobodyさん mailto:sage [2005/10/27(木) 08:01:10 ID:???] >>163 いやでも自作COMコンポーネントをたくさん使ってると 後から予備知識無しだと全然読めないよね…
167 名前:nobodyさん mailto:sage [2005/10/28(金) 22:10:00 ID:???] >>166 自作COMコンポーネントだったら参考書買っても無理だろ
168 名前:nobodyさん mailto:sage [2005/10/30(日) 01:43:33 ID:???] ASPで翻訳サイトなどにあるクリックすると枠内にあるテキストが消えることってできるんでしょうか? ソースを貼り付けて実行しようとしてもエラーが出てしまいます。
169 名前:nobodyさん mailto:sage [2005/10/30(日) 01:47:13 ID:???] >>168 クリックするとテキストボックスが消えるってのはJavaScriptではないのか?
170 名前:nobodyさん mailto:sage [2005/10/30(日) 02:50:12 ID:???] InterDevでASPの勉強してるんですが、 デバックって皆さんどうやってるんでしょうか? ASP.NETみたいにブレークポイント作っても止まってくれませんよね? イベントドリブンじゃあないから当たり前なのでしょうか? 今は、logファイルに変数を出力してやってますが、ほかになにかないんでしょうか?
171 名前:nobodyさん mailto:sage [2005/10/30(日) 03:48:29 ID:???] >>170 Microsoft Script Debugger の最新版でできる。 俺は使わないけど。
172 名前:nobodyさん mailto:sage [2005/10/30(日) 20:29:07 ID:???] アンケート画面をつくりたいのですが、 項目の1つに選択項目が7,8個ありまして、 それを1位から再下位まで順番をつけてもらいたい項目があるのですが、 どんな形で実現すればよろしいでしょうか? アドバイスお願い致します。
173 名前:nobodyさん mailto:sage [2005/10/30(日) 21:16:35 ID:???] >>170 Response.Write "<HR>" & 変数 & "<HR>" Response.flush とかを途中にぶち込むと画面は乱れるが大体どうなってるのか分かる ログファイルに書き出すより、画面の描画の進度と見比べられるので俺は好み。 >>172 Javascriptのテクニックになるのでスレ違いだな
174 名前:nobodyさん mailto:sage [2005/10/30(日) 23:39:29 ID:???] なんか、クライアントサイドとサーバサイドの区別も付かないヤツが多いな。 とりあえずJavaScriptくらい極めればいいのに。 そうすればJScriptでASP組めるし。
175 名前:nobodyさん mailto:sage [2005/10/31(月) 02:33:29 ID:???] >172 テキストフィールドを1つ用意してカンマ区切りで入力してもらえば?
176 名前:nobodyさん mailto:sage [2005/11/01(火) 18:17:13 ID:???] すみませんがスレ違いかもしれませんが教えてください Server2000から2003に移行をしているものです。 IIS5.0では上手くいってなのですがIIS6.0にした途端 Session変数(関数?)がページ間で上手くわたらないのですが なにかIIS6.0の設定が必要なのでしょうか? クッキーもページ間で値渡しができなくてこまっています。 (クッキー自体はもしかしたら登録すらできてなかも・・・。) いろいろ調べたのですが、なかなか出来なくて困っています もしよろしかったら教えてください。 IIS5.0 プロセス分離モード ってやつもやってみましたがダメでした
177 名前:nobodyさん [2005/11/01(火) 18:19:52 ID:olXap06e] >>176 ageときますスミマセン おなじ事をサーバーで行なうと上手くいきます。クライアント側がさっぱりなのです
178 名前:nobodyさん mailto:sage [2005/11/01(火) 20:50:26 ID:???] >>176 クライアントのセキュリティ設定が その2003サーバに対してCookieを拒否するようになってたりせんか
179 名前:nobodyさん mailto:sage [2005/11/01(火) 21:44:58 ID:???] >>176 ローカルだとうまく動くんでしょ? なら >>178 の言うとおりIE側の設定じゃね? 新しいサーバのホストは信頼されてる?
180 名前:176 mailto:sage [2005/11/01(火) 21:44:58 ID:???] >>178 そうかもしれませんが、server2000では何も設定せずにうまくいくのに server2003だとクライアント側を設定しなければならなとなると、導入に問題なのですが・・・。 IISの設定じゃないのですかねぇ??
181 名前:nobodyさん mailto:sage [2005/11/01(火) 21:45:56 ID:???] >>179 ホスト→ホスト名
182 名前:176 mailto:sage [2005/11/01(火) 21:48:44 ID:???] >>181 ホスト名・・・。しらべてみます。うまくいったら報告します。
183 名前:176 mailto:sage [2005/11/01(火) 21:55:48 ID:???] ホスト名 ビンゴ!!。アドレスにコンピューター名を入れていました。 IPアドレスにしたら完璧に動きました。(LAN内ですので) みなさまどうもお騒がせしました。まじ感謝です
184 名前:nobodyさん mailto:sage [2005/11/01(火) 22:40:03 ID:???] お世話になります。 現在、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
187 名前:nobodyさん mailto:sage [2005/11/02(水) 09:07:57 ID:???] >>186 > var objSD; JScriptの場合、これだけでは定義したとはいえない。 この状態で objSD の値は null 兼 undefined
188 名前:nobodyさん mailto:sage [2005/11/02(水) 09:10:34 ID:???] >>184 Response.ContentType を明示的に宣言してる?
189 名前:186 [2005/11/02(水) 09:56:01 ID:8yGkDJEQ] >>187 レスありがとうございます。 自分ではGetSecurityDescriptor()にobjSDを渡せば、 内部でobjSDに対して何某かのインスタンスが生成されて 情報がセットされ戻ってくると思い込んでいたのですが、 それはつまりGetSecurityDescriptor()に渡す前に、 既に何某かの型でインスタンスを生成してobjSDに参照させていないのが 今回の原因ということでしょうか??
190 名前:nobodyさん mailto:sage [2005/11/02(水) 19:01:42 ID:???] >>184 ブラウザのキャッシュを空にしたりすると動きが変わるかも知れない それを差し引いてもAcrobatReaderの設定は揮発するから微妙なところだな んで他のシステムではAcrobatReaderを何に使ってる? 他の同様のシステムではPDFがブラウザでちゃんと表示できてるのであれば >>188 氏の言うとおり、ContentTypeでapplication/pdfを明示的に指定することで うまく行くようになるかも知れないと思われ
191 名前:nobodyさん mailto:sage [2005/11/02(水) 20:33:25 ID:???] >>186 JScriptには参照渡しが無いからそういうメソッドは使えねえべ
192 名前:nobodyさん mailto:sage [2005/11/02(水) 22:59:56 ID:???] >>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 の内容、もしくは今回の代替案に関して こうしたらいいのではないかという意見がありましたら教えていただけないでしょうか?
195 名前:nobodyさん mailto:sage [2005/11/03(木) 11:31:14 ID:???] >現在ではセキュリティの問題上、IEでは使用することが出来ないそうなのです。 その書き出しはサーバ内で行われるものでしょ? IE関係ない。ADODB.Streamで普通に出来る。 >2.pdfには個人情報が含まれているので速やかにファイルの削除をしたいが、 >pdfの読み込み終了を待ってからファイルの削除をすることが出来るのか。 普通に考えると出来ないね。 他の方法を考えた方が良さそうだな。 あとはダメ元でcontent-disposition:attachmentとかを使ってみると 関係無さそうだけどまた状況が変わるかも… つかそれ以前にその状況って、pdf直リンクならちゃんと開けるのか? Content-typeをちゃんと設定してバイナリ吐くんだったら クライアント側に流れるパケットはpdf直リンクとほぼ同じになるはずなのだが? 直リンクでちゃんと開けるのであったら…本気で解決したいなら etherealとかでpdf直リンクの場合とバイナリ出力aspの場合の それぞれのレスポンスヘッダをキャプチャして違いを見てみて、 違いがあったらバイナリ出力aspにヘッダを追加する。 それが一番手っ取り早い。
196 名前:nobodyさん mailto:sage [2005/11/03(木) 11:35:02 ID:???] >>194 AcrobatReader5 のブラウザ内表示は悲惨なんだよ。 「Web表示用に最適化」がONになってるPDFをブラウザ表示させるとページが落丁したりする。 Adobeのサポートページに色んな情報があるから見てきな。
197 名前:nobodyさん mailto:sage [2005/11/03(木) 11:37:29 ID:???] >>193 PDFのブラウザ表示はクライアント側の設定に依存するから サーバ側でどんなにやったって無理なものは無理だよ。
198 名前:186 [2005/11/03(木) 20:35:58 ID:KtvlL72l] >>191 ,192 レスありがとうございます。 そしてJScriptに参照渡しが無いことを始めて知りました...orz 当たり前に存在するものだと...orz するとJScriptではGetSecurityDescriptor(引数)に値する処理は、 行えないのでしょうか? それともまったく別の記述方法でならDACLに値するものを取得することは 可能なのでしょうか?
199 名前:184 mailto:sage [2005/11/06(日) 23:28:23 ID:???] レスが遅くなってしまって申し訳ありませんでした。 皆さん色々なアドバイスどうもありがとうございました。 SEと相談し、結局SEが何かしら対策を考えるから今のまま作っていくことになりました。 色々アドバイスを頂いたのにもかかわらずこんな結果になってしまいましたが、 とりあえずはこのまま作っていきます。 本当にどうもありがとうございました。
200 名前:nobodyさん mailto:sage [2005/11/07(月) 20:19:05 ID:???] >>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ファイルが無いのですが、これって関係ありますか?
202 名前:nobodyさん mailto:sage [2005/11/10(木) 18:10:20 ID:???] 【質問】ASP.NETスレ Part2【議論】 pc8.2ch.net/test/read.cgi/php/1111480331/
203 名前:201 mailto:sage [2005/11/10(木) 19:15:00 ID:???] ありがとう。そっちに逝ってきます
204 名前:668 [2005/11/11(金) 11:39:15 ID:CsKh1TLX] リストボックス内のすべての値をRequest.Formにて取得したいのですが、 現状セレクトされている値しか取得できません。 どうすれば、取得することができるのでしょうか?
205 名前:nobodyさん mailto:sage [2005/11/11(金) 19:54:32 ID:???] >>204 Javascriptのテクニックになるのでスレ違いだが submitする直前にselect のmultiselectをonにして 全optionをselectedにしてからsubmitすればいい。
206 名前:668 [2005/11/13(日) 11:23:37 ID:GnU/8u4f] >>205 ありがとうございます。 やっとできました。
207 名前:nobodyさん mailto:sage [2005/11/17(木) 16:29:44 ID:???] 以下の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にできません。方法ってないですか?
208 名前:nobodyさん mailto:sage [2005/11/17(木) 19:58:09 ID:???] <%@ 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 mailto:sage [2005/11/17(木) 19:58:44 ID:???] 考えられる原因は?
210 名前:nobodyさん mailto:sage [2005/11/17(木) 20:30:17 ID:???] >>209 の書き方がちょっとカチンとくるがヒントを出してやるか >>207-208 ともに ASPのスクリプトがサーバ内でどういう権限で動作するかって所を考えよう >>207 はWMIを使うという選択肢もあるかも。 >>208 は…そのページにアクセスするとサーバでメモ帳を立ち上げたいのか? 意味が分からん。
211 名前:208 mailto:sage [2005/11/17(木) 20:41:09 ID:???] >>210 ありがとうっございます。 サーバ処理の概念がいまいちわかってないかもしれません。 WMIを検索して勉強してみます。
212 名前:208 mailto:sage [2005/11/17(木) 22:32:37 ID:???] うーん。 ASPでCMD処理って敷居高いのかな。。。VBの時はすんなり出来たんだけど。
213 名前:nobodyさん mailto:sage [2005/11/17(木) 23:32:08 ID:???] >>212 敷居が高いの使い方がまちがっている まあ、アクセス権限だな
214 名前:nobodyさん mailto:sage [2005/11/18(金) 00:17:36 ID:???] 最強に強まっていいのなら IWAM_USERをAdministratorsグループにぶち込めば 大抵の事は可能になるが。
215 名前:nobodyさん mailto:sage [2005/11/21(月) 17:03:41 ID:???] どうしても分からないことがありますので、どなたか教えて下さい。 以下の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 = "XXXX@XXX.XXX.XXX" objNewMail.Cc = Request("name");Request("boss") objNewMail.Subject = Request("name") & "さんのご意見" objNewMail.Body = Request("comment") objNewMail.Send Set objNewMail = Nothing %> お願いします。
216 名前:nobodyさん mailto:sage [2005/11/21(月) 17:20:15 ID:???] objNewMail.Cc = Request("name") & "," & Request("boss") やないの?
217 名前:nobodyさん mailto:sage [2005/11/21(月) 17:33:40 ID:???] >>216 あっさり、できました!!!ありがとうございました!! 感謝します!!!
218 名前:nobodyさん mailto:sage [2005/11/24(木) 01:17:36 ID:???] DBからデータを取得して、 Office XP Webコンポーネントを使用して、 2軸のグラフを表示したいのですが、 どこか参考になるサイトありませんか?
219 名前:nobodyさん mailto:sage [2005/11/24(木) 01:31:43 ID:???] >218 [OFF2003] [HOWTO] Office Web コンポーネント (OWC) のプログラミングに役立つ各種情報とサンプル support.microsoft.com/default.aspx?scid=kb;ja;319793
220 名前:nobodyさん mailto:sage [2005/11/24(木) 01:39:55 ID:???] >218 サーバー側のグラフ作成機能を使用してグラフを動的に生成する方法 support.microsoft.com/kb/244049/
221 名前:nobodyさん mailto:sage [2005/11/24(木) 10:31:12 ID:???] あちこち調べてみましたがわからないので教えていただきたく。 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を使用しているのですが、 左側に行数を表示するできないのでしょうか?
223 名前:nobodyさん mailto:sage [2005/11/28(月) 08:01:03 ID:???] 左側?
224 名前:nobodyさん mailto:sage [2005/11/28(月) 23:20:24 ID:???] >>222 行番号を表示ってことでしょ? 使ったこと無いから分からんが。
225 名前:バッカーです ◆KeuXjwWDdE mailto:sage [2005/11/29(火) 01:26:36 ID:???] インターデブ。あれ、何がいいのか未だにワカラン。 とりあえず行番号なら多分なかったと記憶してるよ。
226 名前:nobodyさん mailto:sage [2005/11/29(火) 16:44:32 ID:???] InterDevはサーバ側のVBScriptの部分と クライアント側のJavascriptの部分の両方で キーワード色分けが出来るのは良かった。 あと現在オープン中の全ファイルからの検索&置換。 とか言いつつも結局今はsakura使ってるがw まあ少なくともデザインビューは100%使ってなかったな。
227 名前:nobodyさん mailto:sage [2005/11/29(火) 20:40:46 ID:???] 色分けに関してはPeggyシリーズがとても良い
228 名前:nobodyさん mailto:age [2005/11/30(水) 18:15:34 ID:???] 最近、Perl・PHPからASPをやり始めたんですが、 ASP(VBScript)についてどうしてもわからないことがあります。 フォームからのPOSTデータを Request.Form() で 取得してるんですが、どうやら100KB以上のデータは Form では受け取れないことに気づきました。 100KB以上のデータをPOSTする際には どのように取得するのが一般的なんでしょうか? (例え100K以下のデータを送信する場合でも、100Kの制限がある時点で、Form は使いたくなくなります…) 調べたところ、100K以上のデータを扱う場合には data = Request.BinaryRead(Request.TotalBytes) で取得できるとあったんですが、このデータをどう展開していいのかわかりませんでした…。 すみませんがご教示願います。
229 名前:nobodyさん mailto:sage [2005/11/30(水) 21:26:15 ID:???] まあ普通どんな長文だとしてもブラウザのtextareaに 原稿用紙みっちり埋めて128枚分は書かないからなあ。 あんまり大量のデータだったらファイル添付かな。 Request.BinaryReadで取得したデータはバイト配列なので 基本的にvbscriptではまともには扱えない (まともじゃないやり方が無いわけではないが)。 VBとかCでDLL作って処理する用だね。
230 名前:228 mailto:age [2005/11/30(水) 21:34:55 ID:???] >>229 レス有難うございます。 なるほど、まともに扱えないんですね… 100KB を意識しつつ Request.Form() を使うことにします。 もう一つ不明点が出てきました。 フォームのチェックボックス(name="checkbox")を受け取った場合、 Request.Form("checkbox")(1) などで要素にアクセスできるので 配列かと思い、 IsArray( Request.Form("checkbox") ) をやったところFALSE が返ってきました。 普通の配列は TRUE が返ってくるんですがこれはそういうものなのでしょうか? チェックボックスかどうかを判断する材料が無くて困っています。
231 名前:nobodyさん mailto:sage [2005/11/30(水) 21:36:29 ID:???] >>228 ADO.StreamかBASP21を使って展開するのが常識になってる。 あと、これも忘れずに Windows 2003+IIS6で200KBを超えるファイルがアップロードできない www.hi-ho.ne.jp/babaq/faq.html#F019
232 名前:nobodyさん mailto:sage [2005/11/30(水) 21:37:53 ID:???] >>230 VB配列じゃない
233 名前:nobodyさん mailto:sage [2005/12/01(木) 03:07:58 ID:???] >>230 なんでname="checkbox"なんだよ 適当に分かりやすい名前つければいいじゃんw
234 名前:228 mailto:sage [2005/12/01(木) 12:15:06 ID:???] >>231 別のモジュールで対応するんですね。 Win2003での不具合についても情報ありがとうございます >>232 VB配列なるものが普通の配列って意味でしょうか? となると普通の配列とそうでないものがあるんですね。。 (というかFormは配列じゃなくてただのオブジェクト??) >>233 checkbox だよってのを明示的にわかりやすくしただけです。 テストでやっていたので業務ではこんなことしませんよw
235 名前:nobodyさん mailto:sage [2005/12/01(木) 20:36:09 ID:???] 普通の配列で欲しければ split(Request.Form("checkbox"),", ") とかでそれっぽいの取れなかったっけかな
236 名前:nobodyさん mailto:sage [2005/12/01(木) 20:45:37 ID:???] >>234 Formはオブジェクトですな ちなみに配列についてはVBScript上では Variantの配列とバイナリ配列というのがあります Variantの配列がいわゆる普通の配列で、 バイナリ配列は配列というよりただのバイナリデータの塊。 話の流れだとRequest.BinaryRead(Request.TotalBytes)で取得できるのが後者で、 文字列に近いイメージで、ADO.Stream,MidB,AscB,Hexなどを無理やり使えば ある程度いじることは可能。
237 名前:nobodyさん mailto:sage [2005/12/03(土) 00:00:48 ID:???] >>234 Request とか Session は ASP Built-In Objects だから扱いが別。 Request.Form("checkbox") は IStringList ってオブジェクトだったと思う。 Count で要素数 Item(n) で各要素 (n >= 1) フォームで送られてくるデータは name と value の組の単なるテキストだから checkbox かどうかを判別する方法なんてそもそも存在しないよ。
238 名前:nobodyさん mailto:sage [2005/12/03(土) 01:03:29 ID:???] >>237 Request.Formはコレクションジャマイカ?
239 名前:nobodyさん mailto:sage [2005/12/04(日) 20:53:53 ID:???] Request.Form と Request.Form("checkbox") は違う
240 名前:NT4.0 [2005/12/06(火) 15:14:51 ID:A31iTPx+] 運用してるサーバが、突然、 「HTTP/1.1 新しい Session の作成に失敗しました」というエラーは吐くようになりました 原因わかる方いましたら、お願い致します
241 名前:nobodyさん mailto:sage [2005/12/06(火) 15:18:22 ID:???] メモリ不足? 一回再起動してみたら?
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です
244 名前:nobodyさん mailto:sage [2005/12/06(火) 17:48:36 ID:???] >>242 セッションが新規作成できないくらいに、メモリ使ってるとか? メモリを使って開放してないとか? >>243 そこそこの定義がわからん。 1000行なんてコンマ何秒の処理だろ。
245 名前:243 mailto:sage [2005/12/06(火) 17:50:50 ID:???] >>244 わかりにくくて申し訳ないです。 そこそこ=目標は1日1万ページビューです ちょっと安心しました
246 名前:nobodyさん mailto:sage [2005/12/06(火) 17:51:32 ID:???] >>243 aspx.vbはスレ違いだが… まあソースは短いに越したことは無いが、 1000行程度ならそう長い訳でもないだろう。 ASP.netならなおさらクラス定義やなんやかんやでソース上で行数食うしね。 DBとのやり取りも回数を減らすに越したことは無いが、 大抵はそれより「途中で無駄なデータを発生させない」ように 気をつけておいた方がいい。 たとえば20件ごとに表示するのに、データ全行取り出して 要らない部分を空読みしてスキップ、 というようなことをやるとデータが増えるにしたがってたちまち重くなる。
247 名前:nobodyさん mailto:sage [2005/12/06(火) 19:00:09 ID:???] ソースが短いからといって負荷が軽いとは言えない。
248 名前:nobodyさん mailto:sage [2005/12/06(火) 21:58:25 ID:???] asp.netってコンパイルするんでしょ? じゃぁ1000行なんて余裕でしょ。 多少長くても、定義やセッションの切断とかを明確に書いた方が早いことが多いよ。
249 名前:nobodyさん mailto:sage [2005/12/07(水) 00:47:24 ID:???] >>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 mailto:sage [2005/12/07(水) 11:36:40 ID:???] 解決しますたm(__)m 激しく勘違いを…(((;゚Д゚))) ガクガクブルブル…
252 名前:228 mailto:age [2005/12/07(水) 17:23:06 ID:???] すみません、レス遅れました… >>235 カンマ区切りの文字列を分解して配列にするイメージっすね。 チェックボックスがチェックされていなかったり、 一箇所のみチェックだったりしても split はエラーを返さないんですね >>236 なるほど、やっぱり二種類あるんですね… いまいち二種類を使い分ける方法がよくわかってません。 恐らくその種類によって使えるメソッドも変わるんでしょうね… >>237 checkbox かの判断の意図は、 チェックボックスかがすぐわかれば、それでループかけて どこがチェックされてるか調べることができるのかなと。 (PHPでは連想配列で入ってくれてたので、キーの指定だけで判断できました) みなさんはどうされてるんですかね?? (というか普通はどうするものなんだろう…) 何か簡単なフォームASPのサンプルって転がってないですかねぇ… VBScriptがなかなかなじまない…
253 名前:228 mailto:sage [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
255 名前:nobodyさん mailto:sage [2005/12/07(水) 22:18:10 ID:???] >>228 複数のcheckboxがある場合はASPでは>>235 みたいにするのが普通だと思う。 splitの後にisArrayで配列になったかのチェックをすればいい。 それと、おせっかいだとは思うが Dictionaryは確かに便利だがその使い方は無駄だと思う。 Dictionaryを入れ子にしたりして美しくデータを確保してる余裕があったら さっさとResponse.Writeしていくべき。 基本的にWebプログラムの振る舞いの一般論として 一つのスレッドで大量のメモリを確保するような設計は推奨されない。 それと100KBの壁にずいぶんこだわっているようだが 一体どんな使い方をしようとしているのか? 普通に使っていて一つのinputで100KBに達することは まず無いと思うのだが。 >>254 cn=ユーザ名, を加えればいいんじゃない
256 名前:228=252=253 mailto:sage [2005/12/08(木) 00:07:26 ID:???] >>255 ご指摘ありがとうございます。 Split の後に isArray、参考になります。 PHP,Perl-CGI で書く時は、フォームのチェックボックス名の 連想配列を作って、そのキーがあるかないかで判断していたので ASPでも同じ手法でやろうとしてました。 Dictionary等でデータの格納方法に気を使うよりは 素直にprintしてくって指摘も一理ありですね。。 また、100KB についてですが、確かにファイルアップが無ければ 滅多に超える容量ではないとは思うんですが、100KB の制限が あるものを使うのも設計上どうかと思ってます。 どのようなフォームでも大丈夫なように、制限の無いものがあるのであれば、 あらかじめそれを使いたいってのが本心です。 でも実際のところはどうなのかな?と疑問に思ってました。 別のモジュールが必要だったり、制限があっても気にしないのが ASPとして一般的であれば、それに越したことは無いので。。
257 名前:nobodyさん mailto:sage [2005/12/08(木) 21:04:01 ID:???] BASPのFormメソッド使うやり方だと 100KBの壁を超えられるのかも・・・? バグが無ければだけどナー
258 名前:nobodyさん mailto:sage [2005/12/09(金) 19:40:03 ID:???] ASPのフォームでメールアドレスを入力させるときに ドメインがちゃんと存在するかをチェックしたいと思っています。 VBScriptにMXレコードを見るなどのモジュールは存在しますか?