フォーラムへの返信
-
投稿者投稿
-
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軸のラベルを消して時刻の表示をラベル等で下に追加したりする必要があります。
添付ファイル:
MZPlatformユーザー会キーマスター大変申し訳ございませんせんが,誤って添付されたファイルを削除してしまいました.
32bit版のMZ Platformで接続できたものが,64bit版ではエラーが発生するとのことですが,64bit版のMZ PlatformのJavaフォルダ(標準では[C:\MZPlatform\Java\jre8_mz3.5_64\])内の[lib\ext]フォルダにデータベースに接続するためのJDBCドライバは配置されておりますでしょうか.
以下のページをご参照になり,ご使用のJava(JRE)のバージョンに対応するJDBCドライバをお試しいただけますでしょうか.MZプラットフォームVer3.5の標準インストールではJRE8がインストールされます.
https://msdn.microsoft.com/ja-jp/library/ms378422(v=sql.110).aspxまた,ご質問に関連する事項につきましては,過去の掲示板トピックやFAQにも掲載がございます.若干古いものもございますが,検索機能を使用してご参照ください.
MZPlatformユーザー会キーマスター本掲示板の投稿には、直接MZAXファイルを添付することはできません。右側の注意事項をお読みください。
添付されたExcelファイルですが、開くと会社名が含まれていますが大丈夫でしょうか。この添付ファイルは誰でも読める状態になっております。MZAXファイルも添付すれば誰でも読めますので、よくご検討の上、添付機能をお使いください。
さて、1のご質問ですが、MZアプリを添付して「どこに不具合がありますか?」という質問にはお答えできません。「このような処理を実現したいが、ここの処理でこのようなエラーメッセージが出て解決できません。どのような意味でしょうか?」という質問であればお答えします。少ない人員で対応していますので、少ない労力で理解と回答ができるようにご協力ください。
2のご質問についても、状況がわからないのでお答えできません。64ビット版のMZでサーバに接続していたものが接続できなくなったということでしょうか。そうであれば、接続できていたMZアプリが存在するのでしょうか。このように詳細な状況の説明と、接続できない等の問題であれば少なくとも画面に表示されるエラーメッセージをなるべく正確にお知らせください。その後、必要に応じてログファイルをご参照いただいて、より詳細なメッセージをお知らせいただくことになります。
MZPlatformユーザー会キーマスターMZプラットフォームが32bit版か64bit版かの確認につきましては,インストールされているフォルダ名により判断が可能です.
インストール先が例えば「C:\MZPlatform\3.5」の場合には32bit版,「C:\MZPlatform\3.5_64」の場合には64bit版です.また,データベースアクセスコンポーネントを使用したエクセルファイルへのアクセスには,MZプラットフォームに対応するbit数のODBCドライバがインストールされていれば良いことが分かりました.
エクセルを含むODBCドライバは次のサイトからダウンロードできます.
https://www.microsoft.com/ja-jp/download/details.aspx?id=1325532bit版ドライバのインストーラ:
AccessDatabaseEngine.exe
64bit版ドライバのインストーラ:
AccessDatabaseEngine_X64.exeサポートされるOSはWindows8までとなっておりますが,Windows10での動作も確認出来ました.
-
投稿者投稿