Q2:テーブルに表示するデータの確認方法、同じIDのデータの加算の方法、MySQL接続時のエラー
Q2-1:
現在、エクセルデータとの連携システムをチュートリアルを参考に開発しています。基本的には、JavaプログラムのJDBCライブラリを利用した処理を実現したいのですが、例えばResultSetクラスを利用するということです。プログラムでエクセルデータを色々に加工・抽出してガントチャートなどのグラフ化に結び付けたいのです(例えば、以下のプログラム)。
チュートリアルを改良した物では、最初にエクセルデータの全列をテーブルに表示する処理(イベント番号1)の後、切断して、再度接続して、SELECT
Distinct(機械ID) FROM "元データ$1" 文をラベルに記述して、別テーブルに表示させるルーチンを作成しました。このイベント番号を2にしています。テキストと同じように、作成して、イベント番号のみ2と別にしています。ボタンを押せば、このselect文が実行し、テーブルに表示するようにしていますが、表示しません。またメッセージも全くないので、どこが悪いのか、中々ユーザに分かりません。お教え下さいませ。同じIDを持つ、行データを探して、その行のある列データの値を加算してゆくという処理もどうすればよいのか、何か例があれば、教えて下さい。
プログラムの各ステップに対応する処理をコンポーネントで出来ると思いますが、どのコンポーネントをどう使うか、もっともっと詳細な資料が必要だと思います。
また、MYSQLを使ったチュートリアルのシステムでは正常にアクセスできますが、自分でチュートリアルどおり作成したシステムでは、MYSQLへの接続でエラーがでます。何回も見直していますが、これも何処が悪いか分かりません。何か、テキストを元にして、応用する場合の具体例がもっと色々欲しいです。
A2-1:
1)テーブルに表示するデータの確認について
[データベースアクセス]コンポーネントの「イベント番号を指定してSQL文を実行する」の結果がどのようになっているかは、「デバッガー」から確認することができます。
「エクセル連携導入(派遣管理)」サンプルを例にご説明します。詳しくはマニュアルの「デバッガー操作説明書.pdf」をご覧下さい。
@ビルダー設計画面で[ボタン(接続)]コンポーネントと接続されている
[データベースアクセス]コンポーネント(メソッド:イベント番号を指定してSQL文を実行する)の上で右クリック。
A[ブレークポイント設定/解除]を選ぶとブレークポイントを示すピンクの丸が付きます。
Bアプリケーションビルダーの[アプリケーション]−[デバッグ]をクリック
デバッガーが立ち上がるので、左上の開始ボタンを押します。
Dアプリケーションが実行されます。「接続」ボタンを押すとデバッガーにメソッドの情報が表示され、引数にテーブルデータが入っているかなど確認することができます。
エラーメッセージが出ないということから、SQL文での実行結果は得られているが、テーブルに設定する際に誤りがある(例えば「テーブルデータを設定する」が「テーブルを取得する」になってしまっている等)ことも考えられますので、併せてご確認下さい。
2)同じIDのデータの加算の方法
テーブルデータを[繰返し制御]、[等価演算]コンポーネント等を使ってIDを比較し一致した時加算するという方法もありますが、冗長になってしまうためSQLが使える場合は
select sum(項目名) from シート名$ where ID=ID番号
のようにSQL文を使って操作する方法をお勧めしています。
3)MySQL接続時のエラー
MySQLに接続の際のドライバ名、接続URL、またSQL文が少しでも違うとエラーとなってしまいます。全角/半角、コンマとピリオドの別、また文の途中や最後に余分なスペースが入っていないかなど今一度ご確認下さい。
備考:「データベース」の「Q&A4」にも掲載。