SQLGetData Function
函数定义:
SQLRETURN SQLGetData(
SQLHSTMT StatementHandle,
SQLUSMALLINT Col_or_Param_Num,
SQLSMALLINT TargetType,
SQLPOINTER TargetValuePtr,
SQLLEN BufferLength,
SQLLEN * StrLen_or_IndPtr);
其他参数就不多说了,具体信息查看msdn
https://msdn.microsoft.com/en-us/library/ms715441(v=vs.85).aspx
这里只说下第三个参数: “TargetType”
这个参数的含义是:指定你想得到的数据类型,而不是数据原本的类型
比如一个表
--------------------------------------------------------------------------------
create table dbo.t1(ID INT)
--------------------------------------------------------------------------------
插入一条数据
--------------------------------------------------------------------------------
insert into dbo.t1 values(3)
--------------------------------------------------------------------------------
通过SQLGetData()获取数据时
1. 假如想直接获取到整型值”3”,”TargetType”参数就设置成: SQL_C_SLONG,如:
--------------------------------------------------------------------------------
char buf[1024] = {0};
SQLGetData(odbc->hstmt, 1, SQL_C_SLONG, buf,sizeof(buf), &sql_data_len);
--------------------------------------------------------------------------------
执行过后,buf的前4个字节会填入整形3
2. 假如想获取到字符串型”3”,”TargetType”参数就设置成: SQL_C_CHAR,如
--------------------------------------------------------------------------------
char buf[1024] = {0};
SQLGetData(odbc->hstmt, 1, SQL_C_CHAR, buf,sizeof(buf), &sql_data_len);
--------------------------------------------------------------------------------
执行过后,buf的第一个字节会填入字符”3”对应的ascii码,可以直接将buf当成char型字符串处理了