
C++,DAO,MySQLで開発しています。
標記の通りなのですが、更新するレコードセットの値をDBのテーブルと
同じものでUPDATEしようとするとExceptionをスローします。
処理の大まかな流れは以下の通りです。
1. DBオープン (CDaoDatabase Open)
2. テーブルオープン (CDaoRecordset Open)
3. トランザクション開始 (BeginTransaction)
4. レコードセットを移動 (FindFirst 何かしらの条件で)
5. 値を設定 (SetFieldValue)
6. レコード更新 (Update)
7. コミット (CommitTransaction)
5.の時点でDBと同じ値を設定した場合に 6.のステートでExceptionスローします。
(5.でDBと違う値なら最後の処理まで難なく通ります。)
4.の時点で意図しないindexに移動しているわけでもないので、5.での同値か異値かの問題であると思っていますが…
どうすれば回避できるのでしょうか?
ご教授方お願いします。。。。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>補足になりましたでしょうか??
例外が起きている訳ですから、列のデータ型や長さ、重複禁止やNOT NULLなどの制約がどうなっているのか分からないと、適切なアドバイスはできません。
No.1
- 回答日時:
(1)表定義、インデクス定義を示せませんか?
(2)「5.の時点でDBと同じ値を設定した場合
同じ値とは、具体的にどういう値を、どういう値にしたのですか?
(3)「5.でDBと違う値なら最後の処理まで難なく通ります」
違い値とは、具体的にどういう値を、どういう値にしたのですか?
この回答への補足
[table] personal_info
___________________________________
|_userid_|_firstname_|_familyname_|
|_1______|_aaa_______|_AAA________|
|_2______|_bbb_______|_BBB________|<- Recordset
|_3______|_ccc_______|_CCC________|
※useridはマスタです。
上図のようにuserid=2にRecordsetが移動している状態で
下記のような操作をした場合に動作に違いがでます。
○同値の場合にException
SetFieldValue("firstname", "bbb");
Update();
○異値の場合は正常
SetFieldValue("firstname", "ddd");
Update();
補足になりましたでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こちらのテーブルにあってこち...
-
DAOで同値更新するとException発生
-
フラグをたてるってどういうこ...
-
SQLの記述方法
-
検索の効率に付いて
-
GBLtest test?
-
Oracleによるリンクテーブルで...
-
sennaの全文検索のクエリについて
-
件数指定での取得
-
ダブリ数字の有無の確認にのマ...
-
直近データ抽出 VS WHERE文
-
フラグってなんですか??
-
複数選択か?単数選択か? テ...
-
教えてください
-
【SQL】他テーブルに含まれる値...
-
エクセルVBA 10分後にエクセル...
-
既存テーブルにカラム追加でサ...
-
Accessの構成をコピーしたい
-
ファイルメーカー Pro7(W...
-
SQLでTableが作れないlol
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
1つのSQLで2段階の抽出を行い...
-
limit offset はupdate文には使...
-
【SQL】項目に紐づいている情報...
-
2つフィールドを連結して検索す...
-
SQLで、過去で一番大きい日付の...
-
AccessVBAについて テーブルの...
-
条件を複数与えたい
-
ACCESS サブフォームについて
-
SQLでレコード間の値の交換
-
mysqlのindexとprimary keyにつ...
-
複数の値を1レコードに表示した...
-
SQLのinの使い方
-
こちらのテーブルにあってこち...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
おすすめ情報