CLOSE

みなさん、こんにちは!

このブログは、「PowerBuilder ってなに?」「PowerBuilder って何ができるの?」という疑問に、IT 用語の解説もしつつ、簡単に分かりやすくお答えすることをモットーにしています。
気になる方はぜひ続きを見てみてくださいね。

登場キャラクター紹介

ねこぴ
PowerBuilder レクチャーのキャラクター。
(猫に見えるが)PowerBuilder の先生。
ゆる~く楽しく!がモットー。

ちまき
PowerBuilder をこれから学びたい開発初心者。
ITの知識はちょっとあるようなないようなレベル。

動画でも PowerBuilder について学習できます!

YouTube では、この PowerBuilder 入門シリーズの動画版を公開しています!

動画版では、実際の PowerBuilder の画面操作をしているところを確認しながら進められるので、より理解力が深まります。
あわせてぜひご視聴ください!

入門シリーズ再生リストはこちらから!

動画を見ていると知らない国の料理がたーくさんあるにゃ。
アゼルバイジャンの大きいパリパリのパンはめっちゃおいしいそうにゃ。

アゼルバイジャンの大きいパリパリパン・・・!!
食べてみたいです!

じゃあねこぴ様が自らの腕を振るうときがやってきたかにゃ!
流行に乗って買ってしまい結局使っていない電化製品がやっと活躍するときかにゃ・・・!?(あるあるにゃ)

じゃ、まずはその買いすぎた電化製品の片づけからお願いしますね。
前回はデータウィンドウ内の行削除の回でしたよね!

そうだにゃ。
今回はいよいよ入力したデータを「更新」するにはどういったコードが必要か見ていくにゃ。
(片づけはしたくないにゃ。)

前回のブログでは「データウィンドウ内の行削除」について解説していきました。
今回はカラムへのデータ入力とそのデータを「更新」ボタンでテーブルに更新する方法について説明していきます。
ですがこれだけですと、以前ご紹介した更新についての記事と変わらなくなってしまうので・・・
入力したデータに対してエラーチェックをして、問題がなければデータベースに更新するという方法を解説していく伏線として今回はご覧ください(^◇^)

PowerBuilder 入門をまずはおさらい!

PowerBuilder って何なの?と思ったあなた!
PowerBuilder 入門シリーズの第 1 弾ブログをぜひご覧ください(^◇^)

更新のチェックって?

復習です。いま住所録には 60 件分の個人データが登録されています。
前回は様々なメソッドを使用してデータウィンドウに追加した新規行を削除しました。

では前々回と前回とはがらりと変わり、データウィンドウに追加したデータに対して確認用のメッセージボックスが出るようにするには、どういったコードを書くのか見ていきましょう(`・ω・´)ゞ

たとえばエラーチェックだと、「住所は全角で入力してください」や、「数字のみが入力可能です」などのメッセージボックスが表示されることがありますよね。
データ入力のチェック時にそのようなメッセージボックスが表示できたらもっとアプリっぽいかなーって思いますよね。

今回は、まずは更新ボタンを押した後、更新が上手くできた場合とできなかった場合、どのようにコードを書くか見ていきます。

「w_adr_app」のウィンドウオブジェクトを開き、「更新」のコマンドボタンを右クリックでスクリプトを開きます。

スクリプトビューが表示されるのでコードを記述していきます。
これは・・・
データを入力後、「更新」ボタンを押すと「入力したデータを登録しますか?」というメッセージボックスを表示させるコードになります。
同様のアプリを作成したい場合は、画面と同じコードを記述してみてください。

さて、コードの解説に移りましょう。
まずいつもの通り、「/*登録処理*/」というのはコメントでしたね。
次に integer 型の変数を宣言します。
これは後に出てくる Update メソッドの戻り値を受け取るためですね。

そして・・・今日のハイライト\(^o^)/(もう出てくんのかい)
「//登録確認」の部分です!まずは以下のコードですね。

IF messageBox (“登録”, “入力した情報を登録しますか?”, Question!, YesNo!,2) = 1 THEN
li_ret = dw_list.Update() ;

これは以前も出てきた MessageBox 関数でしたね!
つまりこのコードは、「登録」というタイトルにクエスチョンマークのアイコンと「入力したデータを登録しますか?」というメッセージが表示されているウィンドウで、ボタンの選択肢として「はい」と「いいえ」があるという意味です。

このようなメッセージボックスが表示されます。
このメッセージボックスに対して 「はい」 (内部的には 1 が付与されているボタン。
ちなみに「いいえ」は 2 という番号が付与されている)が押された場合、li_ret = dw_list.Update() が発動するという意味ですね。

Update メソッドに関しては、「更新」を分かりやすく解説しまくりましたページがあるので、なんだっけという方はこちらをご参考に(^^)
まあ言ってしまうとですね笑
dw_1 というデータウィンドウに入力された情報をデータベースに更新するという意味になります。
ここまでは分かりやすい!

でも更新に失敗したらどうしよう…

それな!という感じですけども(`・ω・´)
そのためにはエラーチェックのコードを用意する必要がありますね!それが以下の部分です。

ここで構文のコーディングする場合の規約を解説をしますね。
まず基本的な制御構造は以下となります。

基本ルール
①変数はスクリプトの先頭で宣言する(途中宣言は不可)
②変数の型は先頭のみ大文字とする(String、Long など)
③共通処理は関数化または共通イベント化を検討する

上記のルールを守った上で、構文は大文字で記述してくださいね!
また、分岐が多岐に渡る場合は IF~ELSE ではなく、CHOOSE CASE を使用すると便利です。

上記を踏まえると、今回のコードは分岐が 2 つなので IF 文を使用していますね。

IF li_ret <0 THEN
ROLLBACK;
MessageBox (“エラー”, “データの更新に失敗しました。”, StopSign!, OK!)
ELSE
COMMIT;
MessageBox (“登録”, “登録しました。”, Information!, OK!)
END IF

Update メソッドに関しては、メソッドが正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。
なので dw_1 のデータウィンドウを Update メソッドで更新した際、0 より低い値が戻り値として帰ってきた場合は、ROLLBACK で処理を止め、MessageBox 関数によってエラーのウィンドウが出るようにしています。
一方で、ELSE で -1 以外の場合、要は 1 が返ってきた場合は、COMMIT で更新を行い、「登録しました。」というメッセージが返ってくるようになっていますね。

では実行してみよう!

ではこの状態でアプリケーションを実行してみたいと思います!
まず検索ボタンを押して・・・

そして [行追加] のボタンを押すと、新しく行が追加されました!
・・・よね?\(^o^)/

データを入力して、更新ボタンを押してみましょう。
すると先ほどコードで設定したメッセージが表示されましたね!
では、「はい」を押してみます。

見事更新されました\(^o^)/

再度アプリを実行し、きちんと反映されているか確認します。反映されてますね!

やったー!上手くできてますね!
更新はこんな風にメッセージ付きで行うと分かりやすいですね。

そうだにゃ!
さて、次回は更新時に入力項目の確認ができるようなコードを書いていくにゃ。

それでは、最後におさらい!

・更新には MessageBox 関数を使用したコードを使う手段がある!
・コードを書く上での規約も忘れずに!

こちらのブログシリーズ次回の記事はこちら↓↓

入門シリーズ全記事のまとめ

PowerBuilder 入門シリーズの全記事を、まとめページからもご覧いただけます!

PowerBuilder入門シリーズまとめ

いかがでしたでしょうか?
より詳しく PowerBuilder に関してお知りになりたい方は、Appeon 社の製品サイトをチェック!

x instagram facebook youtube