SQL文で4Dメソッドを実行する場合、型が一致することは肝要
日付 | 2009/08/03 |
---|---|
ID | 75847 (英語原文参照) |
バージョン | 11 |
プラットフォーム | Mac & Win |
SQLの4d_function_callを使用し、4DメソッドをSQL文に含める場合、メソッドの返り値とSQLのデータタイプを正確に一致させることは重要です。SQL文が予期しているデータタイプと、メソッドの$0宣言には特に注意して下さい。とりわけ外部4Dデータベースで実行されるSQL文の場合、タイプが一致することは重要です。
`Method name: Find_Nr_Of_Actors C_LONGINT($0;$Count_L) C_LONGINT($MovieID_L;$1) $MovieID_L:=$1 SET QUERY DESTINATION(Into variable;$Count_L) QUERY([MOVIE_ACTOR];[MOVIE_ACTOR]Movie_ID=$MovieID_L) $0:=$Count_L
上記メソッドは、{fn Find_Nr_Of_Actors(ID) AS NUMERIC}のようなSQLにより内部データベースに対して発行された場合、4Dがタイプの不一致を処理するのでステートメントを完了することができます。
しかしながら、同じSQLを外部4Dデータベースに対して発行した場合、データタイプの不一致がエラーの原因となる恐れがあります。上記メソッドの場合、問題の原因は次の部分にあります。
この問題を解決するには、$0をC_REALとして宣言するか、SQL文を訂正して {fn Find_Nr_Of_Actors(ID) AS INT32}とする必要があります。