==ASP== Part 2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/30 19:28ID:FEU9c2CH前スレはこっち
http://pc.2ch.net/test/read.cgi/php/984840107/
004241
02/08/06 16:33ID:???0043nobodyさん
02/08/06 17:03ID:fA0rzekKIEの5.0です。
004441
02/08/06 17:09ID:???42で結論書いてしまったけど、ブラウザが対応してなければどうあがいてもダメ。
IEの5.5か6ならたぶんいけると思うが、ファイル名に日本語使うのはどうかと。
0045nobodyさん
02/08/06 17:25ID:fA0rzekKそうですか、
ご回答ありがとうございました。
0046nobodyさん
02/08/06 23:24ID:9VVPsSdXCSVを作るActiveX-DllにDllの中でDBに接続するため
ASPで使用しているADOのConnectionを渡してます。
objCsv.func(Session("Database")) ← こんな感じに。
うまくいく場合とレコードセットのオープンで
"引数が間違った型、許容範囲外、または競合しています"
というエラーが出る場合があります。
このやり方はマズイですか?
皆さんはDLLでDBに接続するときはどのように実装されていますか?
0047nobodyさん
02/08/07 03:16ID:???単にCallが抜けてるだけじゃねーの?
うちはSessionで持ちまわさず、ページごとにConnection張りなおしてる。
004846
02/08/07 06:00ID:xPHM9iAMDLLの中でレコードセットをオープンする際に
"引数が間違った型〜"のエラーが出ます。
objRec.open strSql, objCon, adOpenStatic, adLockReadOnly
objConがASPから引数でもらったconnectionです。
同じソースでもDLL内で張りなおしたconnectionを使うと
エラーにはなりません。
DLLをビルドした時のADOのバージョンとIISのADOのバージョンの
違いかなとも思いますが、さっぱり分かりません。
connection張りなおすのが良さそうですね。
0049nobodyさん
02/08/07 09:13ID:uEpB883R不特定多数の人が使用するような住所録。
ためしに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 ←ココです。
もしよろしければ助けてください。
005047
02/08/07 09:16ID:SI0fm0YKDLL側のメソッドの宣言はどう書いてます?
Variantをやめて型を指定してByValとか書くといいかも。
俺の場合はActive-X DLLを使うときは
DLL側でConnectionを張って
DLLをSession変数で持ちまわすかな。
MSDNにはこういうのは良くないと書いてあったが。
005147
02/08/07 09:22ID:SI0fm0YKMSDEにしろと言いたいところだが、
不特定多数が使用する場合はライセンス違反かも。
MySqlかPostgreSqlはどうでしょう。
005249
02/08/07 09:33ID:uEpB883RそれはMDBじゃ不可能って事ですか?
MDBじゃ絶対無理!って事なら素直にSQLサーバとかに変更する予定なんですけど
一応、やればできるのか無理なのかを確かめないとなので...
>MySqlかPostgreSqlはどうでしょう。
使った事無いですけど、MDBで駄目な時は勉強してみます。
0053nobodyさん
02/08/07 10:07ID:???使うユーザーの数によるけど、こまめにDB接続を閉じる事である程度までは回避可能。
具体的には更新時のみMode3でコネクトし、データ表示時はMode1でコネクトする。
データもRecordsetオブジェクトではなく、SQLステートメントを使用して更新する。
ということをやれば同時にデータ更新かけたりしなければ大丈夫。
ただ、この処理をするときはどうしてもMDBじゃなきゃダメなシチュエーションなら
しょうがないけど、予算のからみだけならMSDEを使うほうがいいと思うよ。
MDBはSQL文法がちょっと変なので、へんなとこで悩む事になるかも。
既出のライセンスに関してもDBへの接続はIISがおこなうので、接続ユーザー数は1となり、
問題なかったはず。
005447
02/08/07 10:11ID:???MDBは使った事ないけど、今テストしてみた。
3台で1万件の住所をぐるぐる表示させてみたけど、特に問題なし。
MdbをAccessで開いちゃってると、一台でも
「Microsoft JET Database Engine (0x80004005)
'' は既に使用されているので、使用できませんでした。」
のエラーが出るけど。
005549
02/08/07 10:20ID:uEpB883R僕もそれ考えたんですよ。
でもやっぱ結局更新時がかぶると駄目って事で駄目かなあと。
やっぱMDBでは駄目なんですかねえ。
>>54
それってコネクトするモードが読み書きOKでの話ですか?
僕がやったのはモード1(読み込み専用)だと確かにOKなんですけど..
005647
02/08/07 10:47ID:???ConnectionのMode=3でやってましたが、
RecordsetはReadOnlyでした。
RecordsetをOptimisticなどにして書き込みテストすると
確かに同じエラーが出ますね。
(2台でダメとは、とほほ)
MSDEは動作上は問題ないですが、インターネット上に
公開するようなページで使用しても良いか良く分かりません。
個人の場合は、知りませんでしたごめんなさいで済みますが、
会社としてやるような場合は、よく調べたほうが良いかと思います。
005749
02/08/07 10:52ID:uEpB883Rあれれ、でもMode=3でもOKでしたか。
僕の場合はコネクトの時点でエラーが出るので...
005847
02/08/07 11:05ID:???エラー自体はConnection.Openの行で出ます。
Mdbを使うなら更新エラーだったら数ミリ秒後にリトライとかの
仕組みを作らなきゃダメっぽいですね。
ODBC経由でもテストしてみましたが、遅くなっただけでした。
005949
02/08/07 11:08ID:???ああ、なるほど。出ますか。
僕もさっき「どうせ処理が完全にかぶる事なんてないだろうし」
と思って、コネクトする部分をOnErrorでひっかけて
エラー0までLOOPしてコネクトできたらLOOP抜けるとか
作ってみたんですけど..なんか永久ループに(笑)
これはプログラムが悪かったのかな...(:_;)
でもこういう仕組みで問題無いもんなんですかねー
0060nobodyさん
02/08/07 12:59ID:???Access97のMDBファイルと古いJetでは問題なかったけど、
Jetのバージョン上げたらこのエラーが出まくった記憶がある。
Access2000のMDBにしたら問題は解決できた。
関係ないかも知れんがいちおう。
0061nobodyさん
02/08/07 13:32ID:???DBをオープンした後に
[オブジェクト名].BeginTrans
を入れ、DBにコネクトした時にエラーが帰ってこなければ
[オブジェクト名].CommitTrans
を入れ、DBにコネクトした時にエラーが帰っきたときは
[オブジェクト名].RollbackTrans
をかければいいのでは?
0064nobodyさん
02/08/08 08:22ID:???SQLステートメントでのDB操作ならそれでも大丈夫だと思うけど、
やってる処理自体は>>59とあんまりかわんないな。
住所録の場合、同時接続問題もそうだけど、一人の人間のデータ
を同時に複数の人間が更新した場合にデータの整合性をどう取る
のかが問題になると思う。
この解決策は・・・だれか知らない?
006539
02/08/08 10:31ID:WNdSOKjGありがとうございました!!!
これで何とかなりそうです。
0066ASP客が拒否。仕事がないよー
02/08/09 01:04ID:???0069人をムカつかせるのが好きな人
02/08/09 14:25ID:???0071nobodyさん
02/08/09 22:33ID:3EG8YomGなんだ?このエラー?
Server.MapPath() エラー 'ASP 0175 : 80004005'
許可されていない Path の文字です
0072nobodyさん
02/08/09 22:47ID:???「アプリケーションの構成」
→「アプリケーションのオプション」
→「親のパスを有効にする」
検索しろって言ってんだろうがヴォケが!
0073apholist
02/08/10 02:17ID:v7Yh7Q4E参考までに聞きたいがなんで拒否されたん?
IISだから?
007466
02/08/10 03:44ID:83c1YuEgASPぐらいしかできない折れはマジでヤバイ
3社でASP以外だったら・・・こんな話聞いて鬱だよ
設計やるしかないのかな・・・
0075nobodyさん
02/08/10 04:14ID:???>イントラだったらIISでも我慢できるらしいが・・・
そりゃそうだよ。IISの評判も気にしなきゃ。
Apache+PHPもできるようにしる!と気休めを言っておく。
0076nobodyさん
02/08/10 12:09ID:???その程度のこともわからなかった貴方に乾杯です。
つうか普通イントラ以外にWin系を薦める場合はエンドからの要望が
ある場合に限るだろ。
さらに言えばASPは便利だし、それなりに使える言語(?)だけど、
ASPしかできないのはにエンジニアとして問題があるだろ。
オープン系やりたいなら少なくともJAVAくらいはできるようになっとけよ。
007766
02/08/10 13:59ID:rIyDMChhしかし折れクライアントアプリ出身なんでIISの評判がここまで悪いとは知らなかった。
たまたま言われた3社とも過去にIISで嫌な経験があったらしいが
しかしSQL Server同様過去になんかあるのはきついよな
0078apholist
02/08/10 15:43ID:v7Yh7Q4E今の季節ならちょうど去年のことが
思い出されたのかもね。
0079工房
02/08/10 19:18ID:tBiC4GdB簡単で厨使いが多いけど、主流になれない限定されてた言語だね
0080nobodyさん
02/08/10 19:26ID:???0081nobodyさん
02/08/10 19:28ID:???0082apholist
02/08/10 21:42ID:v7Yh7Q4ECGIと同じぐらいメジャーな言語だけど?w
0083nobodyさん
02/08/10 22:01ID:???Active Server Pages
WWWサーバ側で、JavaScriptやVisualBasic Scriptなどのスクリプト言語や、各種ActiveXコンポーネントを動作させるためのフレームワーク。
ASPとして記述されたWebページは、まずサーバ側で解釈・実行されるため、参照時の状態によってダイナミックなコンテンツをクライアントに提供することが可能である。
0085apholist
02/08/11 01:32ID:9oLdQXRhマジレスされますた。
008680
02/08/11 01:37ID:???0087apholist
02/08/11 02:17ID:9oLdQXRh79を見てなかった。誤爆スマソ。
0088工厨
02/08/11 03:27ID:6CsMEhty0089nobodyさん
02/08/11 04:31ID:ZG4CY6/G0090nobodyさん
02/08/11 10:27ID:lak1U4b7ASP(Windows)+トラブル経験+無知=MSが悪い
オープンソース(Unix) +トラブル経験+無知=自分が悪い
こういう理屈になりがち、MS以外を使っている方が、
世の中に受け入れられやすい。
結構、オープンソースもワケのわからんトラブルやバグに
泣かされるが、あちらは、それが普通なので、なんとなく許される。
人のイメージは怖い、プロの世界にも、こうまでイメージと
いうのが強く影響するのは、ある意味面白すぎ(w
IISもアパッチも大して変わらんぞ。
知らないやつが、どッかの記事読んで、IISはだめ〜とか
いってるみたいだけど。
WEBサーバーよりもそれを管理する人間の問題だろ。
ちなみに米国ではIISを使うmedium-smallサイトはごまんと有ります。
で、ASPの仕事もごまんとあります。ただし、CrystalReportとかThird
PartyのSOFTとか他のMS製品とのIntegrationとかを
使いこなせないとだめだけど。
あ、おれ、IBM派です
0092あぼーん
NGNG0093折れはアポ
02/08/11 16:40ID:pdbwTgBb日本人は馬鹿なのか?
0094nobodyさん
02/08/11 18:14ID:OYL1VmuYASPマンセーだ、ゴルア!
金融でこの構成はちっとこわいぞ。
0096apholist
02/08/11 22:43ID:9oLdQXRhその割にパッチあてずにOutlook使ってたりするんだよな。w
0097ミー
02/08/12 00:44ID:3wiK7T+j0098apholist
02/08/12 01:12ID:OS+0wvpC中小企業はまだ結構多いはず。
逆にOutlook以外なら何が主流なんかな。企業で使うメーラーって。
ASP自体は便利なんだけどねぇ。
すぐ作れるし。Apacheでまだ動かなかったっけ。
ちゃんとTuneUPしてれば大丈夫だとおもうけど。
0100nobodyさん
02/08/12 21:31ID:Zy1Vq6v/0101apholist
02/08/13 00:38ID:dAqzhev3とかいってみるとか言ってみたかった。
0102nobodyさん
02/08/16 15:19ID:WEr2/Fmuアクセスには各支店の勤怠表テーブルとユーザーIDテーブルを作成。
ログインしたら、例えばA店の店長ならA店の勤怠が、
B店の店長ならB店の勤怠がブラウザで見れて、かつ勤怠の修正もできるような
ものを構築したいのですが、どこか参考になるサイトや入門書を知っていたら教えてください。
現状は、ODBC経由で勤怠データがブラウザで表示できるようになったのですが、
ユーザーIDテーブルとの照合、各店ごとの表示のさせ方がわからず詰まっている
という状況です。
0104nobodyさん
02/08/16 15:56ID:NVK2StIcもっとASPを勉強しましょう。
そうですね。書籍なら5冊くらい読破したらいいでしょう。
よくあるいい本いいサイト教えてくださいの書き込みだけど、そんなもん自分で調べましょう。
そのテクノロジーに精通している人はリファレンスしか見ないし、サイトを調べるんじゃなくってキーワードでこういう機能をって探すからあなたの望み通りのサイトをキープはしていない。
0105nobodyさん
02/08/16 17:52ID:???ASPも勤怠システムも分からんの?
なぜ自分の力量以上のことをやらなきゃならん羽目に?
ユーザーIDテーブルとの照合は、SQLのJOINを使うか、
ユーザ数が少ないなら、ユーザIDをキーにしたコレクションを使う。
各店ごとの表示のさせ方は、相手が誰か分からんとダメだから、
ログイン画面で認証させてSessionに保持するか、
IPか何かで端末と店舗を結びつけるかだな。
0108nobodyさん
02/08/17 14:33ID:lJbNCq+m禿同
ASPでACCESS使わないこれ常識
0109あぼーん
NGNG0110nobodyさん
02/08/17 15:50ID:???普通にユーザー認証させて権限のないユーザーは自分に関連しないデータ以外は
いじれないようにすれば大丈夫。
だけど君の考えているシステムをMDBでやるのば無謀だ。
DB接続が複数重なるとレスポンスが非常に悪くなるぞ。
せめてMSDEくらいはつかったほうがいいんじゃないか?
もしどうしてもMDBを使いたいならdatetime型のフィールドの取り扱いには気をつけたほうがいい。
一般的なSQLとは文法がチト違うから。
0112102です
02/08/19 13:18ID:jw//q5pz勉強を兼ねてつくっています
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:???どこから突っ込んでいいか分からないくらい突っ込みどころ満載なんで、とりあえず
基本的な部分を指摘。
1)SQL文は動的生成させろ。
基本中の基本。
2)ASPの前にDBの勉強をしたほうがいいぞ(マジで)
例えば店舗毎にテーブルを用意するなんて事をしてはいけない。
店舗の増減があった場合に対応できないだろ。
ほかにも「ユーザーIDテーブルにYES/NO型のメニュー1、メニュー2・・・
というフィールドとつくって・・・」なんて事もあまりやらない。
よほど特殊なケースを除き、メニュー表示はユーザー権限によりプログラムの
中で判定させるのが普通。
3)ASPの入門書くらい買って読め
すくなくとも実用的なものを作るレベルにはない。
っていうか基礎的な事すらわかっていない。
市販の少し厚めの本を一冊熟読するべし。
0114わ
02/08/19 15:06ID:vgyLeW4t同時更新問題はおいといてって置いとくな。
そんなもんは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:???・支店名じゃなくて支店コードを使え
・ファイルの一番上に
<!-- METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll"-->
と書いとけばadOpenForwardOnlyと書ける。
0118nobodyさん
02/08/20 22:08ID:???>・ファイルの一番上に
><!-- METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll"-->
> と書いとけばadOpenForwardOnlyと書ける。
をを!これははじめて知った。
global.asaに書くのは知ってたけど。
頭の片隅にでも置いておこう。
もしくは
adovbs.incファイルをINCLUDEしとけばいいんちゃうん
0121116
02/08/21 16:11ID:???ファイルの先頭に書くのは、テストなどだけです。
0122nobodyさん
02/08/23 19:56ID:qA86vTExMDBに比べて、スピードや信頼性などは、どんな感じなんでしょうか?
0123nobodyさん
02/08/23 21:36ID:???MDBが比較対象なのか?
普通OracleかSQLServerあたり、最低でもMSDE位が比較対象だとおもうんだが・・・
それはともかく、MDBよりは素直にコード書けるし、動作も安定している。
いくつか処理が重なったときなんかに顕著。
スピードに関しては、ベンチマークしたことないから正確な数字はわかんないけど、
体感速度はそこそこ。
一番の不安点はWinなのにわざわざMySQLやPostgreSQLを使うことかな。
0124名無しさん
02/08/26 13:50ID:M8HxT9tA0125nobodyさん
02/08/26 23:24ID:zqr0Hz/0全く意味分からんのだよ。
0126nobodyさん
02/08/27 07:07ID:???0127わ
02/08/27 09:31ID:h6QzRhId>>125
Application_Start
Application_End
Session_Start
Session_End
を書く。
<!--METADATA ~~~~~~~
でCOMへの参照を書く
他のファイルにインクルードさせてConstを書く
このへんが役割だな。
0128nobodyさん
02/08/27 10:04ID:???ttp://www.microsoft.com/japan/developer/library/jpiis/iishelp/iis/asp/glob63vp.htm
0129優香
02/08/27 18:35ID:UTh7HsUoelsif ($email !~ /[\w\.\-\&]+\@[\w\.\-\&]+\.[\w\.\-\&]/){&error("メールアドレスが間違っています。");}
0130呼んだ?
02/08/27 20:04ID:???\\ノハ)ヽ)∩
(○) ´∀`ノ丿 / ̄ ̄ ̄ ̄
⊂二 y / < マルチですー。
/ _二⊃ \____
⊂二ノ
0131nobodyさん
02/08/27 21:26ID:8Thk0BhmASPを使って、アクセスしている携帯の種類に応じて
三種類(imode、ezweb、J-Sky)に振り分けたいのですが、
どうしたらよいでしょうか?
調べたところによると、
Request.ServerVariables("HTTP_USER_AGENT")を使えば、
imodeの場合、「DoCoMo/1.0/D502i/c10」などが表示されるようですが、
ezweb、J-Skyの場合は、どのように表示されるでしょうか?
他に良い方法はありますか?
0132わ
02/08/28 01:15ID:Uejd6tyq各キャリアの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フォルダオプションで関連付けみても、そんなんないんだけど。
0134nobodyさん
02/08/29 22:00ID:???0135nobodyさん
02/08/31 02:40ID:???Adobe色分解ファイル、というらしいぜ。
ttp://www.adobe.co.jp/support/techguides/photoshop/cms2/cmyk2.html
0136nobodyさん
02/09/04 13:58ID:bwLkbuS8たとえばActiveXDLLでクラスのプロパティに持たせて
そのActiveXDLLのインスタンスをSession変数1個で管理するのと
Session変数50個用意するのとどちらがよいでしょうか?
0137nobodyさん
02/09/04 15:04ID:Bi5lDa+q漏れならSession変数に配列をぶち込む。
取り出すときもページの頭でSession変数から普通の変数に代入する。
理由はSession変数を呼ぶ = Sessionクッキーを要求する
ということは遅くなるから。
それに漏れはActiveXDLLなんて作ったことが無い。
作る必要も今までのところ無かったし。
0138nobodyさん
02/09/04 16:14ID:6IRhfmvJなるほど。配列ですか。いいかも。
変数の内容と番号はdefineしておけばよいのですね。
0139nobodyさん
02/09/04 16:16ID:???DLL作れるならロジック部はDLLで作っとけ。
0140nobodyさん
02/09/04 16:38ID:IBM+YqLeセッション変数に配列を入れてみたのですが、内容の書き換え方法がわかりませんでした。
ご教授お願いできますでしょうか。
dim arr(50)
arr(1) = "yamada"
arr(2) = "tarou"
session("ss") = arr
response.write session("ss").(1) & session("ss").(2)
とした場合、session("ss")(2) = "hanako"のようにできないでしょうか?
0141140
02/09/04 17:25ID:???この方法はSession変数をたくさん作るより
パフォーマンスがよいということだと思いますが
この認識でよいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています