フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
散布図を用います.
x座標y座標の順にすべての系列の座標値を格納したテーブルデータを作成し,散布図に設定します.その際,メソッドsetLineVisibleを用いて線の描画の有無,メソッドsetMarkerVisibleを用いて点の描画の有無を指定できます.
引数のbooleanは描画の有無,intは系列インデックスを示します.
もし折れ線が各系列に関連するもので,数式が分かっている場合には,setTrendDataMathematicLineで関数が描画できます.ただし,各系列と同じ色になってしまいます.数式の記述については,MZ Platform JavadocのPFPlotChartをご参照ください.
数式ではなく座標データの場合にはsetTrendDataを用いて,座標データを設定してください.
ご参考のため,サンプルアプリケーションを添付します.添付ファイル:
MZPlatformユーザー会キーマスターつまり、現在の問題はOracleにJDBCで接続を確立することができないということですね。
もし他のソフトウェアを用いて、JDBC経由で接続を確立することができれば、その設定を参考にすればMZでも接続できると思います。こちらから提供している情報は、サーバに直接接続する設定だけですが、実際にはOracleへのJDBC接続は3種類提供されています。下記リンク先をご覧ください。
https://docs.oracle.com/cd/E11882_01/appdev.112/e13995/oracle/jdbc/OracleDriver.htmlもしサーバに直接接続する方法(thinドライバ)ではできない状況であれば、Oracleクライアント経由(oci)の設定も選択肢としては存在します。ただし、産総研では確認していないのと、こちらはOracleのバージョンごとにJDBCドライバ(jarファイル)が異なったり追加ライブラリが必要なようなので、公式情報をよくお読みください。
MZPlatformユーザー会キーマスターこちらでは黒猫というソフトを使用したことがありませんが、インターネット上で検索する限りはOracleにもODBC経由で接続するという情報しか得られませんでした。「Oracle Provider for OLE DB」を選択しているわけではないということでしょうか?
公式ページが存在しないようなので、詳細が確認できておりません。もし本当にJDBC経由であれば、使用しているJDBCドライバやJDBC接続に使用しているパラメータを同じにすれば、接続できるかもしれません。
MZPlatformユーザー会キーマスターデータベースアクセスコンポーネントのソースは公開しても良いですが、それは本質的な問題ではないと思います。
確認ですが、JDBCで接続に成功している組み合わせはあるのでしょうか。
もしあれば、その設定をお知らせください。
MZだけ失敗という表現が気になるのですが、黒猫というのはODBCを利用しているのではないでしょうか。それならODBCで接続できているだけだと思います。こちらとしては、JDBCからODBCに接続するものと誤解があるのではないかという点が不安です。JDBC経由では、Oracleのサーバに直接接続しますので、サーバ側の設定が必要です。そのようにお試しいただいていると信じていますが、そうであれば、今はSIDがわからないことが問題ではないでしょうか。
サーバ側にログインできれば、環境変数でORACLE_SIDが確認できるそうですし、対象とするサーバにSQL文を送れるのであれば、select instance_name from v$instance;で取得できるという情報があるようです。
MZPlatformユーザー会キーマスターtnsnames.oraというファイルにSERVICE_NAMEとSIDの指定が書いてあるらしいですが、もしその中にSIDが書いていないか指定してもうまくいかない場合は、サンプルのMZアプリにあるままの「orcl」で試してみていただけますでしょうか。
MZPlatformユーザー会キーマスターそれは残念です。
こちらで試す環境がないので推測ですが、ODBCデータソースの登録では、ローカルのOracleクライアントと接続されている感じがしますが、JDBCドライバの場合はOracleサーバと直接通信しますので、Oracleクライアントの接続設定をご確認いただく必要があるかもしれません。MZPlatformユーザー会キーマスター情報ありがとうございます。
確かに、サーバ名かポート番号などの書き方に問題がありそうです。接続を試すMZアプリですが、MZ本体と一緒にインストールされている「データベースアクセス_4(DB切替版).mzax」をお使いいただけますでしょうか。場所はインストールフォルダの下の「AP_DATA/Sample」にあります。
こちらを起動していただくと、データベース接続設定のフレームに「登録名」のコンボボックスがありまして、こちらを「Oracle」にしてください。
あとは、「サーバ」のフィールドの中で「localhost」のところにサーバ名(ここでは//FT8000SVR?)、「orcl」のところにサービス名(ここではKAIHATU)を入れます。ポート番号は「1521」ではないでしょうか?独自の環境で指定されているならそれを書いていただきます。いただいた画像を拝見すると少なくとも「/em」は余計な感じがしますが、サーバ名がこの書き方で通るかどうかはよくわかりません。WindowsのPC名であれば、「\\」もお試しいただき、それでもだめならIPアドレスも試していただけるとうまくいくかもしれません。
最後に「ユーザ名」と「パスワード」を適切に入力していただき、「スキーマ名」も「ユーザ名」と同じものを入力してください。
これで接続できると良いのですが。
以上、お試しいただけますでしょうか。MZPlatformユーザー会キーマスターまずはエラーの詳細についてお知らせいただけますでしょうか。
「IOエラー」以外に表示されている文字列をお書きいただくか、画像を添付していただけると助かります。画面上でそれ以上の表示がなければ、ログファイルをご確認ください。
ログファイルはMZインストール先(例えばC:\MZPlatform\3.5)のlogフォルダに、Platform***.logという名前で、曜日ごとのテキストファイルが作成されています。
atの行をすべて書くと多いので、該当する箇所で例えば接続に失敗している理由等が書かれている部分を抜き出してください。また、お手数ですが使用環境について可能な範囲でお知らせいただけますでしょうか。
Oracle DBのバージョンと、使用したJDBCドライバの名前、JDBCドライバの配置先のパス、MZ側で接続先サーバの情報として記入したパラメータ、ODBC側で記入したパラメータ、これらを見れば何かわかるかもしれません。MZPlatformユーザー会キーマスター[外部プログラム通信]コンポーネントを用いて起動したプログラムを終了しますと,処理完了イベントが発生いたします.その際のイベント番号は2または5となります.
従いまして,外部プログラム通信コンポーネントの処理完了イベントにイベント番号2,5を指定して,次に実行したい処理を定義することにより,ご希望の動作が実現すると思います.
ご参考まで,外部プログラムとして「メモ帳」を起動するサンプルプログラムを作成しましたので,添付いたします.添付ファイル:
MZPlatformユーザー会キーマスター確かに、間隔が一定でない時系列データをグラフとして描画しようとすると、散布図を使うことになります。しかし、残念ながら散布図の軸に日時をそのまま用いることができません。
現状の機能で描画するには、カレンダーコンポーネントを用いて、まず起点となる日時を設定して、それから日時を指定して経過時間を取得すると、ミリ秒単位で経過時間(整数)が得られます。この経過時間を散布図のX軸の描画に使用すれば、グラフ自体は描画できます。参考までに、サンプルのMZアプリの圧縮ファイルを添付します。
このほか、散布図の最大最小設定を調整して描画範囲を調整したり、X軸のラベルを消して時刻の表示をラベル等で下に追加したりする必要があります。
添付ファイル:
-
投稿者投稿