出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

セッション情報での不具合について   杉本さん [2002/01/11 17:17:36] [1371]
  Re:セッション情報での不具合について   北岳さん [2002/01/11 19:33:29] [1374]
    Re:セッション情報での不具合について   杉本さん [2002/01/12 12:03:09] [1379]
      SQL文中のvbCr   北岳さん [2002/01/12 15:04:07] [1380]
        Re:SQL文中のvbCr   杉本さん [2002/01/13 0:11:03] [1381]
          Re:SQL文中のvbCr   杉本さん [2002/01/17 15:37:07] [1438]
            Re:SQL文中のvbCr   北岳さん [2002/01/17 16:18:45] [1440]

[1371] セッション情報での不具合について
投稿者:杉本さん 2002/01/11 17:17:36
以前同様の質問をさせていただいたのですが
もう一度質問させていただきます

>ASPで作成してシステムの運用していましたが
>氏名で一件検索してUPDATEをするという更新画面なんですが、
>更新処理をしたところデータすべてに更新がかかってしまいました
>Olacleでは問題ないの、たぶんASP関係かなと思います。
>なんでそうなるのかわかりません
>教えてください
>文が下手で申し訳ありませんが
>みなさん知恵をかしてください。
>インターネットサービスマネージャーかな・・・
>なんだろう

推測なんですけど
更新ボタンを押すことによって次の画面でUPDATEしています
もとの画面で更新をしたとき次画面ではRequest.Formをしています
そのときにセッション情報が消えていたら
SQL文を自動に作成しているのがもしかして消えるのかもしれません
SQLは、SELECTUPDATEをしているので
セッション情報が消えていたらなんでしょうか

これらの原因について教えてもらえないでしょうか
セッション情報の情報の保持方法についても教えて下さい。

同じ質問ばかりですみません




[1374] Re:セッション情報での不具合について
投稿者:北岳さん 2002/01/11 19:33:29
前のスクリプトは長くてろくに見なかったのですが、
見返したらSQL文の途中に沢山 vbCrが入っていますね。
これらを全部削除したらどうなるでしょうか。

[1379] Re:セッション情報での不具合について
投稿者:杉本さん 2002/01/12 12:03:09
> 前のスクリプトは長くてろくに見なかったのですが、
> 見返したらSQL文の途中に沢山 vbCrが入っていますね。
> これらを全部削除したらどうなるでしょうか。
ありがとうこざいます

そうですね
ソース表示をするときにわかりやすくしていましたので
一度試してみます。

[1380] SQL文中のvbCr
投稿者:北岳さん 2002/01/12 15:04:07
>一度試してみます。
以下、確認しました。その結果、vbCr削除は、試してもだめなようです。

■予想
SQL文中にvbCrなんか挟んで、それ以降はSQL文として正しく機能しているの?
見掛けはつながった文字列でも、SQL文としてはWHEREの前でぶった切られて、結果的に全件更新。
というコースが予想されますねえ。

■実験計画
UPDATE文では、自分のDBの全レコードが同一内容に変わる、という悲劇が生じる恐れがあります。
んで、SELECT文で確認してみましょう。

■実験内容
<%
set db=Server.CreateObject("ADODB.Connection")
db.Provider="Microsoft.Jet.OLEDB.4.0"
db.mode=3
db.ConnectionString="d:\alias\a.mdb"
db.Open
SQL="SELECT * FROM テーブル" & vbCr & " where title='タイトル'"
response.write "<br>" & SQL
set rs=db.execute(SQL)
do until rs.eof
response.write "<br>" & rs("title") & "--" & rs("nitiji")
rs.MoveNext
loop
rs.close
db.close
%>

■実験結果
SELECT * FROM テーブル where title='タイトル'
タイトル--01/03/26 19:46:12
---
おやまあ、結果は1件のみ抽出。
vbCr以降もSQL文としてDBに認識されました。(意外な感じ。)
 
■結論
SELECT文での実験結果より
SQL文中の WHERE前のvbcrが、今回の「全件同一レコードに更新」の犯人ではないようです。
(ちなみに、UPDATE文 を試す気は、全然起きません。)

[1381] Re:SQL文中のvbCr
投稿者:杉本さん 2002/01/13 0:11:03
ありがとうございます

vbcrは通常改行ですからね
なかなか難しいですね

selectしてupdateを分けたらいいんですかね
そうしたらDBの更新でエラーになるから
全件更新をとめることができるのかも・・・

あとそれと
更新ログをみていると
AさんとBさんが同時に更新していたみたいです
画面の更新が同時だったら
条件が消えるきっかけだったんですかね

いろいろすみません

[1438] Re:SQL文中のvbCr
投稿者:杉本さん 2002/01/17 15:37:07
先ほど間違って記入してしまいました
すみません
ほんとなぜなるのかわかりませんね
もっと簡単にプログラミングしてみたのですが
ほんとうに大丈夫なのかな

[1440] Re:SQL文中のvbCr
投稿者:北岳さん 2002/01/17 16:18:45
通常は正常更新(UPDATE)しており、
まれにWHERE以下が全件合致になるようなことが起きているのでは?
 
(既に行っておられるかも知れませんが)
私ならUPDATEをコメントアウトして、いろんな条件で、
前掲の■実験内容のように、SQL発行文と抽出rs結果の対比ログを比べますがね。



TreeBBS For ASP V.0.1.3
Program By YasNet