SQLでログインする場合,On SQL Authentication
データベースメソッドでCHANGE CURRENT USER
コマンドを実行し,SQLセッションのアクセス権を明示的に付与することが必要です(データベースメソッドが存在する場合)。
v11では,SQLの実行コンテキスト(たとえばトリガ)でCurrent user
を使用することができませんでした。返されるのは,直近のOn SQL Authentication
データベースメソッドで付与されたユーザー名であり,カレントSQLセッションのユーザー名であるとは限らなかったからです。SQLセッションはOn SQL Authentication
データベースメソッドで付与されたアクセス権で実行されていますが,そのアクセス権をCurrent user
で取得できるとは限りません。
v12以降,SQLの実行コンテキストでCurrent user
を使用した場合,SQLセッションのアクセス権がそのまま返されるようになりました。ただし,SQLの実行コンテキスト(たとえばトリガ)でCHANGE CURRENT USER
コマンドを実行した場合,4Dのカレントユーザーが変更され,Current user
とSQLセッションのアクセス権が一致しないことになります。いずれにしても,On SQL Authentication
データベースメソッドでSQLセッションに付与されたアクセス権は,ログアウトするまで有効であり,途中,CHANGE CURRENT USER
コマンドに影響されることはありません。
Courierは,定番のクロスプラットフォーム等幅フォントですが,Windows版はビットマップフォントであることに注意する必要があります。Mac版であれば,Courierフォントが設定されたフォームオブジェクトを印刷することができますが,Windows版は,印刷にDirect2Dが使用されているため,別のフォントが出力されることになります。これは仕様です。
フォームエディターで「透過」プロパティが有効にされている場合,OBJECT SET RGB COLORS
で背景色が指定されたとしても,オブジェクトの背景は塗りつぶされません。背景色にはBackground color none
という定数がありますが,これは「透過」プロパティが有効にされていない場合にだけ使用できる値です。
一方,プロジェクトモードでは,フォームエディターの「透過」プロパティはエクスポートされず,背景色だけがエクスポートされます。したがって,フォームエディターで「透過」プロパティが有効にされているオブジェクトの背景色をプロジェクトモードで再現するためには,OBJECT SET RGB COLORS
で背景色をBackground color none
に指定する必要があります。これは仕様です。
なお,17r5では,OBJECT SET RGB COLORS
が改良され,背景色の指定を省略したり,前景色には触れずに背景色だけを変更できるようになりました(空の文字列を指定)。
ON ERROR CALL
でエラー処理メソッドを宣言する場合,戻り値のないメソッドを指定するようにしてください。エラー処理メソッドが$0
を宣言している場合,コンパイルモードでランタイムエラー-20002
(存在しないパラメーターに対するアクセス)が返されることになります。これは仕様です。