ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
互換性ページ

互換性ページ  


 

 

互換性ページには、以前の4Dバージョンとの互換性を管理するためのパラメーターがまとめられています。ここに表示されるオプションの数は、元のデータベースが作成されたバージョン (2004.x, v11, v12等) や、このデータベースで行われた設定の変更により異なります。

注: このページは現在のバージョンで作成されたデータベース (変換されていないデータベース) には表示されません。

  • ダイアログボックスでフィールドを入力可にする: 以前のバージョンでは DIALOG コマンド等で表示されたダイアログボックスでフィールドに値を入力することができませんでした。この制限は 4D 2004 で取り除かれています。データを表示するだけの目的でダイアログにフィールドを表示している場合、以前の動作を保持することができます。バージョン2004に変換されたデータベースではこのオプションが選択され、v2004で作成されたデータベースでは選択されていません。
  • ラジオボタンを名前でグループ化する: 以前のバージョンではラジオボタンの排他制御はボタンに割り当てる変数名の先頭バイトで判定されていました (例えば m_button1, m_button2, m_button3 など)。4D 2004以降はフォームエディター上でオブジェクトをグループ化することで排他制御が行われるようになっています。この点については ラジオボタンとピクチャーラジオボタン を参照してください。
    この新しいモードはラジオボタン、3Dラジオボタン、ピクチャーラジオボタンで有効です。互換性を保つため、変換されたデータベースでは以前のモードが使用されています。しかしこのオプションの選択を解除すれば新しいモードを使用できます。v2004 で作成されたデータベースでは新しいモードが使用されます。
  • PRINT SELECTION中、レコード毎にフォームをリロード: 以前のバージョンの 4Dでは PRINT SELECTION コマンドを使用した印刷中に使用されるフォームは、各レコード毎にリロードされていました。これにより On printing detail フォームイベントで開発者が言語を使用して変更したかもしれないオブジェクトの設定がすべて自動的に再初期化されていました。
    パフォーマンスを最適化するためにこのメカニズムは 4D 2004 で取り除かれました。今後はフォームメソッドを使用して 4D開発者が初期化を行わなければなりません。この動作は On display detail フォームイベントを使用するリストフォームと同じです。しかしながらこのオプションを使用して以前の動作を保持することができます。v2004で作成されたデータベースは新しいモードを使用します。
    オプションが選択されていない場合、ブラケット記法 ([MAVAR]) を使用します。この記法は以前のバージョンの4D Webサーバーで使用されていたプロプリエタリな方法であり、推奨されません。
  • 新しいコンテキスト参照モードを使用しない: このオプションが選択されていない場合、4D WebサーバーはHTMLのベースURLにコンテキスト番号を挿入します。
    以前のモードでは、 4D Webサーバーはブラウザーに送信する各項目にコンテキスト番号を送信しており、結果処理が遅くなっていました。しかしながら互換性のためこのオプションが選択されているかもしれません。このオプションを変更した後は設定を有効にするためにデータベースを再起動しなければなりません。
  • 未知のURLから"/"を取り除く: 以前の4Dではディスク上に存在しないファイルがURLとしてリクエストされた場合、On Web Authentication や On Web Connection データベースメソッドの$1引数に先頭の"/"が取り除かれたURLが渡されていました。この動作は4D 2004で変更されました。しかし以前の動作に基づいた実装を行っている場合にはこのオプションを選択します。
  • 外部からのドラッグ&ドロップを拒否: v11以降、ピクチャーなどのファイルや選択されたテキストオブジェクトなどを4Dにドラッグ&ドロップできるようになりました。変換されたデータベースではこの動作を想定したメソッドが書かれていないために期待した動作とならないかもしれません。このオプションを選択すると外部オブジェクトを4Dフォームにドロップできなくなります。ただしこの場合でも自動ドロップオプションを使用すると外部オブジェクトの挿入が可能である点に留意してください。アプリケーションはドロップされたテキストやピクチャーを解釈します (ドラッグ&ドロップ参照)。
  • QUERY BY FORMULAをサーバー上で実行ORDER BY FORMULAをサーバー上で実行: 4D v11より最適化の目的で、フォーミュラによるクエリや並び替えコマンドがサーバー上で実行されるようになりました。そして結果だけがクライアントマシンに返されます。この動作は以下のコマンドで有効です: QUERY BY FORMULAQUERY SELECTION BY FORMULAORDER BY FORMULA。変数が直接フォーミュラ内で使用されている場合、クライアントマシン上の変数値を使用してフォーミュラが呼び出されます。例えば
     QUERY BY FORMULA([aTable];[aTable]aField=theVariable)
    このコードがサーバー上で実行された場合でも、myvariable変数値はクライアントマシン上のものが使用されます。他方この原則はフォーミュラにメソッドが使用され、そのメソッド内で変数が参照されている場合には当てはまりません。この場合サーバー上で変数が解釈されます。
    変換されたデータベースではこの点が考慮されていない可能性があるため、デフォルトでこれらのコマンドはクライアントマシン上でフォーミュラを実行します。新しいモードを使用したい場合はこれらのオプションを明示的に選択します。
    注: このオプションはSET DATABASE PARAMETERコマンドで設定することもできます。
  • QUERY BY FORMULAでSQL JOINを使用: 4D v11より QUERY BY FORMULAQUERY SELECTION BY FORMULA コマンドはSQLの結合モデルに基づくJOINを実行するようになりました。これによりストラクチャーエディターで自動リレーションが設定されていなくても [Table_A ]field_X=[Table_B ]field_Y のようなフォーミュラを使用できるようになりました。
    既存のデータベースでこの動作が考慮されていない場合、予期しない動作となることがあるため、変換されたデータベースではこの機能がデフォルトで無効にされています。データベースコードを見直した後、このモードを有効にすることを推奨します。
    注:
    • "SQL JOIN"モードが有効な場合でも、以下のケースでは QUERY BY FORMULA や QUERY SELECTION BY FORMULA コマンドはストラクチャーエディターで設定された自動リレーションを使用します:
      - フォーミュラを{field ;comparator ;value}形式に分解できない場合
      - 同じテーブルの 2つのフィールドが比較されている場合
    • SET DATABASE PARAMETER コマンドを使用してプロセス毎にこのオプションを設定できます。
  • マルチトランザクションを有効にする: マルチレベルトランザクションのサポートを有効にします。4D v11以降、マルチレベルのトランザクションがサポートされるようになりました。既存のデータベースでこの動作が考慮されていない場合、予期しない動作となることがあるため、変換されたデータベースではこの機能がデフォルトで無効にされています (トランザクションは1レベルに制限されます)。マルチレベルのトランザクションを使用したい場合、このオプションを選択します。
    注: このオプションはSQLエンジンで実行されるトランザクションには影響しません。SQLのトランザクションは常にマルチレベルです。
  • Unicodeモード: カレントデータベースのUnicodeモードの有効/無効を切り替えます。64-bit 版の4D アプリケーションでは必須のため、このオプションは必ずチェックされている必要があります。
  • ピリオドとカンマを数値フォーマットのプレースホルダーとして使用する: v11以降、4Dは数値の表示フォーマットにシステムの地域設定パラメーターを使用するようになりました (表示フォーマット の"数値フォーマット"参照)。4Dは自動で数値表示フォーマット中の","を千の位区切り文字、"."を小数点として解釈し、シス テムに設定された記号で置き換えます。以前のバージョンでは数値表示フォーマットでシステムの地域設定は考慮されていませんでした。例えば "###,##0.00" フォーマットは日本語システムでは有効ですが、フランス語システムでは結果が異なっていました。
    変換されたデータベースでは互換性保持のためこの新しいメカニズムが無効になっています。
  • Web変数に値を自動的に代入する: 以前のバージョンの4Dでは、Webサーバーの標準機構によって、HTTPフォームやGET type URL を使用して送信された変数の値を自動的に4Dプロセス変数へと代入をしていました。インタープリタモードでは、変数同士が同じ名前であれば、受け取った変数の値はどんな値でも4Dプロセス変数へとコピーされました。コンパイルモードでは、変数は事前にCOMPILER_WEB プロジェクトメソッドを使用して宣言しておく必要がありました。
    v13.4 以降この機構は廃止予定となり、新しいデータベースでは使用できなくなりました。変換されたデータベースではこの機能は互換性のために、残されてはいますが、互換性のオプションでチェックを外すことによって無効化することができます。今後は代わりに WEB GET VARIABLES または WEB GET BODY PART コマンドの使用が推奨されます。
  • メソッドをUnicodeで保存: このオプションに効果はありません(メソッドは常にUnicode で保存されます)。このオプションについての詳細な情報については、以前のバージョンのドキュメントを参照してください。
  • オブジェクトではISO日付フォーマットの代わりに日付型を使用する: オブジェクト属性内に日付を保存する際に、ISOフォーマットのテキストではなく日付型として保存することができます。以前のバージョンの4Dでは、オブジェクト属性内の日付は文字列としてしか保存することができませんでした。4D v16 R6以降、オブジェクト属性内の日付は日付型として保存ができるようになりました。このオプションをチェックすることでこの挙動を有効化することができるようになります(ISOフォーマットで以前保存されていた日付に関しては"そのまま"になりますが、新しく保存される日付は日付型として保存されます)。また、この機能はSET DATABASE PARAMETER コマンドにDate typeString type with time zone、およびString type without time zoneセレクターを渡すことで、プログラムからも管理することができます。
  • アプリケーション配布に新アーキテクチャーを使用: このオプションは4D v15 R4以降の全てのアプリケーションにおいて利用可能です。このチェックは4Dアプリケーションの配布に関係する新しい機構を有効化あるいは無効化するものです(これは最終的なアプリケーションを生成するマシン上で設定される必要があります)。このオプションによって管理される機構については、最後に開かれたデータファイルクライアントアプリケーションによる接続の管理 などの章に詳細な説明があります。このオプションは変換されたアプリケーションにおいてはデフォルトではチェックがされていません。この新機構を利用するためには、このオプションを明示的にチェックする必要があります。
  • オブジェクトプロパティにアクセスするのにオブジェクト記法を使用(Unicode 必須): このオプションは、(テーブル、フィールド、メソッドあるいは変数名の一部としてではなく)トークンメンバーを定義するために"."(ドット)、"[" および "]" (大カッコ)をオブジェクト記法のシンボルとしてコード内で使用することを許可します。4D v17 以前のバージョンで作成されたデータベースにおいてオブジェクト記法を使用する場合にはこのオプションの有効化が必須となります(以前の4D のリリースでは".[]"記号が名前として使用することが可能であったからです)。このオプションを変換されたデータベースにおいて有効化すると、コードがオブジェクト記法に準拠していると宣言することになります。コードが適合しているかどうかをMSCを使用してチェックすることが推奨されます(検証ページ 参照)。オブジェクト記法についての詳細な情報については、オブジェクト記法の使用 の章を参照してください。
    注意: このオプションは4D v20 以降、変換されたバイナリーデータベースではチェックが必須になります。
  • 標準XPath を使用する: デフォルトでは、v18 R3 より前のバージョンの4D から返還されたデータベースではチェックが外されており、4D v18 R3 以降で作成されたデータベースではチェックがされています。v18 R3 以降、4D のXPath 実装は、より多くの述語に対応しサポートするために変更されました。結果として、以前のスタンダードでない一部の機能は動作しなくなります。これには以下のような機能が含まれます:
    • 最初の "/" はルートノードに限らない - "/" をXPath 式の最初の文字として使用しても、ルートノードからの絶対パスの宣言にはなりません。
    • 暗示的なカレントノードはなし - カレントノードはXPath 式の中に含められていなければなりません。
    • 繰り返された構造内では再帰的な検索は不可 - 最初の要素のみが解析されます。

標準的なものではないとはいえ、お使いのコードが以前と同じように動くように以前の機能を保ちたい場合もあるかもしれません。この場合、このチェックを外してください。その一方で、これらの非標準の実装をコード内で使用しておらず、データベース内で拡張されたXPath 機能(DOM Find XML element コマンドの詳細に説明があります)を利用したい場合、この標準XPath を使用するオプションがチェックされていることを確認してください。

  • macOS の改行コードにLFを使用する: 4D v19 R2 以降、4D は新規プロジェクトにおいてはmacOS では改行コード(EOL)としてデフォルトでCR ではなくラインフィード(LF)をテキストファイルに書き込みます。以前の4D のバージョンから変換されたデータベースにおいてこの新しい振る舞いを利用したい場合には、このオプションをチェックして下さい。詳細についてはTEXT TO DOCUMENT および Document to text を参照して下さい。
  • Unicode テキストを書き込む場合にはデフォルトでBOM を追加しない: 4D v19 R2 以降、4D はテキストファイルに書き込む場合にはデフォルトでバイトオーダーマーク(BOM)を書き込みません。以前のバージョンでは、テキストファイルはデフォルトでBOM 付きで書き込まれていました。変換されたプロジェクトでこの新しい振る舞いを有効化したい場合にはこのオプションを選択して下さい。詳細についてはTEXT TO DOCUMENT および Document to text を参照して下さい。
  • フォームでのテキストレンダリングではDirectWrite を使用する: Windows では、4D v19 R3 以降で作成されたプロジェクト/データベースにおいてはフォーム内では DirectWrite API を使用しています。このAPI はテキストのレンダリングを、特に高DPI 設定において改善させます。しかしながら、それ以前のバージョンで作成された既存のプロジェクトおよびデータベースにおいては、既存のフォームの全体的な見た目を変更してしまう可能性があるため、デフォルトでは使用されていません。このAPI をフォーム内で使用したい場合にはこのオプションをチェックしてください。ただし、Windows 上においてデザインを一部修正する必要があるかもしれないという点に注意してください。このオプションがチェックされると、スタティックテキスト、入力テキスト、チェックボックス、ボタン、ラジオボタンなどのフォームオブジェクトのテキストレンダリングに対してDirectWrite が使用されます。ただしリストボックスでのテキストレンダリングには影響しません。これはリストボックスは既にDirectWrite を使用しているからです。
  • フィールド作成時にヌル値を空値にマップをデフォルトでチェックを外す: ORDA の仕様により合致するために、4D v19 R4 以降で作成されたデータベースにおいては、フィールド作成時にヌル値を空値にマップフィールドプロパティがデフォルトでチェックされなくなります。このチェックボックスにチェックを入れることで、変換されたデータベースにおいてもこのデフォルトの振る舞いを適用することができます(NULL値はORDAでサポートされるようになったため、今後は空値ではなくNULL値を使用することが推奨されます)。



参照 

Compatibility settings (Part 1) - Query by formula
Compatibility settings (Part 2) - Use period and comma as placeholders
Compatibility settings (Part 3) - Nested Transactions
Compatibility settings (Part 4) - All the rest

 
プロパティ 

プロダクト: 4D
テーマ: データベース設定

 
ページの目次 
 
履歴 

変更: 4D v16 R4
変更: 4D v16 R6
変更: 4D v18 R3
変更: 4D v19 R2
変更: 4D v19 R4
変更: 4D v20

 
ARTICLE USAGE

デザインリファレンス ( 4D v20 R7)