DataBaseテーブル書込みSQL判定は重要!!
四つのSQL文判定は、覚えなくてもデータベース書込み後に必ず入れておきましたょう。
insert、update、select、delete文
また、失敗した時のエラー内容の表示。
これは何がエラーの原因か手掛かりになります。
それと失敗した時は元に戻すRollback も忘れずに。
コピペで使ってください。
-----------------
1.INSERT
-----------------
String w_SQLErrText
IF SQLCA.SQLCode <> 0 THEN
//レコード追加エラー
w_SQLErrText = SQLCA.SQLErrText
Rollback using SQLCA;
Messagebox("("+ parent.classname() + ")" + st_title.text, "XXXXXXテーブル追加エラー:" + w_SQLErrtext, StopSign!)
Return 0
END IF
//挿入正常処理
COMMIT Using SQLCA;
MessageBox("登録(insert)","登録完了しました。")
-----------------
2.SELECT
-----------------
String w_SQLErrText
IF SQLCA.SQLCode = 100 THEN
MessageBox("データの照会(select)", "該当データが見つかりません。")
Return 0
ELSEIF SQLCA.SQLCode <> 0 then
w_SQLErrText = SQLCA.SQLErrText
Messagebox("("+ parent.classname() + ")" + st_title.text, "データベース エラー:" + w_SQLErrtext, StopSign!)
Return 0
END IF
//結果表示処理
-----------------
3.UPDATE
-----------------
String w_SQLErrText
IF SQLCA.SQLNRows = 0 THEN
//レコード更新エラー
w_SQLErrText = SQLCA.SQLErrText
Rollback using SQLCA;
Messagebox("("+ parent.classname() + ")" + st_title.text, "テーブル更新(update)エラー:" + w_SQLErrtext, StopSign!)
Return 0
END IF
//更新正常処理
COMMIT Using SQLCA;
MessageBox("更新(update情報)","更新(update)完了しました。")
-----------------
4.DELETE
-----------------
String w_SQLErrText
IF SQLCA.SQLNRows = 0 THEN
//レコード削除エラー
w_SQLErrText = SQLCA.SQLErrText
Rollback using SQLCA;
Messagebox("("+ parent.classname() + ")" + st_title.text, "削除エラー(delete):" + w_SQLErrtext, StopSign!)
Return 0
END IF
//削除正常処理
COMMIT Using SQLCA;
MessageBox("削除(delete)情報","(delete)削除完了しました。")
※st_title.text は、何のプログラムWindowなのかヘッダタイトルです。有った方が良いと思います。
※w_SQLErrtext は、SQLエラー発生時の原因を取得したワークAREAです。