4

null になる可能性のある int 列を持つデータベース テーブルがあります。列に int を追加しても問題ありませんが、null に戻すとエラーが発生します。ColdFusion は null 値をサポートしていないため、通常は値を空の文字列として渡します。

local.myParam = "";

ただし、これによりエラーが発生しますが、これ""は数値型ではありません。

post.addParam(name="parentId", cfsqltype="CF_SQL_INTEGER", value=arguments.parentId);

この制限を回避する方法はありますか?

4

2 に答える 2

7

空の文字列を として送信するnull場合は、次のようにします。

post.addParam(... null=len(trim(local.myParam)) ? false : true ...);

つまり、またはのような他の引数に加えて、引数<cfqueryparam>addparamサポートします。asを設定すると、指定された値が適切な null としてデータベースに提供されます。便宜上、三項条件演算子を使用して真または偽の値をインライン化しています。を使用して、昔ながらの方法で同じことを実現できます。nullnamecfsqltypenulltrueiif()

于 2011-02-15T16:29:13.680 に答える
4

私はあなたがこれを望んでいると思います...

null=yesNoFormat(NOT len(trim(local.myParam)))
于 2011-02-15T16:59:50.050 に答える