4D-JUG
Would you like to react to this message? Create an account in a few clicks or log in to continue.

【小技】SQL文の中で16進数表記を使用する

Go down

【小技】SQL文の中で16進数表記を使用する Empty 【小技】SQL文の中で16進数表記を使用する

投稿 by miyako 2017-09-11, 10:00 am

通常のメソッドには,下記のように16進数表記を記述することができます。

$n:=0x00FF

この場合,オペランドの右辺は整数型なので,コンパイラーは自動的に変数$nを整数型で宣言します。つまり,16進数表記は,ドキュメントが述べるところの「型を判断する決め手」となります。

http://doc.4d.com/4Dv15/4D/15/Using-Compiler-Directives.300-2006315.ja.html

対照的に,下記のように記述した場合,変数$nはデフォルトで実数型となります。

$n:=255

データベース設定「デフォルトの型指定」は,特に変更しない限り,実数だからです。

http://doc.4d.com/4Dv16/4D/16.1/Compilation-settings.300-3373325.ja.html

同じことは,フォームオブジェクトにもあてはまります。下記のオブジェクトは,明示的に整数型で宣言しない限り,実数型になります。これを避けるためには,データベース設定「デフォルトの型指定」を実数から倍長整数に変更するか,オブジェクトの変数を明示的に整数型で宣言することが必要です。ボタン系はC_BOOLEAN,スリーステートチェックボックスはC_LONGINT,ルーラ系は用途に応じてC_REALまたはC_LONGINTで宣言することができます。

チェックボックス
3Dチェックボックス
ボタン
ハイライトボタン
透明ボタン
3Dボタン
ピクチャボタン
グリッドボタン
ラジオボタン
3Dラジオボタン
ラジオピクチャ
ピクチャメニュー
階層ポップアップメニュー
階層リスト
ルーラ
ダイヤル
サーモメータ

http://doc.4d.com/4Dv15/4D/15.4/Typing-Guide.300-3273739.ja.html

例外は,For/End forのカウンター変数で,これはC_LONGINTで宣言しなくても,データベース設定に関係なく,自動的に整数型となります。

v12.1以降,SQL文の中でも16進数表記を使用することができます。ただし,構文は通常のメソッドと少し違います。

通常のメソッド

QUERY([myTable];[myTable]myField=0x00FF0000)

SQL文

SELECT * FROM myTable WHERE myField = X'00FF0000'

http://doc.4d.com/4Dv16/4D/16/literal.300-3201194.ja.html

16進数表記(および入力)は,デバッガでもサポートされています。

http://doc.4d.com/4Dv15/4D/15.4/Custom-Watch-Pane.300-3274331.ja.html

miyako

投稿数 : 480
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可