2008-11-11 5 views
2

querynew() 함수를 사용하여 ColdFusion에서 수동으로 생성 한 쿼리에 값을 NVARCHAR로 저장하는 방법을 아는 사람이 있습니까? 필자는 쿼리의 입력 지점을 사용하여 Excel 워크 시트 (Ben의 POI 사용)를 구성하는 것에 의존하는 대규모 프로그램을 여러 개 가지고 있으므로 상대적으로 큰 재 작성을 피하기 위해 쿼리로 계속 사용할 수 있습니다.ColdFusion에서 데이터 형식 지원 querynew()

사용자가 VARCHAR 범위 외의 일부 일본어 문자 등을 저장하려고 시도했을 때 문제가 발생했습니다.

편집 : 이것이 가능하지, 당신은 100 % 확신한다면, 나는 너무 :)

답변

1

queryNew()를 사용하여 ColdFusion 질의를 생성 할 때 두 번째 인자로 데이터 유형 목록을 전달할 수 있습니다. 예를 들어 :

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

양자 택일로, 당신은 (당신이 queryparam 태그에 사용합니다) cf_sql_varchar를 사용할 수 있습니다. livedocs에 따르면 nvarchar는 CF varchar 데이터 형식으로 허용됩니다.

<cfprocessingdirective pageEncoding="utf-8"> 

ColdFusion에서 (& 자바) 기본적으로 UTF-8 문자열을 저장합니다 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의 POI 유틸리티로 이것을 시도하지는 않았지만 잘하면 당신에게 도움이된다. 다음과 같이

0

QueryParam livedoc (referenced for nvarchar data type)이 모든 당신이 필요로하는 거의이다. 필요한 것은 CF에 페이지의 인코딩이 UTF8임을 알려주는 것입니다. 다른 방법은 BOM (Byte Order Mark)을 저장하는 것이지만 Eclipse/CFEclipse는이를 수행하지 않습니다.