select文について

  • このトピックには2件の返信、2人の参加者があり、最後にkoniにより1ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #7453
    koni
    参加者

    MySQLのテーブルデータをMZ上で閲覧するデータベースを作成していますが、select文について質問があります。

    MySQL上のselect文の入力時、SQL内にデータがなかった場合、「Empty set」と表示されますが、MZ上でのselect文で「Empty set」の場合、何も表示が出ないため、select文より後のコンポーネント処理にて(例えば「テーブルデータを設定する」→「指定セルの値を取得する」など)、エラーが発生してしまいます。

    作成中ファイルの処理上の問題なのですが、一度このエラーが発生すると、ファイルを再起動しなければならなくなり、困っています。

    できれば「Empty set」の時、「データが保存されていません」のような表示を出して、select文より後のコンポーネント処理を読み飛ばしたいと考えておりますが、なにか方法はあるでしょうか。

    よろしくお願いいたします。

    #7454
    MZPlatformユーザー会
    キーマスター

    ご連絡ありがとうございます。

    例えばselect文に条件句(where句)を付けると該当データが無いとき、MySQLのコマンドラインではお知らせいただいたように「Empty set」となりますが、MZ上では空のテーブルではなく、データ行数が0のテーブルデータとして取得されます。

    ですので、一旦検索結果を[テーブル格納変数]に設定し、テーブル行数が0より大きい場合は処理を行い、そうでない場合は何もしないか、メッセージを表示するなどが考えられます。
    例えば[比較演算(>)]の引数にテーブル行数と0を設定し演算します。演算が終わると[比較演算(>)]から処理完了イベントが発生するので、接続先処理にイベント番号を設定すると演算結果によって処理を分けることができます。

    何らかのタイミングで演算を行いますが、[テーブル]や[テーブル格納変数]にデータを設定すると「データ設定イベント」が発生するので、このイベントの接続先とするのか適当かと存じます。

    以上の説明の編集画面例図を添付いたします。
    ご不明な点がございましたら、再度ご連絡いただければ幸いです。
    どうぞよろしくお願い申し上げます。

    添付ファイル:
    #7458
    koni
    参加者

    ご回答ありがとうございます。
    テーブル行数の演算処理により、解決することができました。

    今後ともよろしくお願いいたします。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。