掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ApplyUpdatesができない (ID:14382)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
同じ項目名が多いというこっとは、データーバースの設計ができていないことになります。どちらの項目が正しいか判らなくなります。もう一度設計し直しましょう。 データがたかだか2000件でおかしくなることはありません。これは、EDit〜Postがきちんとしていない影響が考えられます。 編集するコードが見あたりません。これでは変更できていないはずです。 一番簡単なのは、選択するTQueryと更新するTQueryを別にする方法もあります。 このまま使うなら、 > begin > DMSyaken.SyakenMainQuery1.Edit; > if DMSyaken.SyakenMainQuery1.FieldByName('Memo03').Text <> '' then > with DMSyaken.SyakenMainQuery1 do > begin > S3 := DMSyaken.SyakenMainQuery1.Fields[14].Text; > S5 := DMSyaken.SyakenMainQuery1.Fields[50].Text; > S4 := StringReplace(S3,S1,S2,[rfReplaceAll]); > S3 := S4; > S5 := S4; > DMSyaken.SyakenMainQuery1.Post; > DMSyaken.SyakenMainQuery1.Next; > end > else > DMSyaken.SyakenMainQuery1.Next; > end; でEditした後は、必ずPostかCancelをしましょう。そのままNextしてはいけません。また、編集したS4をS3,S5に返していますが、レコードには一切適用していません。これではレコードは変更していません。項目を番号で扱っていますが、名前で扱った方がソースの解読性がよくなります。 with DMSyaken.SyakenMainQuery1 do while not Eof do begin if FieldByName('Memo03').asString <> '' then begin Edit; //ここで編集状態にする。 S3 := Fields[14].asString; S3 := Fields[50].asString; S4 := StringReplace(S3,S1,S2,[rfReplaceAll]); Fields[14].asString := S4; //編集した文字列を項目に設定する Fields[50].asString := S4; Post; //ポストする end; Next; end; //この後ApplyUpdatesする
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.