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

レコードを連続して更新できません。   snoopさん [2004/05/18 10:47:02] [4287]
  Re:レコードを連続して更新できません。   YasNet(管理人)さん [2004/05/18 12:29:53] [4289]
    Re:レコードを連続して更新できません。   snoopさん [2004/05/18 13:43:15] [4290]
      Re:レコードを連続して更新できません。   YasNet(管理人)さん [2004/05/18 15:09:47] [4291]

[4287] レコードを連続して更新できません。
投稿者:snoopさん 2004/05/18 10:47:02
こんにちは、snoopと申します。

早速ですが、いまFor文を使って任意の回数分の
update文を実行したいと思っています。
しかし、1回目の更新は実行されるのですが、
それ以降が実行されません。
ソースはおそらくあっていると思うのですが、
何度も試行錯誤してもうまくいかないので
どなたか教えていただけませんか?

・テーブル
holi_Code 日付コード テキスト型 主キー
holi_Date 日付    テキスト型

・ソース
        : 省略
        :
tmp = Split(koshinDay, ",")
resultTmp = Split(result, ",")

'トランザクションの開始
ObjConn.BeginTrans

For i=0 To Ubound(tmp)
If Len(resultTmp(i+1)) <> 8 Then
Err.Number = 1
Exit For
End If
StrSQL = "update HOLIDAY set "
StrSQL = StrSQL & " holi_Date = '" & resultTmp(i+1) & "'"
StrSQL = StrSQL & " where holi_Code = '" & tmp(i) & "'"
ObjConn.Execute(StrSQL)
Next

'トランザクション中にエラーがないかの確認と各処理
'エラーがない場合、コミット処理
If Err.Number = 0 then
        :
        : 省略
        :

よろしくお願いします。

[4289] Re:レコードを連続して更新できません。
投稿者:YasNet(管理人)さん 2004/05/18 12:29:53
こんにちは YasNet(管理人)です。

On Error Resume Next使ってますか?
使っているなら、一度コメントアウトすると
原因が判明するかもしれませんよ。

何度か文面を読み直したのですが
どう更新出来ないのか、どんな状態なのかが不明です。
状態は、2回目が更新できないとありますが・・・

画面上どうなっているのでしょうか・・・
もう少し情報頂けませんかぁ〜

それでは 失礼致します。

> こんにちは、snoopと申します。
>
> 早速ですが、いまFor文を使って任意の回数分の
> update文を実行したいと思っています。
> しかし、1回目の更新は実行されるのですが、
> それ以降が実行されません。
> ソースはおそらくあっていると思うのですが、
> 何度も試行錯誤してもうまくいかないので
> どなたか教えていただけませんか?
>
> ・テーブル
> holi_Code 日付コード テキスト型 主キー
> holi_Date 日付    テキスト型
>
> ・ソース
>         : 省略
>         :
> tmp = Split(koshinDay, ",")
> resultTmp = Split(result, ",")
>
> 'トランザクションの開始
> ObjConn.BeginTrans
>
> For i=0 To Ubound(tmp)
> If Len(resultTmp(i+1)) <> 8 Then
> Err.Number = 1
> Exit For
> End If
> StrSQL = "update HOLIDAY set "
> StrSQL = StrSQL & " holi_Date = '" & resultTmp(i+1) & "'"
> StrSQL = StrSQL & " where holi_Code = '" & tmp(i) & "'"
> ObjConn.Execute(StrSQL)
> Next
>
> 'トランザクション中にエラーがないかの確認と各処理
> 'エラーがない場合、コミット処理
> If Err.Number = 0 then
>         :
>         : 省略
>         :
>
> よろしくお願いします。

[4290] Re:レコードを連続して更新できません。
投稿者:snoopさん 2004/05/18 13:43:15
説明不足ですいません。

> On Error Resume Next使ってますか?
使っていません。

更新したい情報は、
> > ・テーブル(HOLIDAY)
> > holi_Code 日付コード テキスト型 主キー
> > holi_Date 日付    テキスト型
holi_Codeをキーにして該当するレコードを見つけて
holi_Dateの値を変更します
(例)
・tmpには変更するレコードを探すためのholi_Codeの値が入っています(例:41,42,43)
・resultTmpには、新しいholi_Dateの値。(例:04/05/18,04/05/19,04/05/20)
> > tmp = Split(koshinDay, ",") //holi_Code
> > resultTmp = Split(result, ",") //holi_Date(04/05/18)
tmpの値の個数分続ける。(上の例だと3回繰り返す)
> > For i=0 To Ubound(tmp)
> > StrSQL = "update HOLIDAY set "
> > StrSQL = StrSQL & " holi_Date = '" & resultTmp(i+1) & "'"
> > StrSQL = StrSQL & " where holi_Code = '" & tmp(i) & "'"
> > ObjConn.Execute(StrSQL)
> > Next

これを実行すれば、3つのレコードの値を変更できるはずなのですが、
For文においてiが0のとき(1回目)は、SQLが実行されてテーブルの値が変更されるのですが、iが1(2回目)、iが2(3回目)がエラーにはならないのですがテーブルの値が変更されず、1つのレコードにしか変更が反映されません。
処理後の画面は更新完了と表示し、正常に動いています。

このような説明で伝わればいいのですが・・・。
よろしくお願いします

> こんにちは YasNet(管理人)です。
>
> On Error Resume Next使ってますか?
> 使っているなら、一度コメントアウトすると
> 原因が判明するかもしれませんよ。
>
> 何度か文面を読み直したのですが
> どう更新出来ないのか、どんな状態なのかが不明です。
> 状態は、2回目が更新できないとありますが・・・
>
> 画面上どうなっているのでしょうか・・・
> もう少し情報頂けませんかぁ〜
>
> それでは 失礼致します。
>
> > こんにちは、snoopと申します。
> >
> > 早速ですが、いまFor文を使って任意の回数分の
> > update文を実行したいと思っています。
> > しかし、1回目の更新は実行されるのですが、
> > それ以降が実行されません。
> > ソースはおそらくあっていると思うのですが、
> > 何度も試行錯誤してもうまくいかないので
> > どなたか教えていただけませんか?
> >
> > ・テーブル
> > holi_Code 日付コード テキスト型 主キー
> > holi_Date 日付    テキスト型
> >
> > ・ソース
> >         : 省略
> >         :
> > tmp = Split(koshinDay, ",")
> > resultTmp = Split(result, ",")
> >
> > 'トランザクションの開始
> > ObjConn.BeginTrans
> >
> > For i=0 To Ubound(tmp)
> > If Len(resultTmp(i+1)) <> 8 Then
> > Err.Number = 1
> > Exit For
> > End If
> > StrSQL = "update HOLIDAY set "
> > StrSQL = StrSQL & " holi_Date = '" & resultTmp(i+1) & "'"
> > StrSQL = StrSQL & " where holi_Code = '" & tmp(i) & "'"
> > ObjConn.Execute(StrSQL)
> > Next
> >
> > 'トランザクション中にエラーがないかの確認と各処理
> > 'エラーがない場合、コミット処理
> > If Err.Number = 0 then
> >         :
> >         : 省略
> >         :
> >
> > よろしくお願いします。

[4291] Re:レコードを連続して更新できません。
投稿者:YasNet(管理人)さん 2004/05/18 15:09:47
こんにちは YasNet(管理人)です。


う〜ん、聞くだけ聞いてまともな答えが出せずにすみません。

ObjConn.Execute(StrSQL)の変わりに
StrSQLをresponse.write するのが手っ取り早くないですかねぇ〜

SQLが期待値と違うのではないでしょうか・・・

それでは 失礼致します。




TreeBBS For ASP V.0.1.3
Program By YasNet