トップページ⇒php
1001コメント403KB

==ASP== Part 3

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/07/28 23:07ID:33/XGu54
ASP について語るスレ その3

【過去スレ】
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0598nobodyさん04/10/22 19:34:02ID:4aYaveIP
ユーザーが数値を入力し、
動的な折れ線グラフを出力したいのですが

まずどうしていいのか分からないので
どうぞ一つよろしくお願いします。
0599nobodyさん04/10/22 21:35:58ID:???
>598
まず入力された数値をオウム返しに表示するページを作りんさい。
絵(グラフ)を描くのは適当にコンポーネント探しんさい。
オーバースペックで良ければImageMagickとかあるし。
0600nobodyさん04/10/23 22:42:20ID:???
>>597
http://support.microsoft.com/default.aspx?scid=kb;ja;323750
http://support.microsoft.com/default.aspx?scid=kb;ja;184619
0601nobodyさん04/10/25 03:06:17ID:rJW5BvWS
perlとかだとpath_infoを用いて動的URLを静的に見せることができますが
(たとえば、hoge://hoge.hoge.cgi?aaa=123&bbb=456 → hoge://hoge.hoge.cgi/123/456.html)
同様のことがASPでもできるんでしょうか?
0602nobodyさん04/10/25 03:12:25ID:???
>>601
>>292-293
0603nobodyさん04/10/25 09:17:19ID:lryWe8IG
>>602
さんきゅー。でもリンク先が404_| ̄|○
0604nobodyさん04/10/25 14:38:39ID:???
>>601
ttp://web.archive.org/web/20040224002756/http://program.station.ez-net.jp/products/isapi/URLParamFilter/index.asp
060560204/10/26 00:17:10ID:???
>603
未確認でスマンかった。
↓になってるみたいだね。
ttp://program.station.ez-net.jp/products/isapi/URLParamFilter/v1.1/
0606nobodyさん04/10/26 07:31:22ID:Klv9YMNP
>>604
>>605

わざわざありが�d(・∀・)
0607nobodyさん04/10/26 10:30:57ID:???
ウィンドウの閉じるボタンを使用不可、またはクリックされたイベントを取得し制御したいのですが無理でしょうか?
javaスクリプトで制御できるのかと思ったのですが、ググってみると出来ないという回答しか見つかりませんでした。
お願いします。
0608nobodyさん04/10/26 10:42:13ID:???
>607
ASPでどうこうできる話ではないぞ。
060959704/10/26 12:06:52ID:o98NDTMb
>>600
ありがとうございます。
早速試してみたのですが

-2147463156
ディレクトリのデータ型と、ネイティブ DS のデータ型を相互に変換することはでき
ません
Active Directory

とエラーが出てしまいます。
立て続けで申し訳ないですが、教えてください。
お願いいたします。
0610nobodyさん04/10/27 01:16:53ID:???
Global.asa の Application_OnStartでアプリケーション変数を初期化して、
その後で必要に応じて値を変更してるんだが、
IIS 6.0 でアクティブな ASPセッションが何もない状態
(Abandonしたりタイムアウトして生きてるセッションがなくなった状態)
が続くと、いつの間にかアプリケーション変数が初期値に戻っている。

IIS 5.0 では同じコードでもそういう現象はなかったんだが、
メタベースかどこかの設定を変えてやる必要があるんだろうか。
0611nobodyさん04/10/27 23:37:14ID:???
↑アプリケーションプール DefaultAppPool のプロパティのパフォーマンスタブの
一番上にある、アイドル時間の監視(20分でプロセス終了)をやめたら
解消しますた。
0612nobodyさん04/10/28 22:11:44ID:???
>>607
基本的にはできないけど、銀行とかのログインサイトで使用されているメジャーな方法としては

フレームを使ってフレーム内でページ遷移させるようにする。
フレームのHTMLにonUnloadイベントをつけて、ログアウト処理を行うaspに飛ばす

こうするとブラウザの閉じるボタンを押した場合も、別サイトに飛んだ場合もログアウト処理が走る。

但し流行りのタブブラウザの場合は、閉じるボタンを押すとonUnloadが働かないので注意
0613ASP素人04/11/01 03:30:19ID:sStej03s
'=================================================
'----- DBにデータを追加
'=================================================
Sub UpdateDB()
StrSQL = "insert into member ("
StrSQL = StrSQL & " name "
StrSQL = StrSQL & " mail "
StrSQL = StrSQL & ") values ("
StrSQL = StrSQL & "'" & name & "',"
StrSQL = StrSQL & "'" & mail & "'"
StrSQL = StrSQL & ")"
ObjConn.Execute(StrSQL)    (←この行が違うといわれるのですが・・・)
If Err = 0 Then

End If
End Sub


アドバイスくらはい
0614nobodyさん04/11/01 08:16:11ID:???
>>613
ObjConnはどこで定義してるの?
0615nobodyさん04/11/01 09:29:17ID:???
>StrSQL = StrSQL & " name "
>StrSQL = StrSQL & " mail "
カンマ入れなくて良いの?
0616nobodyさん04/11/01 12:41:32ID:???
>615
そこは列名だからカンマ要らないっしょ。

とりあえず613は「違うと言われる」という内容のエラーメッセージを
表示されたそのまんまコピペしる。でないとわからん。
061761604/11/01 12:42:30ID:???
スマヌ。カンマとクオートを取り違えた。
てことで>615でいけそうですな。
0618ASP素人04/11/01 18:48:33ID:ZGzcf1yo
>>616
エラー タイプ
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO ステートメントの構文エラーです。
/scripts/id.asp, line 176
0619ASP素人04/11/01 18:51:14ID:ZGzcf1yo
>>614サン

DimObjConn,ObjRS

中略

'=================================================
'----- DBに接続
'=================================================
Sub ConnDB()
'スクリプトと同じフォルダにあるAccessのpass.mdbに接続します。
DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("pass.mdb")
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.open DBname
StrSQL = "select * from pass"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn,3,3
End Sub
062061504/11/01 21:51:00ID:???
>619
念のため書くけど,SQLステートメント(この場合はStrSQL内)に間違いがあると,
ObjConn.Execute(StrSQL)の行を実行するときににエラーが出るのよ.
0621nobodyさん04/11/01 22:58:41ID:???
>618
いや、616は、617に書いた通り漏れの勘違いカキコ。
実際貼ってもらったエラーの文言からしても、615の指摘が的を射てるっぽいね。
ってことで、615の修正は試してみた?
0622nobodyさん04/11/02 00:42:10ID:???
>>613
SQL文をそのまま書くのは間違えやすい(特に「'」とか)し、パフォーマンスも若干落ちるので
Recordset出してAddnew()したほうがいいよ。
0623nobodyさん04/11/02 05:50:58ID:XVal7AaO
>>613
116は無視して115の言うとおりカンマ入れろ。

>>622
Response.Write StrSQL するなりしてちゃんとチェックすれば無問題。
むしろRecordSet使うほうがパフォーマンス悪いヨカン。


クエリの実行でエラーになったときのデバッグの基本は
 1.Response.Write StrSQL して目視チェック。
 2.Response.Writeの結果のSQL文をクエリ実行環境(SQL Serverの場合はクエリアナライザ、
   アクセスの場合はクエリ作成→左上のアイコンをプルダウンして「SQL」を選んだ状態)
   でコピペ →実行! →エラー内容を見る
でつ(・∀・)!
0624ASP素人04/11/02 09:18:41ID:WxKWacb6
あの〜申し訳ない・・・。
カンマはどこに入れればよろしいのでしょうか?
0625nobodyさん04/11/02 10:14:58ID:???
insert into member (name mail) values ('ねーむ','めぇる')
insertの構文を見直してみよう。特に列の所。
0626nobodyさん04/11/03 01:07:15ID:???
>ASP素人殿
つーか、ちゃんと基礎からSQLの勉強しようZe!
「お勉強ページ 勝手にリンク まとめサイト」スレより「SQL/DB」関連のリンク
http://program2ch.jugem.cc/?cid=14
0627nobodyさん04/11/03 03:04:22ID:Fscx21N8
高校生の冬休みの宿題か?

・・・ってまだ早いかw
0628OpenTextFile04/11/03 17:34:39ID:pUiAD0wA
WINDOWS XP Pro SP2+IIS5.1の環境で以下のスクリプトtest.aspを
ブラウザ(IE)で実行すると固まった状態になります。
どのようなことが考えられますか?
また、タイムアウトなりおこしてエラーとか出力する方法はないの
でしょうか?

ーーーーーーーーーーーーー以下スクリプトーーーーーーーーーーー
<% LANGUAGE=VBScript
DIM obj
DIM fo
Set obj=Server.CreateObject("Scripting.FileSystemObject")
Set fo=obj.OpenTextFile(Server.Mappath("text1.txt"),1,True)
Response.Write fo.ReadLine
fo.Close
Set fo = Nothing
Set obj = Nothing
%>
0629nobodyさん04/11/03 20:19:59ID:???
>628
とりあえず、4行目のServer.Mappathがちゃんと目的のファイルのパス返してるかどうか、
そっから下のコードをコメントアウトして確認してみては。
あと、それだと一行読んで表示して終わりだけどそれで合ってるの?
ひょっとしてループのコード削ってカキコしてない? だとしたらループの終端条件も
チェックしてみませう。
0630nobodyさん04/11/03 22:24:22ID:???
>>628
InetMgr > 仮想ディレクトリのプロパティ > ディレクトリタブ > アプリケーションの設定欄 > 構成ボタン > デバッグタブ

  デバッグのフラグ: 両方にチェック
  スクリプトのエラーメッセージ: 上を選択

とりあえずこの設定をすればブラウザでエラーを拾える
0631nobodyさん04/11/03 22:25:23ID:???
text1.txtはブラクラではないよな?
0632nobodyさん04/11/04 02:05:45ID:???
>>628
まず、固まった状態とは何がどう固まっているの?
IEが反応しなくなって強制終了するしかなくなるってこと?
それともサーバから何も帰らないってこと?
0633浅倉太介04/11/04 16:55:30ID:???
>>628
ノートンのスクリプト遮断機能をあぼーん汁!
0634nobodyさん04/11/04 17:06:47ID:???
Server側で動いてるのに意味ねージャン。
0635OpenTextFile04/11/04 21:47:26ID:yQwLlWAb
>>629->>634のみなさんありがとうございました。
>>633ので解決しました。
0636nobodyさん04/11/05 03:53:11ID:???
>>634
しっかり勉強してください。
0637nobodyさん04/11/05 16:04:56ID:???
管理者が○月○日に使用できるワンデーパスを発行し、
使用者がパスを入力したときにサーバ側でパスから日付を複合化して
Date()と比較して合ってれば、ある処理をさせるようなスクリプトを考えてます。

MD5のような堅固な暗号じゃなくて構わないので、可逆的な暗号を作成する方法を
説明しているサイトとかあるかな?

今自分で考えているのは、許可する日付8桁に四則演算してやって・・・・
と考えていましたが、どうも上手くまとまらないんだYO

たすけて偉い人
0638nobodyさん04/11/05 21:17:16ID:???
「公開鍵」とかでぐぐってみると色々と
0639nobodyさん04/11/05 21:18:51ID:???
秘密鍵でした。逝ってきます
0640nobodyさん04/11/11 06:15:19ID:TWFMGtp5
ASPでディスプレイの解像度などの情報を取得する事は可能?
0641nobodyさん04/11/11 15:45:27ID:???
JavaScriptで取得すればよくね?
0642nobodyさん04/11/12 19:52:42ID:qd5J7hVz
JScriptでASPを書き始めた初心者です。

テキストファイルに1行ずつ
aaa
bbb
ccc
・
・
・
xxx
yyy
zzz
という文字列の記述があって、
あるaspファイルにアクセスする度に、上記テキストファイルを上から1行ずつ読み込み、
かつ読み込んだ文字列をテキストファイルから削除する動作をさせたいんです。

どなたか教えて下さい。
0643nobodyさん04/11/12 21:41:52ID:???
>642

1. FileSystemObjectの使い方は知っていますか?
2. 何か、自分の使える言語で「テキストファイルに対する一般的な操作」は書けますか?

1. 2. に「はい」と答えられるなら自ずから問題は解決するはずです。
どちらかが「いいえ」なら、書籍、Web、MSDNのヘルプなどで勉強してください。
(今勉強しておけば、この先ASPでファイルを操作するときに困ることは格段に減ります。)
0644nobodyさん04/11/12 22:44:39ID:???
>>642
var fs = Server.CreateObject("Scripting.FileSystemObject");
var FILE = "C:\\test.txt";
with (fs.OpenTextFile(FILE,1)) {
Response.Write(ReadLine());
var wMSG = "";
while (!AtEndOfStream) { wMSG += ReadLine(); }
Close();
}
with (fs.OpenTextFile(FILE,2)) {
Write(wMSG);
Close();
}
0645nobodyさん04/11/13 04:47:00ID:???
asp書くときにエディタは何使ってます?
vbscriptやhtml、javascriptを効果的に見分けられるような
エディタがあるんですかね。
0646nobodyさん04/11/13 06:38:48ID:???
peggyが対応してたんじゃないかな?
俺はサクラエディタ使ってるけど。
0647nobodyさん04/11/13 07:16:18ID:???
ASPで実際はテーブルで表が作ってあるのですが、その中で

■■■:FFFFFF

っていう感じで■3つを色コードFFFFFF(白)で表示ってのを
今は作ってあり、今はFFFFFFを直接書き換えて右端に更新ボタンを作ってあり
更新する事により色コードをチェック後DBを更新して■の色も
更新するように作ってあります。

ASPとはほとんど関係ない事ですが、クライアントから■をクリックしたら
別ウィンドウが開いて色の一覧が出て、選択して閉じるボタンを押すと
選択した色が選ばれているような感じにしてくれと言われたのですが、
ペイントみたいな感じは個人的にさけたいのですが、
見栄え的に何か良い方法、もしくは同じような事をやられた方、見えないでしょうか・・
内容的にはWEB商品の色を選ぶみたいな処理なんですが。

処理的には思い浮かぶのですが、IEで色選択をさせるってのを
画面として作った事がないのであえて質問させてもらいました。
よろしくお願いします。
0648nobodyさん04/11/13 13:27:41ID:???
>>647
JavaScript+DHTMLでできる
064946204/11/13 13:29:20ID:tao/R1VF
>643さん
1…何となくですが、基本的な事ならできると思います。
2…JavaScriptしかできませんが、一般的な操作はできてると思います。
スイマセン、本当始めたばかりで右も左も分かりませんが、色々と勉強中です。
頑張って、軽くて負荷の少ない記述とか、セキュリティーも考慮した記述などができる様になりたいです。

>644さん
具体的な記述、ありがとうございます!
最初のwhileループ内にあるReadLineを、ReadAllに書き換えたら、期待通りの動作をしました。
あと644さんの記述で、withの使い方を覚えました。
本当に助かりました。
065064304/11/13 13:52:14ID:???
コードも示さずに偉そうなことほざいてスマソorz

罪滅ぼしに一つサイト紹介。知ってたらまたまたスマソorz
ttp://www.imasy.or.jp/~hir/hir/tech/js.html
ASPをJScriptで書くときに気を付けた方がよいポイントとかあるのでマジお勧め。
/* ちなみに「TIPS編」は目次準備中とあるが中身はちゃんとあるのでちうい。 */
0651nobodyさん04/11/13 15:55:16ID:tao/R1VF
>643さん
いえいえ。
FSOって基本なのに、かなり上っ面なぞっただけで理解した気になってたんで、改めて教科書を読み直すきっかけになりました。
それにJScript解説のページ、すごく参考になります。
VBScriptはよく分からないので、こういうページはありがたいです。

ところで、また分からない所が出てきてしまいました。
落としてきたVBScriptで書かれたソースの中に、自作でJScriptの記述を入れて、
そのJScriptの記述からVBScriptをファンクションとして呼び出そうとしているのですが、
上手く動作しません。
ちなみにVBScriptの部分は、お金にからむ処理が記述してあるので、その部分をJScriptで書き直せってのは勘弁して下さい(T_T)

今失敗している記述はこんな感じです。

<SCRIPT LANGUAGE="JScript" runat="Server">
var hensu = new String(Request.Form("hensu"));
if(hensu != "undefined"){ FUN()}
</script>

<SCRIPT LANGUAGE="JScript" runat="Server">
function FUN(){
</script>
<%
  response.write("FUNファンクションに入った<p>")
  VBで色々と記述
%>
<SCRIPT LANGUAGE="JScript" runat="Server">
}
</script>

650で教えて頂いたサイトも参考に調べているのですが、今日18時までに、ある程度形にしないと怒られるんです。(休日出勤の為)
申し訳ありませんが、宜しくお願いします。
065264204/11/13 15:57:17ID:tao/R1VF
ごめんなさい。
上の書き込み、642です
0653nobodyさん04/11/13 17:04:15ID:???
>651
<% @LANGUAGE = JScript %>
<!-- 上はページの先頭行(<html>開始タグよりも前)に書くこと -->
必要なHTML部分を記述
<%
// デフォルトスクリプト言語をJScriptにしたので、scriptタグで
// JScriptのコードを囲まなくても、<%〜%>で代用できる
// むしろ、scriptタグで囲んでしまうと、JScriptコードから
// VBScriptのプロシージャを呼べないっぽい
var hensu = new String(Request.Form("hensu"));
if(hensu != "undefined"){ FUN()}
%>

<!-- <SCRIPT LANGUAGE="JScript" runat="Server">
function FUN(){
</script>
<%
↑ではなく、こう↓する-->
<SCRIPT LANGUAGE="VBScript" runat="Server">
Function FUN()
  response.write("FUNファンクションに入った<p>")
  VBで色々と記述
End Function
</script>
<!--
%>
<SCRIPT LANGUAGE="JScript" runat="Server">
}
</script>
-->
0654nobodyさん04/11/13 17:52:27ID:???
<script language="VBScript" runat="Server">
function FUN() {
  Response.Write "FUNファンクションに入った<p>"
  'VBScriptで色々と記述
}
</script>

<script language="JScript" runat="Server">
if ((Request.Form("hensu").Item()) != "") { FUN(); }
</script>
065565404/11/13 17:58:14ID:???
654は>>651へのレスね。

>>651
3行目の FUN() に 「;」 がない
JScriptからVBScriptの関数を呼び出す場合はVBScriptの関数を先に定義しておく必要があったような気がする。

漏れもJScript+レガシASP使い。
ここお勧めだから参考にするといいよ。
http://homepage3.nifty.com/aya_js/wsh/wsh202.htm
http://homepage3.nifty.com/aya_js/wsh/index.htm
0656nobodyさん04/11/15 14:41:40ID:50MlQxDc
>653さん、>654さん
ありがとうございます。
土曜日は、残念ながら上からの指示で、全部VBScriptで書くことになってしまいました。
せっかく具体的な記述を頂いたのに、申し訳ありません。
ただ、僕が基本的にJScriptを使っているので、また教えて頂いた記述を使う機会があると思います。
テキストで保存させて頂きました。

で、今日は今日で、新しい壁にぶつかっているのです…。
formから送られた内容を受け取り、変数に代入したら、1度目はいいのですが、それ以降ブラウザの更新をかけても、変数の内容が空にならないんです。

<% Response.Buffer = true
A = Request.Form("A")
%>
<html><head><title>フォームの練習</title><body>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS">
<FORM action="./renshu_form.asp" method="POST">
    Aを入力して下さい<br>
    <INPUT type="text" name="A" size="30" maxlength="32"><br>
    入力内容が正しければ、サブミットボタンを押して下さい<p>
    <input type="submit">
</FORM>
<%
If A <> "" Then
    Response.Write("ifに入った<br>")
End If
%>

これだと、2回目以降、常に変数Aに前回の値が入っているので、必ずif節に入ってしまいます。
また、更新をかける度に「情報を再送信しないと、ページを更新できません」という警告が出るのですが、以前formを使った記述を書いた時は、こんな警告は出なかったように思うのですが…。

申し訳ありませんが、またご教授お願いします。
0657ASP素人04/11/15 18:41:13ID:wubhQkHV
613です。
みなさんに教えてもらったとおりやってみたのですがだめでした。
カンマ入れたりしても・・・・・・

'=================================================
'----- DBに接続
'=================================================
Sub ConnDB()
'スクリプトと同じフォルダにあるAccessのdb1.mdbに接続します。
'DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
'Server.Mappath("member.mdb")
Set ObjConn = Server.CreateObject("ADODB.Connection")
ObjConn.Mode = 2
ObjConn.open "member" 'DBName
StrSQL = "select * from member"
Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open StrSQL, ObjConn
'Response.Write ObjRS.Fields("name")
'Response.Write ObjRS.Fields("mail")
End Sub

'=================================================
'----- DBにデータを追加
'=================================================
Sub UpdateDB()
ObjRS.AddNew
ObjRS.Fields("name") = name
ObjRS.Fields("mail") = mail
ObjRS.Update
End Sub

で、結局こういう状況です
0658ASP素人04/11/15 18:42:23ID:wubhQkHV
エラーが
現在の Recordset は更新をサポートしていません。
プロバイダか、選択されたロックタイプの限界の可能性があります。

となっていますが、神様、教えてください
0659nobodyさん04/11/15 22:05:55ID:???
>>657
通りすがり、かつASPの事はそれほど詳しくないのだけど…

> ObjRS.Open StrSQL, ObjConn

ロックタイプを指定しない場合、既定では読み取り専用のはずだけど。
Openメソッドの第4引数に適切なロックタイプを設定すればいいのでは?
0660nobodyさん04/11/15 23:12:36ID:???
>657
>ObjConn.open "member" 'DBName
そもそも Conection.Open メソッドに "member" ちうテーブル名だかmdbファイル名だか分からない
ものを渡しているのが気になるのだが。

とりあえず >659 氏の仰るとおり既定のロックタイプは 1(adLockReadOnly) なので、
第四引数に 3(adLockOptimistic) か 2(adLockPessimistic) を指定しよう。

ObjRS.Open StrSQL, ObjConn, ,3

みたいに
0661ASP素人04/11/16 11:27:18ID:Dc5bDdUY
とりあえず早速やってみました。

で先には進んだわけなのですが、

'=================================================
'----- DBにデータを追加
'=================================================
Sub UpdateDB()
ObjRS.AddNew
ObjRS.Fields("name") = name
ObjRS.Fields("mail") = mail
ObjRS.Update      (←ここでエラー)
End Sub


Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。
とでます。
もうすこしみたいなのでよろしくお願いします。

0662nobodyさん04/11/16 11:49:07ID:???
ん? OLEDB-ODBCでAccess MDBにつなぐときって、
そもそも更新可能なレコードセット作れたっけ?

一辺、単純にUPDATE文投げてみそ。
066361504/11/16 13:43:40ID:???
っつぅかASP素人殿、mdbの更新対象テーブルには
主キーが存在しますか?

Accessのテーブルは主キーがないと更新できないらしいです。
066466004/11/16 21:43:12ID:???
>662-663
VBScript で以下の文を実行したらちゃんと走ったから、ODBCのせいでも主キーのせいでもない模様。
ASP は環境作るのめんどいからパス。
時に、objRS とか name ってどこで宣言してるの?まさか局所変数だったりして…
objRS や objConn を別のサブルーチンで Close してたり、 "SELECT FROM 〜" の 〜 を
mdb名と勘違いしてたり、objRS が Applcation 変数だったり…

前提
ADOX で JET4.0 の hoge.mdb を作成し、 ADODB.CONNECTION を刺して
connection.execute メソッドで以下の 2つの SQL 文を投入。
CREATE TABLE hoge( id INTEGER , name TEXT(25) );
INSERT INTO hoge VALUES(2, 'mumumu');

--------------------
set c = createobject("adodb.connection")
set r = createobject("adodb.recordset")
c.mode=2
c.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\hoge.mdb"
r.open "select * from hoge", c,,3
r.addnew
r.fields("id") = 4
r.fields("name") = "mamama"
r.update
c.execute "UPDATE hoge set name='mimimi' where id=2"
c.execute "insert into hoge values(5,'momomo');"
r.close
c.close
set r = nothing
set c = nothing
----------------
0665nobodyさん04/11/16 21:44:53ID:???
>>656
> 更新をかける度に「情報を再送信しないと、ページを更新できません」という警告が出るのですが、
POSTで送っているから。
更新すると Request.Form("A") の内容もまた送られてしまうため、Aが空にならないんだと思う。
0666nobodyさん04/11/16 21:46:40ID:???
>>661
connectionとかって関数またげるんだっけ?
066766004/11/16 21:47:31ID:???
そうだ、あと mdb ファイルとそれの格納フォルダに IUSER_{サーバ名}:C (変更)以上の権限があるかも
確認してみれ。ASPの実行ユーザが変えられていたら、そのユーザが mdb を変更できるか。
0668nobodyさん04/11/16 23:40:33ID:???
>>667
確かその場合はエラーメッセージが分かりやすく表示されるはず
066961504/11/17 15:06:19ID:???
>664
>時に、objRS とか name ってどこで宣言してるの?まさか局所変数だったりして…
漏れももしやとは思ったのだが、エラーメッセージがそれらしく出力されてるから
グローバルになってるのかとおもたのだよ。

ASP素人氏には各変数をどこで定義しているか聞きたい。
0670ASP素人04/11/17 21:41:41ID:87XfvWNx
>>615さん
<%

DimObjConn ,ObjRS

'パラメータを取得します。
name = Request.Form("name")
mail = Request.Form("mail")
act = Request("act")

'デフォルトページを登録画面に設定します。
if act = "" then
act = "ent"
end if



これでしょうか?
一番初めの部分です
0671nobodyさん04/11/18 01:45:44ID:???
> DimObjConn ,ObjRS
  ~~~~~~~
ここにスペースが無いのはコピペミス?
067261504/11/18 09:47:24ID:???
なんとなく原因は>667のような気がしてきたよ。

>670
<% のすぐ下の行に
Option Explicit
を書き込んでみて。未定義の変数が使われるとエラーが表示されるようになるから。
既に記述していたら不要だけど。
現状では変数の有効範囲が曖昧で混乱を招いているからおながいします。
0673ASP素人04/11/18 13:31:45ID:DA9fr5zw
>>671
それはコピペミスでしたすんません。

>>672
やりました。
そしたら
Microsoft VBScript 実行時エラー (0x800A01F4)
この変数は宣言されていません。: 'name'
/boshu.asp, line 6

と・・・・

権限は一応チェックしますた。
067465904/11/18 14:29:47ID:???
>ASP素人氏
可能なら使用している全ての変数を明示的に宣言して。
あとベタだけどAccessのメニューでテーブル[member]に書き込み権限があるか
みてください。
0675nobodyさん04/11/18 16:25:00ID:y/ZLmA11
スレ違いかもしれんが教えください。

ttp://www.geocities.jp/activex_treeview/

↑OS2000 Vbはインストールされていない端末で
ActiveXを使ったツリービューが見れないだよね。
xp や NTでは見ることが出来たんだが・・・?

どの端末もVbが入っていれば見れます。
Vbなしで見る方法ありますか?
Vbランタイムでは×

ASPスレにも書き込むけど、だれか教えて。何が必要なんだ〜??
067661504/11/18 18:24:49ID:???
>673
「この変数は宣言されていません」っていうエラーが消えるまで
変数を定義しる。ついでにその変数は何のために使う変数なのか
コメント入れとけばメンテが楽になるよ。まぁこの変数名なら分かるけど。

それから更新対象のテーブルの定義を書き込んでみて。
フィールド名とかデータ型の一覧。
そしてフィールド名の左隣の列に鍵マークが付いているか。
Accessならテーブル選んでデザインをクリックかなんかすれば見られる。
067761504/11/18 18:30:23ID:???
>675
マルチは感心せぬが。

classidをレジストリから検索したら、ツリービューコントロールは
COMCTL32.OCX
の中に入っているらしいことが判明。

対象PCにコピーしてREGSVR32.EXEで手動登録すれば動くかも。
※OSがどうなっても保証はしません。知りません。独り言です。気合いでGO!
067865904/11/18 21:06:15ID:???
C:\Temp\www\member.mdbに
テーブル member(主キー無し)
カラム name (テキスト型 サイズ:20), mail (テキスト型 サイズ:20) 作成後、
ASP素人氏のコードを借りて IIS5.0 の環境で下記スクリプトを実行してみた。

(フォーム)

<html>
<head>
  <title>Test Form</title>
</head>
<body>
<form action="test.asp" method="post">
  name : <input type="text" name="name" size="20"><br>
  mail : <input type="text" name="mail" size="20"><br>
  <input type="submit" name="submit" value="送信">
</form>
</body>
</html>
067965904/11/18 21:08:46ID:???
(test.asp)

<html>
<head>
  <title>ASP_TEST</title>
  <%
  Dim ObjConn ,ObjRS
  Dim Name, Mail

  Sub ConnDB()
    Set ObjConn = Server.CreateObject("ADODB.Connection")
    ObjConn.Mode = 2 'adModeWrite - 2 adModeReadWrite - 3
    ObjConn.ConnectionString = "Driver={Microsoft Access Driver (*.mdb)};" & _
                      "DBQ=C:\Temp\www\member.mdb"
    ObjConn.Open
    StrSQL = "select * from member"
    Set ObjRS = Server.CreateObject("ADODB.Recordset")
    ObjRS.Open StrSQL, ObjConn,, 3
  End Sub
  Sub UpdateDB()
  ObjRS.AddNew
  ObjRS.Fields("name") = Name
  ObjRS.Fields("mail") = Mail
  ObjRS.Update
  End Sub
  %>
</head>
068065904/11/18 21:09:47ID:???
<body>
  <%
  Name = Request.Form("name")
  Mail = Request.Form("mail")
  Call ConnDB
  Call UpdateDB
  ObjRS.Close
  ObjConn.Close
  Set ObjRS = Nothing
  Set ObjConn = Nothing
  %>
  <h4>テーブルmemberの内容</h4>
  <%
  Call ConnDB
  Response.Write "<table border=" & """1""" & ">"
  Do Until ObjRS.EOF
  Response.Write "<tr><td>"
  Response.Write ObjRS.Fields("name").Value & _
         "</td><td>" & ObjRS.Fields("mail").Value & "</td></tr>"
  ObjRS.MoveNext
  Loop
  Response.Write "</table>"
  ObjRS.Close
  ObjConn.Close
  Set ObjRS = Nothing
  Set ObjConn = Nothing
  %>
</body>
</html>
068165904/11/18 21:14:12ID:???
テーブルの更新・閲覧共に何の問題も無し。
ユーザー権限とかテーブルのアクセス権に問題が無いなら
やっぱり変数のスコープの問題かも。。。
0682ASP素人04/11/19 12:15:43ID:LqCvowdj
>>659さん
一応コピペして一部なおしてやってみたのですが、
エラーでがでました。

ってことはおっしゃるとおり

>ユーザー権限とかテーブルのアクセス権に問題が無いなら
やっぱり変数のスコープの問題かも。。。

ということなんでしょうかね〜。

IIS5でXPproの環境なのですが、
↑のユーザー権限とテーブルのアクセス権について徹底的に教えていただけますか?
068365904/11/19 13:12:52ID:???
>>678-680はインデントを入れる為に全角スペースが入ってる(書き込みの時にタブが無視される)
ので使うなら取り除かないとエラーが出るよ。

>ユーザー権限とテーブルのアクセス権について徹底的に教えていただけますか?

いや、別にそんなに難しい話じゃないのよ('A`)
ユーザー権限については>>660氏が>>667で書いてある事がどうかって事だし、
テーブルのアクセス権は、mdb作成→テーブル作成の間に「ユーザー/グループの権限」
をいじっていなければ問題は無いはずだから(Access2000の話なんでOffice XP以降のバージョンは違うかも)。

気になっていたんだけど、>>670と>>657は両方とも boshu.asp 内にあるのかね?
差し支えなければ boshu.asp のコード全部晒してみ?
それと>>615氏の言っている更新対象のテーブルの定義も。
068467504/11/19 14:30:07ID:???
>>677

どうもありがとうございます。がんがって挑戦してみます。
068567504/11/19 15:32:47ID:???
>>677
駄目ですた。あと何がいるのだろう・・・。
068661504/11/19 16:15:11ID:???
>685
駄目ですたって何が駄目ですたの?
表示されなかったから駄目って書いたのだろうけど、
REGSVR32.EXEでの登録は成功したの?
あと一応登録後、再起動してから試してみた?

っつぅかぶっちゃけ分かんないしスレ違いなので書きたくないのだが(ォ

VisualStudio(6.0)に付いてくるDependency Walkerっつぅツールで
COMCTL32.OCXを覗くと、このファイルが使用している他のファイルのリストが
みられる。
0687nobodyさん04/11/19 16:25:56ID:Dfi0Lnle
掲示板作ってる途中で、ふと気付いたんですけど。

ユーザーAが必要事項を記入してサブミットを押しました。
サーバ内のテキストファイルがopenして、入力内容を書き込んでます。
この時、ユーザーBがサブミットボタンを押したらどうなるのでしょうか?
テキストファイルをcloseする前に、open命令が出る形になるので、マズイような気がします。

もしエラーが出るようなら、解決策、もしくは皆様の対策を教えて下さい。
068865904/11/19 16:46:13ID:???
>>675
参考になるかよーわからんけど
【How to use licensed ActiveX controls in Internet Explorer】
http://support.microsoft.com/default.aspx?scid=kb;en-us;159923
068967504/11/19 16:49:37ID:???
>>685
すみません。
REGSVR32.EXEで登録しました。
レジストリーエディタでID検索したら
hitはしたので登録は大丈夫だと思います。
もちろん再起動もしました。でも表示されませんでした。

Dependency Walkerはこれから使ってみようと思います。

スレ違いなのは承知です。ただどこのスレに書けばいいのだろう・・・。
615氏もう少しお付き合いください。申し訳ない。
069067504/11/19 17:04:39ID:???
>>688
ありがとうございます。頑張ってみます。また結果書きます。
069167504/11/19 17:39:38ID:???
>>688
まじ感動!!出来ました。かなり苦戦いたしましたが表示されるようになりました。
http://support.microsoft.com/kb/159923
ここも参考になりました。615氏もご迷惑をおかけしました。

0692nobodyさん04/11/19 23:09:27ID:???
>687
「ファイル ロック 排他」あたりをキーワードにぐぐってみれ。

具体的にはApplication.LockとUnlockを使うことになるのかな。
0693nobodyさん04/11/20 01:45:28ID:???
>>687

Application.Lock
  ↓
ファイル入出力とか複数ユーザが同時にやるとヤバそうな処理
  ↓
Application.Unlock
0694nobodyさん04/11/20 09:08:44ID:???
Application.LockはApplication変数をロックするだけだよ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpiis/iishelp/iis/htm/asp/vbob84h7.asp

テキストファイルのロック制御はFileSystemObjectが勝手にやってくれてるものだと思ってるんだが…
その辺詳しい人いる?
0695ASP素人04/11/20 10:10:40ID:+ocqxxRz
<%
Option Explicit
DimObjConn,ObjRS

'パラメータを取得します。
name = Request.Form("name")
mail = Request.Form("mail")
act = Request.Form("act")

'デフォルトページを登録画面に設定します。
if act = "" then
act = "ent"
end if

'登録確認画面でエラーチェックをします。
if act = "entconf" then
flg_err = ""
if name = "" then
flg_err = "name"
end if
if mail = "" then
flg_err = "mail"
end if
end if

'エラーがある場合はエラー表示画面に移動させます。
if flg_err <> "" then
act = "err"
end if
0696ASP素人04/11/20 10:11:45ID:+ocqxxRz
'=================================================
'HTML表示処理開始
'=================================================
%>
<% Call ConnDB'DBに接続します。 %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">
<title>メンバー募集フォーム</title>
</head>
<body>
<h2>メンバー募集フォーム</h2>
<%
'-- ページ内容の表示
Select Case act
Case "entconf"'登録確認
Call Gamen_entconf
Case "kan"'処理完了
Call Gamen_kan
Case "err"'エラー
Call Gamen_err
Case else
Call Gamen_ent
end select

%>
</body>
</html>
<%
Call CloseDB

0697ASP素人04/11/20 10:13:41ID:+ocqxxRz
'=================================================
'----- 登録画面
'=================================================
Sub Gamen_ent( )
%>
<form method="POST" action="boshu.asp">
<table border="1">
<tr>
<td>お名前</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>メールアドレス</td>
<td><input type="text" name="mail"></td>
</tr>
</table>
<input type="hidden" name="act" value="entconf">
<input type="Submit" name="sub" value="確認">
<br>
</form>

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