ODBC에서 SQLGetData로 받아올 필드 길이 구하기?
글쓴이: purewell / 작성시간: 수, 2003/11/26 - 4:29오후
데이터베이스 관련 라이브러리를 짜려고 합니다.
bool GetString (std::string& strRet, int nCols) { ... SQLGetData (...); ... }
문제는 ODBC라이브러리는 std::string을 지원하지 않습니다.
받아올 필드의 길이(nSize)를 계산해서
char* pData = new nSize;
한 뒤에 strRet에 복사해주려고 합니다.
이때 nSize를 구하는 방법을 알고 싶습니다.
Forums:
http://msdn.microsoft.com/library/defaul
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odch21gpr.asp
buffer와 그 길이를 넘기도록 되어 있군요.
어떤 알 수 없는 길이를 넘기는 API는 일반적으로 그 buffer의 최대값만큼 버퍼를 만들어서 넘겨야합니다.
ODBC에서는 그 API가 최대 얼마를 넘길 것이다를 정하지는 않을 것 같군요.
만약, 길이를 fetch하는 다른 함수가 있어도, 제 생각은 두번 호출하는 것보다 넉넉한 버퍼를 넘겨주는 것이 좋겠다입니다.
---
http://coolengineer.com
칼럼 정보를 얻는 함수가 따로 있습니다.
SQLDescribeCol returns the result descriptor—column name, type, column size, decimal digits, and nullability—for one column in the result set. This information also is available in the fields of the IRD.
http://www-3.ibm.com/software/data/db2/everyplace/doc/infocenters/kor/dbeapr1010.htm
ps. 제 생각은 좀 다른것이..
쿼리 실행후에 리턴하는 칼럼의 수와 그 칼럼의 속성을 모른다면,
프로그래밍에 어려움이 있다고 생각합니다.
쿼리 실행후에 따로 칼럼에 대한 정보를 가지고 처리를 해주야 할것 같네요
참고그림
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
감사합니다. ^ -^);
감사합니다. ^ -^);
_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz
Re: 칼럼 정보를 얻는 함수가 따로 있습니다.
아! 저런 좋은 함수가 있군요? 하도 오래전에 ODBC를 다뤄봐서.. :)
만약, 저런 함수처럼 필드의 최대값이 아닌, 필드 값의 길이를 넘기는 것을 생각한다면, 우울했을 것입니다....
---
http://coolengineer.com
댓글 달기