Tips

4th Dimension v6.5における"@"の設定とその動作、および影響範囲について

日付2000/01/31
ID00-003
バージョン
プラットフォーム

4D v6.5からワイルドカード"@"マークの持つ意味を設定で変更できるようになりました。ここではその設定が持つ意味とその範囲について説明します。


□ワイルドカード"@"マーク
4Dにおいて"@"はワイルドカードとして認識されます。例えば検索条件を「QUERY ([Person]Name="田中@")」とすることで、名前が「田中」で始まるすべての人を検索することができます。
4D v6.5からはこの"@"が持つ意味を設定で変更できるようになりました。設定変更は以下のようにして行います。

□設定の変更方法
1 デザインモードの「ファイル」メニューから「データベースプロパティ...」を選択します。
2 「データ制御&アクセス権」タブをクリックします。
3 「データ制御」グループ内の「クエリ/並び替えで「@」を文字とみなす」チェックボックスを希望の設定に変更します。
4 データベースプロパティダイアログボックスを閉じて、一度ストラクチャを終了します。これはインデックスの再構築のために必要です。
5 ストラクチャを再び開きます。設定に従いインデックスが再構築されます。

□設定の持つ意味
この設定により、文字列の「間」にある"@"の動作が変更されます。文字列の先頭あるいは末尾の"@"については影響ありません。つまり

1 チェックがついていない場合(デフォルト)、"@"は常にワイルドカードとして認識されます。例えば「QUERY ([Person]Name="田@一")」は名前が「田」で始まり、「一」で終わるすべての人を検索します。
2 チェックがついていて"@"が文字列の間にある場合、"@"は文字として扱われることになります。例えば「QUERY ([Person]Name="田@一")」は名前が「田@一」に完全に一致する人を検索します。
3 チェックがついていても、"@"が文字列の先頭または末尾にある場合、"@"はワイルドカードとして認識されます。例えば「QUERY ([Person]Name="田@")」は名前が「田」で始まるすべての人を検索します。

この設定は電子メールアドレス等の、文字列の間に"@"があり、その値に対して検索等の作業が必要である場合のために用意されたものです。

□設定が影響する範囲
4D v6.5では"@"を検索以外の場面でも使用することができますが、すべて"@"を使用するときにはデータベースプロパティの設定の影響を受けます。例えばメソッドエディタの自動フィル機能、オブジェクトプロパティコマンドなどです。具体的に設定の変更によって結果がどう変化するか下で見ていきます。

メソッドエディタ
メソッドエディタに"ADD@R"と入力した場合、"@"をワイルドカードとする設定では"ADD RECORD"と認識されます。"@"を文字とする設定ではADD@Rという変数として認識されます。

オブジェクトプロパティコマンドの引数
オブジェクトプロパティグループ内のコマンドにオブジェクト名を引数として渡す場合、"@"をワイルドカードとして使用し、複数のオブジェクトの属性を一つのコマンドで設定することができます。例えば「FONT (*;"@_Field_@";"Osaka")」はオブジェクト名に"_Field_"を含むすべてのオブジェクトのフォントを"Osaka"に設定します。
"@"を文字と見なす設定の場合、「FONT (*;"Field_@_Gothic";"Osaka")」はオブジェクト名が"Field_@_Gothic"に完全に一致するオブジェクトのフォントを"Osaka"に設定します。もしこのケースでオブジェクト名が"Field_"で始まり"_Gothic"で終了するすべてのオブジェクトの設定を変更したい場合、"@"はワイルドカードである必要があります。

□使用上の注意
今まで見てきた通り、"@"を文字と見なすことは電子メールアドレス等の検索に利便性を提供しますが、それ以外の個所にも影響があるということに注意してください。場合によっては設定の変更によりメソッドの書き直しが必要になることがあるかもしれません。設定を変更しようとするときは注意深く検討を行う必要があります。