出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
![]() ![]() ![]() ![]() ![]() |
[5759] Re:無題 |
投稿者:暇人さん 2006/04/17 11:35:21 |
どうにかしたい気持ちはとっても良くわかるのですが ループがおかしい場合、真っ先に疑うべき部分はループカウンター を弄くってる部分なわけでして xに値を代入している部分やiの値を変更している部分があるならば 載せてくれないと答えようが無いかと思います > はじめまして。 > 現在Windows2000、SQLServer2000でプログラムを組んでいるものです。 > DBのテーブルに存在チェックを行い、 > レコードの有無によって同テーブルにUpdate,Insert処理を > x回実行したいのですが > (DBにある数値データをカウントアップする為、 > Update,Insertのデータは全部異なります)、 > 途中でエラーが発生して一度ループを抜けた後、 > 再度続きからループ処理を実行した場合、 > ループ数以上の回数でInsert,Update処理が走っています。 > (6回ループを回しているのに、DB処理が1000回実行されています) > DB処理をコメントにしてループを確認しましたが、 > 正常にループしている為、一体どこでDB処理が異常回数走っているのか判断できません。 > 申し訳ありませんが、 > この書込みに目の止まった方で、何か原因を思い当たる方は、 > 教えて頂けませんでしょうか。 > > どうぞ宜しくお願い致します。 > > --------------------------------------------------------------- > Set conn = ----- > > For i=0 To x > conn.BeginTrans > > Set rs1 = Server.CreateObject("ADODB.Recordset") > > '*********** ここより以下はFunction関数として別ファイルに記述 ************ > strSQL = "select * from T_Test1 ----" > rs1.Open strSQL , conn, adOpenDynamic, adLockReadOnly, adCmdText > If Not rs1.EOF Then > '---値の取得 --- > rs1.Close > Sql2 = "Update T_Test1 set ---" > conn.Execute(Sql2) > Else > rs1.Close > Sql2 = "Insert into T_Test1 ---" > conn.Execute(Sql2) > End If > > strSQL = "select * from T_Test2 ----" > rs1.Open strSQL , conn, adOpenDynamic, adLockReadOnly, adCmdText > > If Not rs1.EOF Then > '---値の取得 --- > Else > Sql3 = "Insert into T_Test2 ---" > conn.Execute(Sql3) > End If > > '********************** ここまで ****************************************** > > If (Err.Number = 0) Then > conn.CommitTrans > Else > conn.RollbackTrans > Exit For > End If > > Next > --------------------------------------------------------------- |
![]() ![]() |
![]() ![]() |
TreeBBS For ASP V.0.1.3 |