2

querynew() 関数を使用して、ColdFusion で手動で作成したクエリに値を NVARCHAR として格納する方法を知っている人はいますか? 入力ポイントとしてクエリを使用して (Ben の POI を使用して) Excel ワークシートを作成することに依存する大規模なプログラムの複数の部分があるため、比較的大きな書き換えを回避するためにクエリとして引き続き使用できることが多少重要です。

この問題は、ユーザーが VARCHAR の範囲外のもの、日本語の文字などを保存しようとしたときに発生しました。

編集:これが不可能で、100%確信がある場合は、それも知りたいです:)

4

5 に答える 5

1

queryNew()を使用してColdFusionクエリを作成する場合、データ型のリストを2番目の引数として渡すことができます。例えば:

<cfset x = queryNew("foo,bar","integer,varchar") />

または、cf_sql_varchar(queryparamタグで使用する)を使用することもできます。livedocsによると、CFvarcharデータ型にはnvarcharが受け入れられます。

QueryParam livedoc(nvarcharデータ型を参照)

QueryNew livedoc(データ型定義のために参照されます)

データ型の管理livedoc(cf_sql_datatypeを使用するために参照)

于 2009-02-07T00:13:20.190 に答える
1

これまでに思いついたのはこれだけです:

<cfset x = QueryNew("foobar")/>
<cfset queryAddRow(x) />
<cfset querySetCell(x, "foobar", chr(163)) />
<cfdump var="#x#">

ダンプすると、このクエリには英国ポンド記号が含まれています。

私は Ben の POI ユーティリティでこれを試したことはありませんが、少しは役に立てば幸いです。

于 2008-11-11T21:52:40.493 に答える
1

Unicode end-to-end を使用していることを確認してください。

于 2008-11-14T14:11:47.233 に答える
1

ここに示すように、JavaCast() を使用して値を設定してみてください: JavaCast() の Kinky Solutions (Ben Nadel)

于 2008-11-11T22:45:27.563 に答える
0

これはあなたが必要とするほとんどすべてです:

<cfprocessingdirective pageEncoding="utf-8"> 

ColdFusion(&java)は、デフォルトで文字列をUTF-8に格納します。必要なのは、ページのエンコーディングがUTF8であることをCFに伝えることだけです。別の方法は、バイト順マーク(BOM)を保存することですが、Eclipse/CFEclipseはそれを行いません。

于 2009-02-11T19:09:46.497 に答える