2008-11-11 2 views
2

Кто-нибудь знает способ хранения значений как NVARCHAR в вручную созданном запросе в ColdFusion с помощью функции querynew()? У меня есть несколько частей довольно большой программы, основанной на использовании запроса в качестве входной точки для построения листа Excel (с использованием POI Бена), поэтому несколько важно, что я могу продолжать использовать его в качестве запроса, чтобы избежать относительно большой перезаписи.Поддержка типа данных в ColdFusion querynew()

Проблема возникла, когда пользователь попытался хранить что-то, что находится вне диапазона VARCHAR, некоторые японские символы и т. Д.

Edit: Если это не представляется возможным, и вы 100% уверены, я хотел бы знать, что тоже :)

ответ

1

При создании запроса ColdFusion с запросомNew() вы можете передать список типов данных в качестве второго аргумента. Например:

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

В качестве альтернативы, вы можете использовать cf_sql_varchar (который вы будете использовать в queryparam тегов). Согласно прожиточным документам, nvarchar принимается для типа данных CF varchar.

QueryParam livedoc (referenced for nvarchar data type)

QueryNew livedoc (referenced for data type definition)

Managing Data Types livedoc (referenced for using cf_sql_datatype)

1

Единственное, что я смог придумать до сих пор это:

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

При сбрасывании этот запрос содержит символ Британского фунта стерлингов.

Я не пробовал это с помощью утилиты Ben's POI, но, надеюсь, вам это поможет.

0

Это в значительной степени все, что вам нужно:

<cfprocessingdirective pageEncoding="utf-8"> 

ColdFusion (& Java) хранит строку в UTF-8 по умолчанию. Все, что вам нужно, это указать CF, что кодировка страницы UTF8. Альтернативный способ - сохранить знак байта (BOM), но Eclipse/CFEclipse этого не делает.

Смежные вопросы