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

==ASP== Part 2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/07/30 19:28ID:FEU9c2CH
ASP について語るスレ その2

前スレはこっち
http://pc.2ch.net/test/read.cgi/php/984840107/
0103nobodyさん02/08/16 15:38ID:???
>>102
テーブル構造がよくわからないが、そっちに問題がありそうな気もする。
0104nobodyさん02/08/16 15:56ID:NVK2StIc
>>102
もっとASPを勉強しましょう。
そうですね。書籍なら5冊くらい読破したらいいでしょう。

よくあるいい本いいサイト教えてくださいの書き込みだけど、そんなもん自分で調べましょう。
そのテクノロジーに精通している人はリファレンスしか見ないし、サイトを調べるんじゃなくってキーワードでこういう機能をって探すからあなたの望み通りのサイトをキープはしていない。
0105nobodyさん02/08/16 17:52ID:???
>>102
ASPも勤怠システムも分からんの?
なぜ自分の力量以上のことをやらなきゃならん羽目に?

ユーザーIDテーブルとの照合は、SQLのJOINを使うか、
ユーザ数が少ないなら、ユーザIDをキーにしたコレクションを使う。

各店ごとの表示のさせ方は、相手が誰か分からんとダメだから、
ログイン画面で認証させてSessionに保持するか、
IPか何かで端末と店舗を結びつけるかだな。
010610502/08/16 17:58ID:???
>>102
MDBだと更新が競合するらしいんで、>>49あたりも読んどけ
Access97なら大丈夫かも。
0107nobodyさん02/08/17 02:38ID:???
>>106
大 丈 夫 な わ け な い
0108nobodyさん02/08/17 14:33ID:lJbNCq+m
>>107
禿同
ASPでACCESS使わないこれ常識
0109あぼーんNGNG
あぼーん
0110nobodyさん02/08/17 15:50ID:???
>>102
普通にユーザー認証させて権限のないユーザーは自分に関連しないデータ以外は
いじれないようにすれば大丈夫。

だけど君の考えているシステムをMDBでやるのば無謀だ。
DB接続が複数重なるとレスポンスが非常に悪くなるぞ。
せめてMSDEくらいはつかったほうがいいんじゃないか?
もしどうしてもMDBを使いたいならdatetime型のフィールドの取り扱いには気をつけたほうがいい。
一般的なSQLとは文法がチト違うから。
0111nobodyさん02/08/17 18:17ID:???
>>109
スレ違い

・・・と、たまにはマジレス。
0112102です02/08/19 13:18ID:jw//q5pz
>105

勉強を兼ねてつくっています

Set DBadb = Server.CreateObject("ADODB.Connection")
DBadb.Open "DSN=kinmu"
Set cmdTemp = Server.CreateObject("ADODB.Command")
cmdTemp.CommandText = "SELECT * FROM 支店名"
Set cmdTemp.ActiveConnection = DBadb
Set RS = cmdTemp.Execute
     
   〜以下略

こんな感じのものを店舗の数だけ用意しないと駄目なので、
一つですませられないかと。

同時更新の問題は置いといて、とりあえず作ってみたいんですが。

画面はログイン画面→メニュー画面→勤怠表となってます。

店ごとの表示は、ユーザーIDテーブルにYES/NO型のメニュー1、メニュー2・・・というフィールド
を作って、その値をもとにメニュー画面で特定の店舗名が表示されるように設定しています。

テーブルは店舗ごとに一つ一つ存在します。

なので、後は店舗ごとのASPファイルを1つにまとめるのと、修正ができるようになればよいのですが。
0113nobodyさん02/08/19 13:48ID:???
>>112
どこから突っ込んでいいか分からないくらい突っ込みどころ満載なんで、とりあえず
基本的な部分を指摘。

1)SQL文は動的生成させろ。
基本中の基本。

2)ASPの前にDBの勉強をしたほうがいいぞ(マジで)
例えば店舗毎にテーブルを用意するなんて事をしてはいけない。
店舗の増減があった場合に対応できないだろ。
ほかにも「ユーザーIDテーブルにYES/NO型のメニュー1、メニュー2・・・
というフィールドとつくって・・・」なんて事もあまりやらない。
よほど特殊なケースを除き、メニュー表示はユーザー権限によりプログラムの
中で判定させるのが普通。

3)ASPの入門書くらい買って読め
すくなくとも実用的なものを作るレベルにはない。
っていうか基礎的な事すらわかっていない。
市販の少し厚めの本を一冊熟読するべし。
011402/08/19 15:06ID:vgyLeW4t
>>112
同時更新問題はおいといてって置いとくな。

そんなもんはDB設計の段階で解消しろ。

といってDBのいろはのいもわかってなさそうだけどな。

ASPをやるんだったら、ASPの本、HTMLの本、DBの本、これくらいは読めれ。
HTMLの本は偽者、悪書が多いから気をつけて。

あとASPなのにAccessでやってみましょうという本も捨てて、それ以外の本をあされ。

Webで質問して何でも解決しようとするやつには、誰も答えてくれないぞ。

あ、答えてしまった。藁
0115nobodyさん02/08/20 16:13ID:???
<%
Dim DBadb   'コネクション
Dim cmdTemp   '更新クエリー
Dim RS   'レコードセット
Dim Siten   '支店名
Dim strSql   'SQLステートメント

'支店名をロード?
Siten = Request.QueryString("siten")

Set DBadb = Server.CreateObject("ADODB.Connection")
DBadb.Open "DSN=kinmu"

'よくわからん
'Set cmdTemp = Server.CreateObject("ADODB.Command")
'cmdTemp.CommandText = "SELECT * FROM 支店名"


'SQL文
strSql = "SELECT * FROM 支店マスタ WHERE 支店名 LIKE '" & Siten & "'"

'レコードセットオープン
Set RS = Server.CreateObject("ADODB.Recordset")
RS.Open strSql, DBadb, 3, 3

(以下略)
%>
0116nobodyさん02/08/20 19:11ID:???
>>115
・支店名じゃなくて支店コードを使え
・ファイルの一番上に
<!-- METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll"-->
 と書いとけばadOpenForwardOnlyと書ける。
011711502/08/20 21:29ID:???
>>116
Thanks!
0118nobodyさん02/08/20 22:08ID:???

>・ファイルの一番上に
><!-- METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll"-->
> と書いとけばadOpenForwardOnlyと書ける。

をを!これははじめて知った。
global.asaに書くのは知ってたけど。
頭の片隅にでも置いておこう。
0119    02/08/20 23:28ID:???
>>118
もしくは
adovbs.incファイルをINCLUDEしとけばいいんちゃうん
0120nobodyさん02/08/20 23:31ID:???
>>119
global.asa使い始める前は、そうやってた。
012111602/08/21 16:11ID:???
あ、プロジェクトとして組む時は、global.asaを使います。
ファイルの先頭に書くのは、テストなどだけです。
0122nobodyさん02/08/23 19:56ID:qA86vTEx
MySQLやPostgreSQLを使っている人いますか?
MDBに比べて、スピードや信頼性などは、どんな感じなんでしょうか?
0123nobodyさん02/08/23 21:36ID:???
>>122
MDBが比較対象なのか?
普通OracleかSQLServerあたり、最低でもMSDE位が比較対象だとおもうんだが・・・

それはともかく、MDBよりは素直にコード書けるし、動作も安定している。
いくつか処理が重なったときなんかに顕著。
スピードに関しては、ベンチマークしたことないから正確な数字はわかんないけど、
体感速度はそこそこ。
一番の不安点はWinなのにわざわざMySQLやPostgreSQLを使うことかな。
0124名無しさん02/08/26 13:50ID:M8HxT9tA
ASPで利用できるテンプレートエンジンってありますか?
0125nobodyさん02/08/26 23:24ID:zqr0Hz/0
ところで「global.asa」って一体何書くファイルなん?
全く意味分からんのだよ。
0126nobodyさん02/08/27 07:07ID:???
global.yoru ってのもあるのよん
012702/08/27 09:31ID:h6QzRhId

>>125
Application_Start
Application_End
Session_Start
Session_End
を書く。

<!--METADATA ~~~~~~~
でCOMへの参照を書く

他のファイルにインクルードさせてConstを書く


このへんが役割だな。


0128nobodyさん02/08/27 10:04ID:???
>>125
ttp://www.microsoft.com/japan/developer/library/jpiis/iishelp/iis/asp/glob63vp.htm
0129優香02/08/27 18:35ID:UTh7HsUo
下の記述の中で『090』を禁止語句にするにはどうしたらいいのでしょう??

elsif ($email !~ /[\w\.\-\&]+\@[\w\.\-\&]+\.[\w\.\-\&]/){&error("メールアドレスが間違っています。");}
0130呼んだ?02/08/27 20:04ID:???
 _γ⌒⌒ヽ
 \\ノハ)ヽ)∩
  (○) ´∀`ノ丿  / ̄ ̄ ̄ ̄
  ⊂二 y /   < マルチですー。
    / _二⊃  \____
 ⊂二ノ
0131nobodyさん02/08/27 21:26ID:8Thk0Bhm
携帯用のホームページを作成中です。
ASPを使って、アクセスしている携帯の種類に応じて
三種類(imode、ezweb、J-Sky)に振り分けたいのですが、
どうしたらよいでしょうか?

調べたところによると、
Request.ServerVariables("HTTP_USER_AGENT")を使えば、
imodeの場合、「DoCoMo/1.0/D502i/c10」などが表示されるようですが、
ezweb、J-Skyの場合は、どのように表示されるでしょうか?

他に良い方法はありますか?
013202/08/28 01:15ID:Uejd6tyq
>>131
各キャリアのHPくらいしらべようよ。

If ( InStr( strUserAgent, "DoCoMo/" ) > 0 ) Then
ElseIf ( InStr( strUserAgent, "J-PHONE/" ) > 0 ) Then
ElseIf ( InStr( strUserAgent, "UP.Browser/" ) > 0 ) Then
ElseIf ( InStr( strUserAgent, "L-mode/" ) > 0 ) Then
ElseIf ( InStr( strUserAgent, "ASTEL/" ) > 0 ) Then

こんな感じ
0133nobodyさん02/08/29 15:28ID:M+/aWaG0
ASPファイル開いたらフォトショップがあがるんだけど何で?
フォルダオプションで関連付けみても、そんなんないんだけど。
0134nobodyさん02/08/29 22:00ID:???
アドビに聞いてみれば?
0135nobodyさん02/08/31 02:40ID:???
>>133
Adobe色分解ファイル、というらしいぜ。
ttp://www.adobe.co.jp/support/techguides/photoshop/cms2/cmyk2.html
0136nobodyさん02/09/04 13:58ID:bwLkbuS8
Session変数を50個くらい使いたいのですが
たとえばActiveXDLLでクラスのプロパティに持たせて
そのActiveXDLLのインスタンスをSession変数1個で管理するのと
Session変数50個用意するのとどちらがよいでしょうか?
0137nobodyさん02/09/04 15:04ID:Bi5lDa+q
>>136
漏れならSession変数に配列をぶち込む。
取り出すときもページの頭でSession変数から普通の変数に代入する。

理由はSession変数を呼ぶ = Sessionクッキーを要求する
ということは遅くなるから。






















それに漏れはActiveXDLLなんて作ったことが無い。
作る必要も今までのところ無かったし。
0138nobodyさん02/09/04 16:14ID:6IRhfmvJ
>>137
なるほど。配列ですか。いいかも。
変数の内容と番号はdefineしておけばよいのですね。
0139nobodyさん02/09/04 16:16ID:???
ASPの文字列処理は糞遅いから、
DLL作れるならロジック部はDLLで作っとけ。
0140nobodyさん02/09/04 16:38ID:IBM+YqLe
>>137
セッション変数に配列を入れてみたのですが、内容の書き換え方法がわかりませんでした。
ご教授お願いできますでしょうか。

dim arr(50)
arr(1) = "yamada"
arr(2) = "tarou"
session("ss") = arr
response.write session("ss").(1) & session("ss").(2)

とした場合、session("ss")(2) = "hanako"のようにできないでしょうか?
014114002/09/04 17:25ID:???
Webで調べたところやりかたはわかりました。

この方法はSession変数をたくさん作るより
パフォーマンスがよいということだと思いますが
この認識でよいでしょうか?
014202/09/04 17:40ID:R5TScvkz
>>137
そんなことないよ。
毎回毎回セッションクッキーを要求するわけはない。

だからわざわざローカル変数に入れてコードを汚くするなら富豪プログラミングで行こうよ。
014313902/09/04 17:51ID:???
変数を意味ごとに分け、それらを操作する関数をくっつけておくという発想はありませんか。
なければいいんです、別に。
0144nobodyさん02/09/04 18:03ID:Bi5lDa+q
>>142
要求するよ。
ネスケでクッキー要求されると警告出るようにしたらひどい目にあった。
確かこんなコード

Do Until rs.EOF
 Response.Write(rs.Fields(0) & Session("何たら")
 rs.MoveNext
Loop

ループの数だけクッキー要求してた。
0145nobodyさん02/09/04 18:15ID:nC9IUfU6

                                              _ _     .'  , .. /■\
                                      ∧  _ - ― = ̄  ̄`:, .∴ '     (    )
                                     , -'' ̄    __――=', ・,‘ r⌒>  _/ /
                                    /   -―  ̄ ̄   ̄"'" .   ’ | y'⌒  ⌒i
    ∧_∧           ∧_∧           /   ノ                 |  /  ノ |
    ( ´ー`)          ( ´ー` )          /  , イ )                 , ー'  /´ヾ_ノ
   /    \         /    \         /   _, \               / ,  ノ 
  .||   ||        .||   ||        |  / \  `、            / / /
  .||   ||        .||   ||        j  /  ヽ  |           / / ,'
   ヽ\ / /         .ヽ\ / /       ./ ノ   {  |          /  /|  |
    \_了_/           \_了_/      / /     | (_         !、_/ /   〉
   (__)(__)          (__)(__)     `、_〉      ー‐‐`            |_/
( ̄ ̄ ̄ ̄ ̄ ̄ ̄)    ( ̄ ̄ ̄ ̄ ̄ ̄ ̄)( ̄ ̄ ̄ ̄ ̄ ̄ ̄)( ̄ ̄ ̄ ̄ ̄ ̄ ̄)
  ̄ ̄ ̄ ̄ ̄ ̄ ̄      ̄ ̄ ̄ ̄ ̄ ̄ ̄   ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄
0146nobodyさん02/09/04 18:20ID:Bi5lDa+q
Respose.Writeのところ括弧が抜けてた...

>>141
For Each tmp In Session("ss")
 Response.Write(tmp)
Next

とするよりも

TmpArr = Session("ss")
For Each tmp In TmpArr
 Response.Write(tmp)
Next

としたほうが速いということ。

IIS4の場合。IIS5では確認してない。多分いっしょだと思うけど。
014714002/09/04 18:32ID:???
>>146
Session変数から取り出すのは極力少なくしたほうがよいのですね。
そのようにしたいと思います。ありがとうございました。
0148nobodyさん02/09/04 19:30ID:KeWU2CF8
>>3\\\\\\\\\\\\\.\\\\\\\\\\\\\\\\\\\\\>>4
014902/09/05 01:37ID:VTyWfKsW
>>144
<%
dim a
for a = 0 TO 10
call Response.Write( Session("何たら") )
next
%>
このソースでリクエストは

GET http://localhost/test.asp HTTP/1.0
Cookie: ASPSESSIONIDQGQGGCBC=AOAPBLBDJDUJKNCCFKKIPCNG

こんな感じで一回しか出てないよ。
0150nobodyさん02/09/05 01:45ID:h3c2Qq4z
>>144
ほぉ。サーバーサイドの処理中に、クライアントに通信しに行くのか?


>>147
DictionaryObjectをセッションにぶちこんだら?
015114402/09/05 22:35ID:TVCOVaEc
>>149
今家にいるから確認できないが、明日会社で仕事してる振りして、試してみるわ。
確かに要求していたはずだし。体感速度もずいぶん上がったんだけどなぁ。

ここまで書いてちょっと思い出した。
たしかSession("rs") = objRecord.GetRow()みたいな事やってたような...

テストしてみた結果はまたここに書き込むわ。
015214402/09/06 14:17ID:7HA1qYL/
再現できなかったYO...

IIS4でも5でも1回しか出ない。
どうもそのときのサーバの調子が悪かったような感じ。スマソ。
確かに出てたんだけど...

でもやっぱりいったんローカル変数に格納したほうが、速かった。
非力なサーバだと結構差が出る。最近のサーバなら大差は無いかもしれないが。
015302/09/06 14:41ID:aGUXJUY2
>>152
いったんローカルに格納したら早くなるのは当然だね。
それは文字解析して、その変数がどこにあるか探さなくてすむから
だからオブジェクトなら
set a = session("b")
でいい。

でもね、レコードセットそのままsessionに入れておくと今度はサーバのメモリに負荷がかかりすぎるよ。

それよりキーだけを持たせておいて再度アクセスするほうがいいと思う。
性能とかのバランスによるけどね。

ただ最新版になるし再度取り直しのほうがいい。


あと、sessionにコネクション置いたりしたらだめよと。
015414002/09/06 15:09ID:???
>>153
自作のオブジェクトだったらよいですよね?
015502/09/06 15:15ID:aGUXJUY2
>>154
いいと思うよ。
ただ簡単に作り直せる内容だったら都度作り直したほうがいい。
でも、自作オブジェクトなら普通に配列をSessionに入れてるのと
原理的に変わらないからいいんじゃない?

ADOやoo4o関連はでかいオブジェクトだからできるだけ避けたほうがいいね。
015614402/09/06 16:00ID:7HA1qYL/
>>153
>いったんローカルに格納したら早くなるのは当然だね。
>それは文字解析して、その変数がどこにあるか探さなくてすむから

まあ当り前ちゃ当り前だわな。
ただ余りに差が大きかったもので。
鯖がへっぽこなのもあるが。

>でもね、レコードセットそのままsessionに入れておくと今度はサーバのメモリに負荷がかかりすぎるよ。
>それよりキーだけを持たせておいて再度アクセスするほうがいいと思う。
>性能とかのバランスによるけどね。
>ただ最新版になるし再度取り直しのほうがいい。

言い訳させてもらうと、このスクリプトは、htmlで表示させた後、必要ならCSVでダウンロードさせる目的
で作ったんだわ。そうすると普通ならテーブルを2回読むことになる。しかも表示したのとまったく同じデータを
ダウンロードさせたい。そんなこんなでわざわざこんなことやってるんだわさ。

そのかわりScript.TimeOutは短め。

>あと、sessionにコネクション置いたりしたらだめよと。

さすがにそれはやらない。


0157nobodyさん02/09/07 01:48ID:WBngM5bY
>>152
っていうか、クッキーの仕組み知ってる?

知ってたら、どんなにサーバーの調子が悪くても、そんなこと、
あり得ないことがわかるハズだが。(つーか、サーバーの調子って(w

別に、必要になってときに、右から左にクッキーとか言うオブジェクトを
投げてるわけじゃないぞ。

しかし、セッション変数の格納にいくらコストがかかると言っても、
1スレッドで体感できるほど重い処理じゃないだろ?いくらなんでも、
情報に影響されすぎじゃないか?

一体、何個のループ回して測ったんだよ。
0158nobodyさん02/09/07 01:58ID:WBngM5bY
>>154
自作は自作でも、もし、VBで作ったActiveX DLLだったら、
こいつにデータを保持して、セッションで使いまわすのは
やめといた方が良い。

詳細は忘れたが、アパートメントスレッドの絡みで、
よろしくないと、MSのサイトで読んだが、MSのサイトは、
もうワケがわからんので、出展も見つからんのだが、
やめとけってことだけは覚えてる。
015914402/09/07 08:53ID:0ep5cIDW
>っていうか、クッキーの仕組み知ってる?

>知ってたら、どんなにサーバーの調子が悪くても、そんなこと、
>あり得ないことがわかるハズだが。(つーか、サーバーの調子って(w

>別に、必要になってときに、右から左にクッキーとか言うオブジェクトを
>投げてるわけじゃないぞ。

わかってるがなぜブラウザから警告が出てきたのが説明がつかない。
あーもう再現できないからどうでもいいや。

たぶん漏れの勘違いだろう。

>しかし、セッション変数の格納にいくらコストがかかると言っても、
>1スレッドで体感できるほど重い処理じゃないだろ?いくらなんでも、
>情報に影響されすぎじゃないか?

>一体、何個のループ回して測ったんだよ。

要求したSession変数は25×550=13768回。
ちなみにサーバのスペックはPenPro200MHz×2、Memory128MB、HDは4G。
ずいぶんかわったそ。

あー一応付け加えておくとPenIII1.13GHzだと全然わかんなかった。
016014002/09/07 11:45ID:???
>>158
Σ(゚Д゚;エーッ!
VBで作ってます。C++で作り直すかー
たいしたことないものだし。でもActiveXDLLなんて作ったことないなー
がんばろう。Variantとかめんどくさそうだなー
0161nobodyさん02/09/07 14:34ID:WBngM5bY
>159
157だが、そういえば、クライアントサイドのスクリプトでダイナミックにクッキーを
発行すればそういう現象も起きるかな?

よくエロサイトとかで、クッキーを何度も聞かれてウザイという状態は
確かに見たことあるが。
0162nobodyさん02/09/07 14:40ID:WBngM5bY
>160
だから、DictionaryObjectに、name,value(variant)でぶちこんで、
セッションで使いまわすのは足りない?

また、ASPでクラスを宣言しておいて、Dictionary経由なり直接セッションに
ぶちこむなり使いまわすのもありだと思う。多分、クラスは使うすべてのASPで
includeしておけば、永続化できると思うんだが、やったことないので、
やってみてって感じであるのだが。

ただ、セッションは参照を保持するだけらしいので、スコープに気をつけて。
016314002/09/07 14:52ID:???
>>162
どうもです。
ActiveXDLL内で普通のDLLを呼んでいるのですが
それに付随する変数群をまとめたクラスにできたら
とてもすっきりします。
0164nobodyさん02/09/07 16:40ID:???
>>162
ASPで作ったクラスをSession変数にぶち込むのはダメみたい。
前スレの222あたりにそんな話が出てる。
0165nobodyさん02/09/07 20:24ID:WBngM5bY

ためしにやってみた。
■クラス記述〜省略
クラス名:test
■オブジェクト生成→セッションに入れるASP (a.asp)
dim testA
set testA = new test
testA.setA=100
set session("Obj") = testA
■セッションから呼び出したいASP (b.asp)
dim testB
set testB = session("Obj")
response.write testB.getA
--------------------------------------
b.aspを呼び出すと、

Microsoft VBScript 実行時エラー (0x800A01B6)
オブジェクトでサポートされていないプロパティまたはメソッドです。: 'getA'
/test/b.asp, line 8

こんなんがデル。

セッションに入れてるのは参照にすぎず、ADOみたいにオブジェクトを
誰かが管理してくれないと、スコープを外れた時点で、ガベージコレクション
でさようなら・・・と。っつーか、セッションが参照してるんだから、消すなよ!

ちなみに、今までやった例では、クラス内のオブジェクトをXMLに
シリアライズして、テキストデータでデータを渡していくということなら
やったことアリ。
もちろん、わざわざ、そこまでする理由があるからやってるという
ことを付け加えておく。
0166nobodyさん02/09/08 16:43ID:???
今時ASPdesuka?
0167.02/09/08 22:32ID:???
>>166
そうそう。今時はaspxだよね。(w
016802/09/09 00:22ID:DVD5p1M9
>>166
>>167
ASPを勉強しておかないとASP.Netで余計わけ分からなくなるぞ。
ASP以上にサーバサイドとクライアントサイドの公開が分かりずらいから。
0169nobodyさん02/09/09 03:14ID:???
>168
段々、HTTPやSMTPなんかの基本的なトコロがわからなくなっていく罠 <ASP.NET

もちろんASPも、perlに比べると、その気が強いわけだが、まだ標準出力を
多少なりとも意識しなきゃいけないだけマシ。

基本的な.NETの設計思想として、WebがわからないVB厨にWebプログラムを
させるためというのがアリそ。と、嘆いても、意味ないんだが。

最近、.NETに行くためもあり、JSP+Servletやってます。

JSP+ServletよりもASP.NETの方が遥かに便利ですが、Servletの
方が圧倒的に仕組みがシンプルなので、WebFormsとか、なんか妙な
フレームワーク覚えるのって、すげー面倒だなぁとか思ったり。
0170nobodyさん02/09/10 15:34ID:FwkPNLnA
アクセスに接続してデータをブラウザで表形式で表示させるんだけど、
別に表示させたくない、でも裏では使いたいって時、
任意のものだけ表示させて、いらないものは表示しないようにするにはどうすればよいですか
0171nobodyさん02/09/10 16:13ID:???
>>170
Response.write "任意なもの"
0172nobodyさん02/09/11 11:30ID:invGZgj9
td align="right" nowrap
%if oRdset.Fields("tai") = "" then% ****
%else% %=oRdset.Fields("tai")% %end if%
/td

データーベースから取り出したやつなんですが、
元テーブルが空白の時「****」が入るようにして、表がくずれないように
したいのですが、(元テーブルはCSVからコンバートしたやつです。)
上と同じ記述で、いくつかの列がありますが、うまくいく部分と行かない部分があります。

また、ブラウザで「****」となっていても、元テーブルの空白に、何か数値を入れて、削除しても表がくずれて表示されてしまします。
0173nobodyさん02/09/11 12:14ID:vrthIJZ5
>>172
なにこれ?
ひょっとして "<" と ">" が抜けてるんか?
0174nobodyさん02/09/11 12:17ID:vrthIJZ5
だとしたら
>%if oRdset.Fields("tai") = "" then% ****

If oRdset.Fields("tai") = "" Or IsNull(oRdset.Fields("tai")) Then
にしてみな。
0175nobodyさん02/09/11 13:11ID:invGZgj9
>174
できました!
ありがとございます ありがとうございます
0176nobodyさん02/09/11 22:56ID:XsAkk46F
home editionでASP動かすことは可能ですか?
0177nobodyさん02/09/11 23:00ID:???
>>176
あいーん
0178nobodyさん02/09/11 23:21ID:???
何か間違えてるな。
017902/09/12 00:15ID:P+5O0cxL
>>176
IISはいってねーよ。
http://support.microsoft.com/default.aspx?scid=kb;ja;JP304197
0180nobodyさん02/09/12 01:20ID:KGvCYzdv
>176
無理だから、とっととProfessionalのアップグレードパッケージを
買ってこい。多分、、流通在庫のみかと思うので。

0181nobodyさん02/09/12 17:19ID:2u4MmH0O
response.write "<input type='hidden' name='syano' & cnt &
"'value='" & rs("id") &"'>"

これをresponse.write を省略した形で書くとどうなりますか?
あと、idのとこはテキスト型にしたいのですが。
0182nobodyさん02/09/12 17:38ID:???
>>18 それエラーになるだろ。勝手に改変して
response.write "<input type='hidden' name='syano" & cnt & "'value='" & rs("id") &"'>"
   ↓
%><input type="hidden" name="syano<%=cnt %>" value="<%=rs("id") %>"><%
018302/09/12 17:40ID:2rngZAKl
>>181
>response.write "<input type='hidden' name='syano' & cnt &
> "'value='" & rs("id") &"'>"
>
> これをresponse.write を省略した形で書くとどうなりますか?

= "a"

> あと、idのとこはテキスト型にしたいのですが。

テキスト型ってなんだよ?
HTMLにはテキストしかない。
ちゃんと文字列とくっつけてるやん。

よくみたらめちゃくちゃおかしいな。

response.write "<input type=""hidden"" name=""syano" & cnt & """ value=""" & rs("id") &""">"

悪いことは言わんシングルクォートは使うな.
それと、属性と属性の間にはスペースを入れろ。
0184nobodyさん02/09/12 17:46ID:???
FieldName = "id"
response.write "<input type=""hidden"" name=""syano" & cnt & """ value=""" & rs(FieldName) &""">"

って事?
018518102/09/12 17:59ID:2u4MmH0O
<%="input type='hidden' name='id'" & cnt & "'value='"
& "rs.Fields("id")" &"'%>

syanoはidの間違いでした。

自分でもやってみたのですがエラーになりました。
rs.Fields("id") ここが雛形と違ってるのがおかしいんでしょうか ドットが入ったりしてて
182さんのを参考にしてやってみます。

cntのとこは1レコードめから番号を振って行くカウンタですが182の記述
でいけるんでしょうか?
0186nobodyさん02/09/12 18:07ID:???
>>185
オジイチャン ゼンゼンチャウヨ...
<input type="hidden" name="id<%= cnt %>" value="<%= rs.Fields("id") %>">
0187nobodyさん02/09/13 17:04ID:sVn34QxR
呼ばれた自分のASPのURLを取得するにはどうしたらよいですか?
018802/09/13 17:05ID:zELOxBC+
>>187
Server.Variables("REMOTE_URL")
だったかな?

Server.Variablesの中にある
0189nobodyさん02/09/13 17:09ID:???
>>188
即レス感謝!!
0190nobodyさん02/09/14 09:46ID:???
Request.ServerVariables、だな。

環境変数の中身を表示するスクリプト。
<%
Option Explicit
Dim tmp
%><html>
<body>
<table border="1">
<%
For Each tmp In Request.ServerVariables
 %><tr>
 <td><% = tmp %></td>
 <td><% = Request.ServerVariables(tmp) %></td>
 </tr><%
Next
%>
</table>
</body>
</html>
0191nobodyさん02/09/18 20:28ID:ZVywQsbI
Chili!Soft ASPはどうですか?
0192nobodyさん02/09/18 23:34ID:tXIxIctN
>191
以前は使えなかったな。
ゴメン、最新の事情は知らないっす。
0193nobodyさん02/09/19 01:13ID:uAgWICSm
>191
comの使えないASPって・・・。

いや、自作とかじゃなくっても、BASP21の使えないASPに
意味があるのか・・・と。
0194nobodyさん02/09/19 14:24ID:TpiYxhP0
<%session("var")="123"%>
この記述で123の部分を

<form>
<input type="text"〜
</form>
の"text"のとこの値をとって格納するにはどう記述すればよいですか?
上記は同一ページ内です。
0195nobodyさん02/09/19 14:43ID:6GoESkM0
>194
自分が認識している前提を他人が知っていると思うのは開発者としてヤヴァイ。
ちゃんと説明をするのが質問をする場合の態度と思ワレ。
質問の「意図」がサパリわからんよ・・・

まさか <% = session.contents("var") = "text" %> という回答を期待しているのではないだろうから (;´Д`)
019619402/09/19 15:09ID:TpiYxhP0
フィールドの入力欄に入力された値からセッション変数を取得したいんですが
0197名無しさん02/09/19 16:11ID:???
>>196
クライアントとサーバの差を学ぶところから出直せ。
019819402/09/19 17:08ID:TpiYxhP0
何で?できないわけ?
ログイン画面とか掲示板書込みと同じようなものじゃないんですか?
ただその値をデーターベースの抽出条件にしたいだけなんですが
0199nobodyさん02/09/19 17:29ID:???
これと
<%session("var")="123"%>
これが
<form>
<input type="text"〜
</form>
別のページなら可能。

でもformからの値をどこに格納させてるのか
俺は知らんのでこれ以上書きようがない。
020002/09/19 18:04ID:ZCQk9ELz
>>196
本読んでる?
1.asp
<form method="post" action="2.asp">
<input type="text" name="id" value="">
</form

2.asp
Session("id") = Request.Form("id")

テクがあれば1ファイルでできる。
ここに書いてあるのは抜粋版だからよく咀嚼して組み込んでくれ。
1.aspに書いてある内容はクライアントで実行されること
2.aspに書いてある内容はサーバだ。
0201nobodyさん02/09/19 18:40ID:elG6VFXD
200
さすが、初心者の俺でもわかた
日本語で言うと
クライアントから入力した値をセッション変数に
入れるということ?
でいいの
0202nobodyさん02/09/19 19:10ID:G6NLmMps
<Input Type=hidden Name=XXX Value=XX> で、次のaspに値を引き渡します。
で、渡された値を Request.Formで受け取ってその値を使ってサーバー側で色々な処理をさせますよね。
その引き渡された後のフォームで、クライアント側でF5キー等で最新の情報に更新したりすると、
ブラウザ上にフォームが1つしかないような時は、引き渡した値を保持してくれているみたいなのですが、
<frame> を使ったりして、ブラウザ上に複数のフォームを表示していたりする場合は引き渡した値が消えてしまいます。
Sessionを使えば値は保持できるのですが、なるべく使いたくないので使わずに値を保持するにはどうしたらいいのでしょうか?

環境は、クライアント側のブラウザはIE5.0以上が混在しています。
サーバ側は、IIS4.0+ASPです。

■ このスレッドは過去ログ倉庫に格納されています