2011-03-15 3 views
0

MSSQL에서 VARCHAR (MAX)를 반환하는 스칼라 반환 함수를 만들었습니다.스칼라 값 함수는 C++ ADO (.NET이 아님)에서 VARCHAR (MAX)를 반환합니다.

나는 함수의 매개 변수로 채워진 CommandPtr을 (preCom)를 사용하고, 나는 다음과 같은 호출로 함수를 호출하고 있습니다 :

_variant_t vNull; 
vNull.vt = VT_ERROR; 
vNull.scode = DISP_E_PARAMNOTFOUND; 
HRESULT hr = ptrCom->raw_Execute(&vNull, &vNull, adCmdStoredProc, &record_set); 

반환 HRESULT는 DB_E_ERRORSINCOMMAND입니다.

반환 값을 VARCHAR (MAX)에서 VARCHAR (8000)로 변경하면 모든 것이 잘 동작합니다.

누군가 VARCHAR (MAX)를 반환 한 스칼라 반환 함수를 어떻게 실행합니까?

감사합니다.

답변

0

Updating an Application to SQL Server Native Client from MDAC를 참조하십시오 : 다음 표와 같이

MDAC 응용 프로그램이 SQL Server에 연결

는 SQL Server 2005에서 도입 된 데이터 형식은 SQL Server 2000의 호환 데이터 형식으로 나타납니다. 당신이 text을 지정할 수있는 경우

SQL Server 2005 type SQL Server 2000 type 
varchar(max)   text 

그래서 내가 추측에는 요, 그것을 작동 할 수 있습니다. 나는 내가 SQL에서이 오류가 발생하고 반환 데이터 형식으로 TEXT 설정려고 할 때

+0

이봐, 당신을위한 감사합니다 :-) 도움 ". 텍스트 데이터 형식이 반환 값이 잘못되었습니다" 을 :-( – TCS

+0

@strDisplayName - ADO에서 계속 진행해야 할 것 같아요. 'varchar (max)'를 이해할 수 없습니다. 현대 프로그래밍 인터페이스는 SQL Native Client로, 이미 하나의 링크를 제공했습니다. 문서 : - | –

+0

도움 주셔서 감사합니다 :-) – TCS