4D v16.3エラーメッセージ |
||
|
4D v16.3
エラーメッセージ
エラーメッセージ
ここでは、コンパイラが出力するメッセージについて説明します。メッセージは、以下の数種類になります。
このメッセージは、コンパイルの過程で出力されます。ここでは、各メッセージを警告の対象となるコード例と共に示します。 注: 警告はエラーと異なります。警告はコードに誤りがないか、開発者に注意を促すために生成されるものです。警告対象のコードに誤りがないことが確かな場合、警告は無視することができます。 COPY ARRAYコマンド中にポインタが存在します。 COPY ARRAY(Pointer->;Array) SELECTION TO ARRAYコマンド中にポインタが存在します。 SELECTION TO ARRAY(Pointer->;MyArray) ARRAY TO SELECTIONコマンド中にポインタが存在します。 ARRAY TO SELECTION(Pointer->;[MyTable]MyField) LIST TO ARRAYコマンド中にポインタが存在します。 LIST TO ARRAY(List;Pointer->) ARRAY TO LISTコマンド中にポインタが存在します。 ARRAY TO LIST(Pointer->;List) 配列定義コマンド中にポインタが存在します。 ARRAY REAL(Pointer->;5) ARRAY REAL(Array; Pointer->)と書いた場合、このメッセージは出力されません。配列の次元数はデータタイプに影響を与えないからです。ポインタで参照する配列は、事前に定義しておく必要があります。 DISTINCT VALUESコマンド中にポインタが存在します。 DISTINCT VALUES(Pointer->;Array) Undefined関数は使用しないでください。 If(Undefined(Variable)) Undefined関数はコンパイルしたデータベースでは常にFALSEを返します。 このメソッドは、パスワードにより保護されています。 フォームXページ目の自動動作ボタンの名前がありません。 ポインタの参照先を文字として処理します。 文字列のインデックスを数値タイプとして処理します。 String[[Pointer->]]:="a" 配列のインデックスを実数タイプとして処理します。 ALERT(MyArray{Pointer->}) プラグインコマンドの呼び出しでパラメータが不足しています。 WR SET FONT(Area) //%W-warning_number で警告を無効にできます。 //%W+warning_number で警告を有効にできます。 この方法で警告を有効にしたり無効にしたりすると、効果はその後に解析されるすべてのコードに効果があります。全体的に警告を無効にしたり有効にしたりしたい場合は、"Compiler_xxx"という名前のメソッドに適切なタグを記述することができます。このような名前を持つメソッドがまずコンパイラーにより解析されるためです。例えば"COPY ARRAY中にポインターがあります"警告を無効にするには、"//%W-518.1"タグを記述します。 このメッセージはコンパイルの処理段階で生成されます。データベースのコンパイルにより表示されるエラーを修正するかどうかはユーザが判断します。各メッセージを問題のあるコードの例と共に示します。 タイプ 変数タイプの演算子に互換性がありません。そのため、タイプを設定することが出来ません。 MyReal:=12.3 配列の次元数は変更できません。 ARRAY TEXT(MyArray;5;5) フォームの配列変数タイプが一致しません。 ARRAY INTEGER(MyArray) 配列定義コマンドに次元数がありません。 ARRAY INTEGER(MyArray) 変数が必要です。 COPY ARRAY(MyArray;"") 変数タイプが不明です。この変数はメソッド"M1"で使用されています。 定数タイプが無効です。 OK:="The weather is nice" メソッド"M1"が不明です。 誤ったフィールドの使用。 MyDate:=Add to date(BooleanField;1;1;1) 変数Variableはメソッドではありません。 Variable(1) 変数Variableは配列ではありません。 Variable{5}:=12 結果が式と一致しません。 Text:="Number"+Num(i) 変数タイプが不適切です。 Integer:=MyDate*Text 変数$iのタイプを固定長文字列から実数に変更できません。 $i:="3" 配列のインデックスが数値ではありません。 IntArray{"3"}:=4 変数Variableのタイプをテキストから配列に変更できません。 C_TEXT(Variable) 変数Variableのタイプをテキストから実数に変更できません」 Variable:=Num(Variable) MyBooleanのタイプをブール配列から実数タイプの変数に変更できません。 Variable:=MyBoolean 配列IntArrayのタイプを整数タイプの配列からテキストタイプの配列に変更できません。 ARRAY TEXT(IntArray;12) “IntArray”が他の所で整数配列として定義されている場合。 ポインタタイプ以外の変数をポインタとして参照しています。 変数Var1のタイプをテキストから数値に変更できません。 Var1:=3.5 フィールドの使い方に誤りがあります。 Variable:=[MyTable]MyField ※[MyTable]MyFieldは日付フィールドで"Variable"は数値の場合。 シンタックス ポインタタイプ以外の変数をポインタとして参照しています。 Variable:=Num("The weather is nice")-> この関数を参照することは使用できません。 シンタックスエラー If(Boolean) "}"がありません。 "{"がありません。 ")"がありません。 "("形のカッコがありません。 フィールドが必要です。 If(Modified(Variable)) ")"がありません。 C_INTEGER($ 変数が必要です。 C_INTEGER([MyTable]MyField) 定数値が必要です。 C_INTEGER(${"3"}) セミコロン(";")が必要です。 COPY ARRAY(Array1 Array2) 文字参照記号"]]"が足りません。 MyString[[3:="a" 文字参照記号"[["が足りません。 MyString3]]:="a" サブテーブルは使用できません。 ARRAY TO SELECTION(Array;Subtable) IF文には、ブール型が必要です。 If(Pointer) 式が複雑すぎます。 メソッドが複雑すぎます。 フィールドが不明です。 テーブルが不明です。 ポインタが参照する式に誤りがあります。 Pointer:=->Variable+3 文字列インデックスの使い方に誤りがあります。 MyReal[[3]] または MyString[[Variable]] ※"Variable"が数値変数以外の場合。 引数 この式の結果を引数としてこのメソッドもしくはコマンドに渡すことはできません。 MyMethod(Num(MyString)) ※MyMethodの引数にブール式が必要な場合。 このメソッドに渡す引数が多すぎます。 DEFAULT TABLE(Table;Form) この値を引数としてこのメソッドもしくはコマンドに渡すことはできません。 MyMethod(3+2) ※MyMethodの引数にブール式が必要な場合。 結果のタイプが一致しません。 C_INTEGER($0) 変数のタイプが一致しません。 C_INTEGER(${3}) このコマンドに引数は不要です。 SHOW TOOL BAR(MyVar) このコマンドには1つ以上の引数が必要です。 DEFAULT TABLE MyStringを引数としてメソッドに代入することはできません。 MyMethod(MyString) ※MyMethodの引数にブール式が必要な場合。 引数"$1"のタイプが呼ぶ側のメソッドと呼ばれる側のメソッドで一致していません。 Calculate("3+2") ※メソッド"Calculate"の中でコンパイラ指示子C_INTEGER($1)が記述されている場合。 COPY ARRAYコマンドの引数に変数が含まれています。 COPY ARRAY(Variable;Array) 変数$1のタイプを数値からテキストに変更できません。 $1:=String($1) 配列を引数として使用できません。 演算子 演算と変数タイプが一致しません。 Bool2:=Bool1+True ブール値のフィールドを加算することはできません。 演算子>は不要です。 QUERY(MyTable;[MyTable]MyField=0;>) これらの変数タイプを比較することはできません。 If(Number=Picture2) この変数タイプに-(マイナス)符号を付けることはできません。 Boolean:=-False プラグインコマンド プラグインコマンド"PExt"の定義が正しくありません。 プラグインコマンドに対する引数が足りません。 プラグインコマンドに対する引数が多すぎます」。 プラグインコマンドの変数の定義が正しくありません。 全般のエラー 同じ名前のメソッドが複数あります。 内部エラーNo.xx 変数Variableのタイプが不明です。この変数はM1メソッドで使用されています。 オリジナルのメソッドが壊れています。 4Dのコマンドでありません。 フォームに配置した変数のタイプは変更できません。 関数と変数が同じ名前です:Name メソッドと変数が同じ名前です:Name プラグインコマンドと変数が同じ名前です:Name スレッドセーフと宣言されたメソッドからスレッドセーフでないコマンドを呼び出せません。 スレッドセーフと宣言されたメソッドからスレッドセーフでないメソッド'MethodName'を呼び出せません。 これらのメッセージはコンパイルされたデータベースの実行中に、4Dにより表示されるエラーメッセージです。 結果が変数の範囲を越えました。 MyArray{17}:=2.3 MyArrayが要素数5つの配列であるとき、上記のステートメントが実行された場合、このメッセージはMyArray{17}にアクセスしようとすると表示されます。 ゼロによる割算が発生しました。 Var1:=0 引数がありません。 ポインタが初期化されていません。 MyPointer->:=5 i※MyPointerが初期化されていない場合。 代入先が小さすぎます。 C_STRING(MyString1;5) 文字参照エラー。 i:=-30 引数に渡された文字列が空です。 MyString[[1]]:="" ゼロによる割算が発生しました。 Var1:=0 EXECUTE内での無効な引数。 EXECUTE("MyMethod(MyAlpha)") ※MyMethodが英数字以外の引数が必要な場合。 変数へのポインタがコンパイラには未知のものです。 MyPointer:=Get pointer("Variable") ※ ポインタを使用して再タイプ設定を試行しました。 Boolean:=Pointer-> ※ポインタが整数タイプのフィールドを指す場合。 ポインタの使い方に誤りがあるか、ポインタが未知のものです。 Character:=StringVar[[Pointer->]] ※Pointerがポインタでなく数値の場合。
参照
|
プロパティ
プロダクト: 4D
履歴
タグ warning ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |