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

==ASP== Part 2

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

前スレはこっち
http://pc.2ch.net/test/read.cgi/php/984840107/
0049nobodyさん02/08/07 09:13ID:uEpB883R
IIS+ASP+MDBでネット住所録って作る事可能?
不特定多数の人が使用するような住所録。
ためしに2台の社内端末で実験してみたら、処理がかぶる時に
片方は'' は既に使用されているので、使用できませんでした。
とか出て駄目なんですよね。
これってどうにかすれば解決するんですかね?
昨日から色々やってるんですけど、さっぱりで...

環境はWIN2000+IIS5.0+MDB(OLEDB接続)です。
MDBにコネクトは読み書きのMode=3で行ってます。
(Mode=1の読み込み専用?にしたら、もちろんエラーは出なくなりましたが
案の定、データの更新等が行えませんし...)

サーバでのMDBの権限はIUSR_****からフルアクセスにしてます。

ちなみに上記のエラーが出る箇所はMDBにコネクトするとこ
Set conn = Server.CreateObject("ADODB.Connection")
cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\test\test.mdb;Mode=3"
conn.Connectionstring = cs
conn.Open  ←ココです。

もしよろしければ助けてください。
00504702/08/07 09:16ID:SI0fm0YK
>>48
DLL側のメソッドの宣言はどう書いてます?
Variantをやめて型を指定してByValとか書くといいかも。

俺の場合はActive-X DLLを使うときは
DLL側でConnectionを張って
DLLをSession変数で持ちまわすかな。
MSDNにはこういうのは良くないと書いてあったが。
00514702/08/07 09:22ID:SI0fm0YK
>>49
MSDEにしろと言いたいところだが、
不特定多数が使用する場合はライセンス違反かも。
MySqlかPostgreSqlはどうでしょう。
00524902/08/07 09:33ID:uEpB883R
>>51
それはMDBじゃ不可能って事ですか?
MDBじゃ絶対無理!って事なら素直にSQLサーバとかに変更する予定なんですけど
一応、やればできるのか無理なのかを確かめないとなので...

>MySqlかPostgreSqlはどうでしょう。
使った事無いですけど、MDBで駄目な時は勉強してみます。
0053nobodyさん02/08/07 10:07ID:???
>>49
使うユーザーの数によるけど、こまめにDB接続を閉じる事である程度までは回避可能。
具体的には更新時のみMode3でコネクトし、データ表示時はMode1でコネクトする。
データもRecordsetオブジェクトではなく、SQLステートメントを使用して更新する。
ということをやれば同時にデータ更新かけたりしなければ大丈夫。

ただ、この処理をするときはどうしてもMDBじゃなきゃダメなシチュエーションなら
しょうがないけど、予算のからみだけならMSDEを使うほうがいいと思うよ。
MDBはSQL文法がちょっと変なので、へんなとこで悩む事になるかも。
既出のライセンスに関してもDBへの接続はIISがおこなうので、接続ユーザー数は1となり、
問題なかったはず。
00544702/08/07 10:11ID:???
>>52
MDBは使った事ないけど、今テストしてみた。
3台で1万件の住所をぐるぐる表示させてみたけど、特に問題なし。

MdbをAccessで開いちゃってると、一台でも
「Microsoft JET Database Engine (0x80004005)
'' は既に使用されているので、使用できませんでした。」
のエラーが出るけど。
00554902/08/07 10:20ID:uEpB883R
>>53
僕もそれ考えたんですよ。
でもやっぱ結局更新時がかぶると駄目って事で駄目かなあと。
やっぱMDBでは駄目なんですかねえ。

>>54
それってコネクトするモードが読み書きOKでの話ですか?
僕がやったのはモード1(読み込み専用)だと確かにOKなんですけど..
00564702/08/07 10:47ID:???
>>55
ConnectionのMode=3でやってましたが、
RecordsetはReadOnlyでした。
RecordsetをOptimisticなどにして書き込みテストすると
確かに同じエラーが出ますね。
(2台でダメとは、とほほ)

MSDEは動作上は問題ないですが、インターネット上に
公開するようなページで使用しても良いか良く分かりません。
個人の場合は、知りませんでしたごめんなさいで済みますが、
会社としてやるような場合は、よく調べたほうが良いかと思います。
00574902/08/07 10:52ID:uEpB883R
>>56
あれれ、でもMode=3でもOKでしたか。
僕の場合はコネクトの時点でエラーが出るので...
00584702/08/07 11:05ID:???
>>56
エラー自体はConnection.Openの行で出ます。
Mdbを使うなら更新エラーだったら数ミリ秒後にリトライとかの
仕組みを作らなきゃダメっぽいですね。
ODBC経由でもテストしてみましたが、遅くなっただけでした。
00594902/08/07 11:08ID:???
>>58
ああ、なるほど。出ますか。
僕もさっき「どうせ処理が完全にかぶる事なんてないだろうし」
と思って、コネクトする部分をOnErrorでひっかけて
エラー0までLOOPしてコネクトできたらLOOP抜けるとか
作ってみたんですけど..なんか永久ループに(笑)
これはプログラムが悪かったのかな...(:_;)
でもこういう仕組みで問題無いもんなんですかねー
0060nobodyさん02/08/07 12:59ID:???
>>59
Access97のMDBファイルと古いJetでは問題なかったけど、
Jetのバージョン上げたらこのエラーが出まくった記憶がある。
Access2000のMDBにしたら問題は解決できた。

関係ないかも知れんがいちおう。
0061nobodyさん02/08/07 13:32ID:???
どうしても同時接続の必要があるならトランザクション処理をさせないとダメだと思う。

DBをオープンした後に

[オブジェクト名].BeginTrans

を入れ、DBにコネクトした時にエラーが帰ってこなければ

[オブジェクト名].CommitTrans

を入れ、DBにコネクトした時にエラーが帰っきたときは

[オブジェクト名].RollbackTrans

をかければいいのでは?

0062nobodyさん02/08/07 14:08ID:???
>>61
ネタか?
0063工房02/08/08 03:50ID:???
>>61
バカか?
0064nobodyさん02/08/08 08:22ID:???
>>61
SQLステートメントでのDB操作ならそれでも大丈夫だと思うけど、
やってる処理自体は>>59とあんまりかわんないな。

住所録の場合、同時接続問題もそうだけど、一人の人間のデータ
を同時に複数の人間が更新した場合にデータの整合性をどう取る
のかが問題になると思う。
この解決策は・・・だれか知らない?
00653902/08/08 10:31ID:WNdSOKjG
>>40
ありがとうございました!!!
これで何とかなりそうです。
0066ASP客が拒否。仕事がないよー02/08/09 01:04ID:???
キモイ>64の質問くんは放置しませう。
0067nobodyさん02/08/09 09:47ID:???
>>66
特に要望もないのにASPで客に提案するドキュソに仕切られてもな〜
0068  02/08/09 11:43ID:???
>67
ASPをこばかにしているお前は、厨房か?
0069人をムカつかせるのが好きな人02/08/09 14:25ID:???
ASPとHSPてちがうの?
0070nobodyさん02/08/09 14:34ID:???
>>69
同じ。
0071nobodyさん02/08/09 22:33ID:3EG8YomG
ttp://www.panabyc.co.jp/products/asp/CTLGdetail.asp?Syasyu=B-TW87

なんだ?このエラー?
Server.MapPath() エラー 'ASP 0175 : 80004005'
許可されていない Path の文字です
0072nobodyさん02/08/09 22:47ID:???
>>71
「アプリケーションの構成」
→「アプリケーションのオプション」
→「親のパスを有効にする」

検索しろって言ってんだろうがヴォケが!
0073apholist02/08/10 02:17ID:v7Yh7Q4E
>>66
参考までに聞きたいがなんで拒否されたん?
IISだから?
00746602/08/10 03:44ID:83c1YuEg
そういうことだよ。イントラだったらIISでも我慢できるらしいが・・・
ASPぐらいしかできない折れはマジでヤバイ
3社でASP以外だったら・・・こんな話聞いて鬱だよ
設計やるしかないのかな・・・
0075nobodyさん02/08/10 04:14ID:???
煽るつもりはないが、
>イントラだったらIISでも我慢できるらしいが・・・
そりゃそうだよ。IISの評判も気にしなきゃ。
Apache+PHPもできるようにしる!と気休めを言っておく。
0076nobodyさん02/08/10 12:09ID:???
>>74
その程度のこともわからなかった貴方に乾杯です。
つうか普通イントラ以外にWin系を薦める場合はエンドからの要望が
ある場合に限るだろ。

さらに言えばASPは便利だし、それなりに使える言語(?)だけど、
ASPしかできないのはにエンジニアとして問題があるだろ。
オープン系やりたいなら少なくともJAVAくらいはできるようになっとけよ。
00776602/08/10 13:59ID:rIyDMChh
おめーたちの言うとおりだよ
しかし折れクライアントアプリ出身なんでIISの評判がここまで悪いとは知らなかった。
たまたま言われた3社とも過去にIISで嫌な経験があったらしいが
しかしSQL Server同様過去になんかあるのはきついよな
0078apholist02/08/10 15:43ID:v7Yh7Q4E
>>77
今の季節ならちょうど去年のことが
思い出されたのかもね。
0079工房02/08/10 19:18ID:tBiC4GdB
やっぱASPはVBに似ているね
簡単で厨使いが多いけど、主流になれない限定されてた言語だね
0080nobodyさん02/08/10 19:26ID:???
ASPっていう言語があるの?
0081nobodyさん02/08/10 19:28ID:???
無い。
0082apholist02/08/10 21:42ID:v7Yh7Q4E
>>80
CGIと同じぐらいメジャーな言語だけど?w
0083nobodyさん02/08/10 22:01ID:???
言語ではないが?



Active Server Pages

 WWWサーバ側で、JavaScriptやVisualBasic Scriptなどのスクリプト言語や、各種ActiveXコンポーネントを動作させるためのフレームワーク。

 ASPとして記述されたWebページは、まずサーバ側で解釈・実行されるため、参照時の状態によってダイナミックなコンテンツをクライアントに提供することが可能である。

0084nobodyさん02/08/10 22:05ID:???
>>82
CGIも言語ではない。
0085apholist02/08/11 01:32ID:9oLdQXRh
>>84
マジレスされますた。
00868002/08/11 01:37ID:???
つっこみを入れたつもりだけど、つられたのか・・・?
0087apholist02/08/11 02:17ID:9oLdQXRh
>>86
79を見てなかった。誤爆スマソ。
0088工厨02/08/11 03:27ID:6CsMEhty
たくさん釣れますた
0089nobodyさん02/08/11 04:31ID:ZG4CY6/G
自分の無知を隠そうとしなくていいよ。
0090nobodyさん02/08/11 10:27ID:lak1U4b7
>>77
ASP(Windows)+トラブル経験+無知=MSが悪い
オープンソース(Unix) +トラブル経験+無知=自分が悪い

こういう理屈になりがち、MS以外を使っている方が、
世の中に受け入れられやすい。

結構、オープンソースもワケのわからんトラブルやバグに
泣かされるが、あちらは、それが普通なので、なんとなく許される。

人のイメージは怖い、プロの世界にも、こうまでイメージと
いうのが強く影響するのは、ある意味面白すぎ(w
0091     02/08/11 10:48ID:???

IISもアパッチも大して変わらんぞ。
知らないやつが、どッかの記事読んで、IISはだめ〜とか
いってるみたいだけど。

WEBサーバーよりもそれを管理する人間の問題だろ。
ちなみに米国ではIISを使うmedium-smallサイトはごまんと有ります。
で、ASPの仕事もごまんとあります。ただし、CrystalReportとかThird
PartyのSOFTとか他のMS製品とのIntegrationとかを
使いこなせないとだめだけど。

あ、おれ、IBM派です
0092あぼーんNGNG
あぼーん
0093折れはアポ02/08/11 16:40ID:pdbwTgBb
しかしどこで仕入れたかわからんがASP、IISと聞いただけで拒絶する客多いよ
日本人は馬鹿なのか?
0094nobodyさん02/08/11 18:14ID:OYL1VmuY
http://www.kabu.com/feature/system/

ASPマンセーだ、ゴルア!
金融でこの構成はちっとこわいぞ。
0095nobodyさん02/08/11 18:58ID:???
>>94
いかにも人海戦術で構築しましたって感じで怖いな。
0096apholist02/08/11 22:43ID:9oLdQXRh
>>93
その割にパッチあてずにOutlook使ってたりするんだよな。w
0097ミー02/08/12 00:44ID:3wiK7T+j
未だにアウトルック使ってる企業なんてあるんですか?
0098apholist02/08/12 01:12ID:OS+0wvpC
>>97
中小企業はまだ結構多いはず。
逆にOutlook以外なら何が主流なんかな。企業で使うメーラーって。

ASP自体は便利なんだけどねぇ。
すぐ作れるし。Apacheでまだ動かなかったっけ。
0099    02/08/12 02:27ID:???
>>94

ちゃんとTuneUPしてれば大丈夫だとおもうけど。
0100nobodyさん02/08/12 21:31ID:Zy1Vq6v/
切りのいいところで終了だべ
0101apholist02/08/13 00:38ID:dAqzhev3
じゃあ、part3か。早いな。







とかいってみるとか言ってみたかった。
0102nobodyさん02/08/16 15:19ID:WEr2/Fmu
ASPでアクセス97に接続するシステムで、

アクセスには各支店の勤怠表テーブルとユーザーIDテーブルを作成。

ログインしたら、例えばA店の店長ならA店の勤怠が、
B店の店長ならB店の勤怠がブラウザで見れて、かつ勤怠の修正もできるような
ものを構築したいのですが、どこか参考になるサイトや入門書を知っていたら教えてください。

現状は、ODBC経由で勤怠データがブラウザで表示できるようになったのですが、
ユーザーIDテーブルとの照合、各店ごとの表示のさせ方がわからず詰まっている
という状況です。
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
■ このスレッドは過去ログ倉庫に格納されています