3034:コミットまたはロールバックを実行するには、BeginTrans メソッドが適用されている必要があります
- 原因
- データベースの処理中だったが、何らかの原因でプログラムがデータベースを閉じることなくプログラムを終了、その後データベースを正常に変更することが出来なくなった為におこるエラー(トランザクション(未)を コミット もロールバック(未)もしていない)
- 具体例
- OSがフリーズして再起動を余儀なくされた
- 週替わり処理を途中でキャンセルした(キャンセルしたからといって常に出現するわけではない)
- 他
- このエラーが表示される前に表示されたエラーが原因です。
- 表示されていない場合はログ(DBmanLog.dat)を開いて、エラーを確認する。
- DBmanLog.datは、下記のフォルダにあります。
C:\Program Files\Gold Generator
- ログ中の「3034:コミットまたはロールバ…」の直前のエラーが一番怪しいです。
- 下記の出現タイミングのときは 「3167 レコードは削除されています。」が原因でした。そのときのログのコピーです。
----------------<ココカラ>----------------
- 02890 06/11/11 21:19:34 [DBman(regMainJRDB)] データ読込完了[C:\Program Files\Gold Generator\dwn\TYB061111.lzh]
- 02891 06/11/11 21:19:34 [DBman(frmMnt/regDataDir)] データ登録完了[TYB061111.lzh]
02892 06/11/11 21:20:28 [DBman/DAO.Field(DAO_Ins)] (3167) レコードは削除されています。 - 02893 06/11/11 21:20:28 [DBman(DataIdo)]
- 02894 06/11/11 21:20:30 [DBman/DAO.Workspace(DataIdo)] (3034)コミットまたはロールバックを実行するには、BeginTrans メソッドを使用してください。
- 02895 06/11/11 21:20:45 [DBman/DAO.Workspace(cmdWeekChange_Click)] (3034) コミットまたはロールバックを実行するには、BeginTrans メソッドを使用してください
----------------<ココマデ>----------------
- 出現タイミング
- DBManで週替わり処理を実行した後
- 今週データに新規に登録した後
- 他
- 対処
- データベースが壊れています。最適化で修正可能な場合がほとんどと思われますが、修正できなかった場合バックアップを復元(未)してください。