· 

SQL判定

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です。