FAQ
FAQ
最新のUnifaceの対応プラットフォーム、対応データベース情報を知りたい
Q.
最新のUnifaceの対応プラットフォーム、対応データベース情報を知りたいです。
A.
バージョン10.4.01についてはこちらをご覧ください。
バージョン10.3.03についてはこちらをご覧ください。
プログラムでデータベースを変更したい
Q.
同じデータモデルを使って開発したアプリケーションで、国ごとに異なるデータベースに接続する必要があります。
国を選択後、どのようにしてフォームでDBの接続先を変えればいいでしょうか?
openステートメントを試してみましたが、うまくいきませんでした。
ASNファイルのPATHセクションの設定内容のどこに問題があるのかわかりません。
A.
ASNファイルのPATHセクションの仕様で、データベースの名前に「?」が指定されていればデータベースを変更することができます。
ログオンユーザー名、パスワードが異なる場合は「?|?|?」を指定してください。
これを指定して実行すると、USYSIDXが起動されて、「?」を指定したパラメータに入力することができるようになります。
または、openステートメントのパラメータとして「?」に設定したい内容を記述してください。
OracleストアドプロシージャがUTF-8で起動できない
Q.
Oracleストアドプロシージャを呼び出す為に、SSPを使用しています。
エンコードにUTF8を利用したいのですが、SSPが呼び出される時に高確率でUnifaceが停止します。回避方法はないでしょうか。
A.
下記のバグが原因となっている可能性があります。
「バグ:30003 - Oracle , SSP , ユニコード データタイプ: 非ユニコード データベースの問題」
Uniface 9.5.01 + E114 (それ以上のパッチ) または、Uniface 9.6.01 + X104 (それ以上パッチ)を使用してください。
usysidx.frmのフィールドに入力できる文字を制限したい
Q.
usysidxのIDフィールドに入力できる文字を制限したいです。
EditBoxのフィールドに英数字とアンダースコアだけ入力できるようSyntaxにENT(@*)を追加したのですが、上手く機能しません。どこに追加すればよいですか?
A.
usysidx.frmはUnifaceが使用している内部コンポーネントです。(../common/usysに保管)
Unifaceの内部コンポーネントに手を加えると、今回の問題も含め様々な問題が起こる可能性があります。
内部コンポーネントには手を加えないことをお勧めします。
MySQLのデータベースに接続できない
Q.
Uniface 9.7、MySQLデータベースを使用しています。
エンティティを検索する際に、下記のエラーが発生します。
Unable to load umql21; error 126 (‘Nao foi possivel encontrar o modulo especificado.’)
*** The DLL could not be loaded either in the USYSBIN directory or via the PATH variable.
*** Check if its directory is in the correct place in the PATH variable. Current PATH shown below.
「MQL U2.1」「MQL U3.0」「MQL U4.0」どのコネクタを設定しても同じエラーになります。解決策を教えてください。
A.
MySQLのコネクタは、MySQLのクライアントライブラリ「Connector/C」(libmysql.dll)に依存します。
このDLLファイルをダウンロードして、UnifaceのBINディレクトリ(MQLコネクタのモジュール(umql21.dll、umql30、umql40)が保管されている)、もしくはWindowsの環境変数「PATH」に記載されているディレクトリに配置してください。
ASNファイルに$RESOURCES_OUTPUTを設定しないとIDFが起動しない
Q.
アサインメントファイルに「$RESOURCES_OUTPUT」の設定なしで実行したいです。
しかし、「$RESOURCES_OUTPUT」の設定をせずにIDFを起動しようとすると、以下のようなエラーメッセージが表示されます。
idf fatal: $resources_output setting is required
回避方法を教えてください。
A.
IDFで使用しているアサインメントファイルに「$SEARCH_RESOURCES」が設定されていない、もしくは「$SEARCH_RESOURCES」に「resources_excluded」の値が設定されている場合に、「$RESOURCES_OUTPUT」の設定なしで起動可能です。
マイグレーション時にコンパイルできない
Q.
Uniface9.4から9.7へマイグレーションしています。
エクスポートファイルを9.7にインポートしてコンパイルしようとすると、下記のエラーが発生します。
Phase 2: Model definitions I/O function: F, mode: 0, on file/table: UCFIELD index: 1 = ORA-0316: fatal two task communication protocol error Oracle Driver Error [-35]: fetch driver function failed
Oracle 11g Client(11.2.0.3.0)からOracle 10g(10.2.0.1.0)のデータベースに接続しています。解決策はありますか?
A.
「ORA-03106」エラーはOracleが引き起こす問題です。
Oracle 10.2.0.1・10.2.0.2のバージョンには、BUG 4523125(致命的な2重接続プロトコルエラー)の不具合があることが知られています。
Oracleのバージョンを10.2.0.3以上にアップデートしてください。
Uniface 実行環境のビットを確認したい
Q.
Uniface 実行環境が32ビットもしくは64ビットを使用しているか確認する方法はありますか?
A.
Proc関数、$setting(“”, “PROCESSOR_ARCHITECTURE” ,”ENVDATA”)を使用すればわかります。
32bitの場合は”x86″、64bitの場合は”AMD64″が戻り値になります。
【Uniface 10.3】エンティティのテーブル作成SQLを出力したい
Q.
バージョン9.7以前では、エンティティをデータベースのテーブルとして作成するSQLがメニューから出力できましたが、バージョン10.3には同等の機能が見当たりません。
エンティティのテーブル作成SQLを出力する方法は無いのでしょうか。
A.
コマンドラインオプション「/genSql」をお使いください。
例えば、モデル SALES のエンティティ ORDER について、Oracle用のテーブル作成SQLを出力する場合は以下のように指定します。
/genSql createtable ORDER.SALES ORA create_order.sql
実行すると、作業フォルダに「create_order.sql」というファイルが作成され、その中にOracle用のCREATE TABLE文が出力されます。
エンティティ名、モデル名はワイルドカードが使えますので、モデル単位でSQLを出力することも可能です。
また、対象のデータベースはUnifaceがサポートしているものであれば指定可能です。
データベースを指定する際は、事前にアサインメントファイルの[DRIVER_SETTINGS]セクションにドライババージョンとドライバオプションを記述しておく必要があります。
詳細は、「Uniface Library」の「Command Line Switches」→「/genSql」を参照してください。
Uniface Anywhereでクライアントの「通常使うプリンタ」しか登録されない
Q.
Uniface Anywhereのホスト設定で、クライアントのプリンタを使用するために「Client Access」の「Printers」にチェックを入れましたが、起動したところクライアントの「通常使うプリンタ」しか追加されません。
サーバには必要なプリンタドライバをインストールしており、クライアントで定義されている全てのプリンタをアプリケーションで使用したいと考えています。
全てのプリンタを追加する方法を教えてください。
A.
クライアントで定義されている全てのプリンタをUniface Anywhereに追加するには、起動時にオプションを指定する必要があります。
クライアントプログラムから接続する場合は、コマンドラインオプションに “-ac all” を追加してください。
例)「ファイル名を指定して実行」ダイアログから起動
“C:\Program Files (x86)\Uniface\Uniface Anywhere Client\Client\ua-client.exe” -ac all
ブラウザから起動する場合は、logon.htmlのパラメータ “printerconfig” に “all” を設定します。
例)logon.htmlの規定値から変更
controlArgs.set([ “printerconfig”, “default” ]);
↓
controlArgs.set([ “printerconfig”, “all” ]);
logon.htmlを変更した場合は、ブラウザから最新の情報に更新した上で接続してください。
オプションの詳細は、管理者ガイド(Uniface Anywhere: Windows Host Administrator Guide)の「CHAPTER V – Running Uniface Anywhere」の「Uniface Anywhere Startup Parameters」、もしくはサポートサイトの「資料ダウンロード」にある「UnifaceAnywhere起動オプション一覧」をご覧ください。
Uniface 10へのマイグレーションで一部モジュールが削除される
Q.
Uniface 9からUniface 10.3へとマイグレーションを試みましたが、一部のモジュールがエラーを起こしてリポジトリから削除されてしまいました。
エラーおよび削除される原因と対処法を教えてください。
A.
エラーの原因は、例えばエンティティとラベルが重なり合っていたり、印刷時のトレーラやページブレイクがエンティティの中に置かれている等、誤った定義が存在していることです。
Uniface 9ではこれらの誤った定義が無視されていましたが、Uniface 10.3ではチェックが厳格化され、エラーとして検知されるように動作が変更されました。
その為、誤った定義によりエラーを起こしたモジュールは、Unifaceから移行できないものとして削除されてしまいます。
対処法としては、エラーを起こしたモジュールについてUniface 9の段階で修正する以外にはありません。
なお、Uniface 9ではエラーやワーニングとして検知されない為、一旦Uniface 10.3でのマイグレーション結果を確認後、Uniface 9で修正して再度該当のモジュールを移行することになります。
urouter、userverユーザのパスワードを変更したい
Q.
Unifaceのインストール時に作成されるurouter、userverの2ユーザについて、社内のセキュリティポリシーによりユーザ名と同じパスワードを設定してはいけないとの通達がありました。
パスワードを変更したいのですが、管理ツールから変更して大丈夫でしょうか。
A.
urouter、userverのパスワード変更は、urouter.exeのコマンドラインスイッチからユーザを削除後、再作成する際に新しいパスワードを指定してください。
具体的な手順は以下の通りです。
※注意:この手順を行う際は、必ずUnifaceのサービスを停止し、管理者ユーザで実施してください。
1.コマンドプロンプトを開き、Unifaceをインストールしたディレクトリのcommon\binに移動します。
例)インストールディレクトリが C:\Uniface10 の場合
cd C:\Uniface10\common\bin
2.urouter.exeにコマンドラインスイッチ /delacc を指定し、ユーザを削除します。
例)userverユーザを削除する場合
urouter/delacc userver
3.次に、urouter.exeにコマンドラインスイッチ /newacc を指定し、ユーザを作成する際に設定したい新たなパスワードを同時に指定します。
例)userverユーザを作成し、パスワードを”Un!f@ceI0″とする場合
urouter/newacc userver /passwd Un!f@ceI0
4.web.xmlに記述されているuserverのログオンパスワードを変更します。
(変更前)
<init-param>
<param-name>MIDDLEWARE</param-name>
<param-value>UV8:localhost+13001|userver|userver|wasv</param-value>
</init-param>
↓
(変更後)
<init-param>
<param-name>MIDDLEWARE</param-name>
<param-value>UV8:localhost+13001|userver|Un!f@ceI0|wasv</param-value>
</init-param>
5.Unifaceのサービスを起動し、接続を確認してください。
コマンドラインスイッチでのユーザ作成については、Uniface Libraryの以下の項目を参照してください。
・Installing Uniface
→ Installing and Configuring Uniface on Microsoft Windows
→ Manually Creating and Deleting Uniface Router and Server Accounts
Unifaceのシステム要件が知りたい
Q.
Unifaceのインストールに必要なシステム要件を知りたいのですが、Uniface社のサイトには掲載されていないようです。
どこで確認できますか?
A.
Unifaceのシステム要件は、インストールメディア内、またはダウンロードサイトの各プラットフォームページにある readme.htm に記載されています。
ファイルは英語版のみとなっております。
参考までに、バージョン 10.3.01 のシステム要件を抜粋します。
CPU:下記のモデル以降
→ AMD Opteron, AMD Athlon 64, Intel Xeon(Intel EM64Tサポート), Intel Pentium IV(EM64Tサポート)
CPUクロック数:
→ 最小 1.4 GHz、2.0 GHz以上推奨
メモリ:
→ 最小 2 GB、4 GB以上推奨(上限はOSのメモリ上限まで)
システム情報の取得方法について
Q.
ライセンスの発行申請に必要な、システム情報を取得する方法を教えてください。
A.
システム情報を取得するには、まずUniface(ライセンスサーバの場合はセットアップ画面から「Install Uniface License Server」を選択)をインストールします。
インストール完了後、以下の手順で取得してください。
1.スタートメニューから「Uniface」→「License Management」→「Distributed License Management」を開きます。
2.画面が起動したら、ウィンドウの左下にある「Show system information」をクリックすると「System and Environment Information」ダイアログが開きますので、画面下部にある「DLM Info…」ボタンをクリックしてください。
3.XMLファイルを保存する画面が表示されますので、初期表示の「system_info.xml」または任意のファイル名を入力して保存してください。
保存されたファイルにシステム情報が保存されています。このファイルを、内容を変更せずに発行申請とあわせてお送りください。
Unifaceアプリケーションで新しい元号を使用したい
Q.
Uniface上で、新しい元号を使用したいと考えています。具体的な追加手順を教えてください。
A.
新しい元号は以下の手順で追加してください。
①Uniface開発環境のメニューから、「Utilities」→「Deployment」→「Language Setups」→「Japanese Era…」を選択します。
②表示された画面にて使用するライブラリを選択し、言語に”JPN”を指定します。
③表示された画面の項目に以下を入力します。
・Begin Date
→ 20190501
・Era
→ (新元号名)
④保存し、一旦開発環境を終了します。
⑤開発環境起動時のコマンドラインに「/lib (ライブラリ名)」を入力し、ライブラリのコンパイルを実行します。
なお、ドキュメント「Uniface Library」では、「検索(S)」タブにて”era”で検索頂き、トピックの選択にて「Set Up Japanese Era」を選択してください。