作成した返信
-
著者投稿
-
MZPlatformユーザー会サイト管理者
いろいろ情報をいただきましたが、何らかの理由でRaspberry PiからMySQLサーバPCに接続できていないことが原因というぐらいしかわかりません。ログは単なるタイムアウトの場合の出力内容でした。
確認ですが、このRaspberry Piから過去にMySQLサーバに接続できたことはないですね?
いただいた情報ではMZアプリ側に過去の接続状態が保存されているようなので、それがWindowsから接続したときの状態なのか、Raspberry Piから接続したときの状態なのかも教えていただけますか。あとは、JDBCドライバが古いという印象ですが、接続先のMySQLのバージョンはいくつでしょうか。それに対応する新しいJDBCドライバに入れ替えてみてはいかがでしょうか。
MZPlatformユーザー会サイト管理者ご回答ありがとうございます。
別の独立したWindowsPCから実行して接続できているので、サーバPC側のサービス起動やファイアウォール設定の問題ではないようです。
一方、Raspberry PiからサーバPCへのネットワーク接続が本当にできているかはまだわかりません。また、PDFの最後に書かれた内容も気になるところです。接続設定画面と異なる状態がアプリ画面に表示されているように見えます。もし本当に途中まで情報が取得できているのであれば、タイムアウト時間の設定が短いという可能性もあります。
やはり、ログファイルの内容を調査していただけますでしょうか。
Windowsでも同様ですが、MZ Platformのインストール先にあるlogフォルダの中に、テキスト形式でPlatform***.logファイルがあります。***のところが曜日を表すアルファベット3文字になります。エラーが発生したときのログファイルの出力を見たいので、ファイル添付していただけますでしょうか。ZIPファイルにまとめた方が良いかもしれません。ログファイルの中身を見ても、やはり接続できなかったことしか記録されていない場合は、Raspberry Pi側の環境設定に問題があるかもしれません。Javaのバージョンはお知らせいただきましたが、JDBCドライバの配置先とそのバージョン(ファイル名)もお知らせいただけますでしょうか。
よろしくお願いします。
MZPlatformユーザー会サイト管理者エラーメッセージの詳細をお知らせいただきありがとうございます。
このメッセージは、想定するMySQLサービスが応答せずタイムアウトしたときに出力される場合が多いです。例えば、接続先指定の誤りや、サーバPCまたはMySQLサービスが起動していない場合が挙げられます。まずはサーバPCおよびMySQLサービスが起動していることをご確認ください。
続いて、接続先は別PCのはずがMZアプリで下記のようにローカル接続指定をしている場合があります(localhostではなくIPアドレスの指定が必要)
jdbc:mysql://localhost/また、接続先の指定とサービス起動が正常でも、サーバPC側でファイアウォールが接続をブロックしている場合も考えられます。
いずれも、別の独立したWindowsPCから実行して接続できれば異なる原因ということになりますので、再度ご確認いただけますでしょうか。
もしそうであれば、Raspberry PiからサーバPCへのネットワーク接続が不可能な状態と考えられます。同一のネットワークに接続しているかご確認ください。
MZPlatformユーザー会サイト管理者似たようなトピックとお考えかもしれませんが、ご自身の作成したトピックでない場合は別トピックにしていただく方が助かります。(今回はこのままで良いです)
まずは状況を確認させてください。
Raspberry Pi上でデータベースアクセスチュートリアルのアプリを実行すると、チュートリアルの図4と同一のエラーが出るということでしょうか。もし詳細なメッセージが異なる場合はその画像や正確な文字列をお知らせください。必要に応じてログファイルをお送りいただけると参考になります。
Windows上では問題なく実行できているとのことですので、Windows上ではMySQL等のインストールと設定は問題ないということですね。Raspberry Pi上でもMySQL等のインストールと設定は完了していると考えてよろしいでしょうか。また、MySQLを使用しないMZアプリは正常に実行できているでしょうか。
MZPlatformユーザー会サイト管理者ご返信ありがとうございます。
色々な方法が考えられると思いますが、以下の2つが比較的簡単に設定できます。
1)[テーブル]にデータを設定する前提の場合、[テーブル]の列型を論理型に変更し、表示文字列を設定します。
(1)列の上で右クリック>[列]>[列型]>[論理]を選択します。
(2)再度列の上で右クリック>[列]>[表示属性(論理)]>[表示文字列]>[チェック時…/非チェック時…]を選択すると、テキスト入力窓が表示されます。表示したいテキストを設定します。2)[等価演算(=)]コンポーネント等とイベント番号を組み合わせ、チェックの有無が「true」の時に設定する値と、「false」の時に設定する値を条件分けします。
以上、動作確認のためお送りいただいたファイルに簡単な修正を加えましたので、ご参考になれば幸いです。
なお、お送りいただいたファイルには「アプリケーションを終了する」設定が無かったのですが、アプリケーションビルダーで編集時には、アプリケーションビルダー終了の際に実行されていたプロセスも終了しますが、ローダーで実行したときは画面を閉じても終了しないため、プロセスが残ってしまいます。チュートリアルでは[フレーム]のアクションイベントに「アプリケーションを終了する()」処理を設定することをお勧めしております。
ご不明な点等ございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
申し訳ございませんが、mzaxファイルのままですと、この掲示板ではアップロードできずエラーとなってしまいます。
大変お手数をお掛けいたしますが、ZIP等に圧縮してから再アップロードしてください。
どうぞよろしくお願いいたします。MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
[EXCELファイルアクセス]で使用しているApache POIの仕様として、不必要にセル範囲広げることを避けるため、値も書式も全く設定されていないセルは参照できない可能性があります。
これを回避するには以下のいずれかをお試しください。
1)空白のままでよいので、セルに何らかの書式を設定する
罫線、塗りつぶし、フォント色、フォントサイズ等試しましたが有効でした。2)メソッド「現在の行のセルを選択する(int)」の代わりに「現在の行のセルを選択する(なければ作成する)(int)」、「現在のシートの行を選択する(int)」の代わりに「現在のシートの行を選択する(なければ作成する)(int)」をお試しください。こちらは全く値、書式共設定しておらず、セルが存在しないと認識された場合には空白セルを作成します。
以上お試しいただいても改善されない場合は、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 1 年, 7 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
[1]よく使うコンポーネントは[リスト格納変数]です。要素にはObjectを設定しますので、コンポーネントの設定もできます。また、先入れ先出しが特徴の[オブジェクトキュー]を使うこともあります。
配列位置の指定で格納したコンポーネントを取り出す場合は、上記2つのコンポーネントを使うのが簡単かと思います。また、コンポーネント名を指定してということであれば、以下のように[マップ格納変数]と[コンポーネント格納変数]を組み合わせて使うことが考えられます。
1)[コンポーネント格納変数]にメソッド「コンポーネントを設定する(Component)」で[アプリケーション]または[複合コンポーネント]を設定します。これ以外のコンポーネントを入れても次の2)の処理で期待した値が返りません。引数の取得方法はコンポーネントです。
2)[コンポーネント格納変数]のメソッド「条件指定で下位のコンポーネントのマップを取得する(String)」を実行します。引数にはクラス名を指定します。例えばラベルの場合は「jp.go.aist.dmrc.platform.beans.gui.PFLabel」です。マップのキーはコンポーネントキーとなります。
3)[マップ格納変数]のメソッド「キーを指定して値を取得する(Object)」でコンポーネントキーを指定して格納されたコンポーネントを取得します。なお、[ラベル]のコンポーネントキーは自動的にテキストの変更が反映されますが、一度コンポーネントキーを属性情報設定窓から設定すると、以降自動的には変更されなくなります。自動的に変更されるように戻したい時は、コンポーネントキー欄のNuLLをクリックしてください。
[2]取り出した任意のコンポ―ネントのメソッドの実行には[コンポーネント格納変数]を使用します。
➀「起動メソッド名を設定する(String)」引数のには日本語化されていないメソッド名を設定(例:setText)。
➁「起動メソッドに引数を追加する(String,Object)」引数0には引数の型を設定しますが、数値型や論理型の場合は「int」「float」「boolean」と表現し、それ以外の場合は「java.util.Date」等クラス名を指定します。文字列型だけは「String」と「java.lang.String」の両方で指定できます。
➂「起動メソッドを実行する()」を設定します。以上、[マップ格納変数]の確認のため、簡単なサンプルファイルを添付いたします。
ご参考になれば幸いです。添付ファイル:
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
この[グラフデータ作成]複合コンポーネントは内部で『エクセル導入チュートリアル』P25 -39で使用している[分類テーブル作成]コンポーネントを使用しています。説明をご覧いただくと分かるように、設定が複雑になるため、使いやすいよう複合コンポーネントにまとめております。
デフォルトでは[分類テーブル作成]コンポーネント内でソートするようになっているので辞書順に並び変わっていますが、ソートしないように属性で変更できます。
[グラフデータ作成]内に[系列グラフデータ作成(IDx-8)]、[ガントチャートデータ作成(IDx-5)]、[円グラフデータ作成(IDx-10)]の各複合コンポーネントがあります。その中の[分類テーブル作成(IDx-8-16)、(IDx-5-16)、(IDx-10-15)]の3つのコンポーネントをダブルクリックして属性情報設定窓から「unsorted」の項を「true」に変更します。
以上お試しいただいても改善されない場合は、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 1 年, 8 ヶ月 前 に編集されました。
MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
javaのデータ型とMySQLのデータ型の相違により、エラーが発生している可能性があります。
大変お手数をお掛けいたしますが、添付のJarファイルを設定してお試しください。1)添付の「db20210303.jar」をMZPlatform\3.6(_64)\jarsフォルダに入れます。
2)MZPlatform\3.6(_64)\etcフォルダ内の『PlatformClassPath.ini』をメモ帳などで開き、パスを記述し、保存します。
例えば以下のような内容になります。
——————————
# MZ Platform ClassPath
jars/db20210303.jar
jars/mzextension.jar
jars/mzplatform.jar
・・・・
——————————
3)アプリケーションビルダーを再び立ち上げてください。以上、お試しいただいても改善されない場合は、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は、 MZPlatformユーザー会 により、 1 年, 8 ヶ月 前 に編集されました。
添付ファイル:
-
著者投稿