在调用 SQLGetData
函数之前,我想知道表中可用数据的确切大小。目前我正在遵循下面列出的代码,它适用于我,但我不确定它是否安全。
谁能帮帮我?
char*ptr = new char[0];
if (retcode = SQLGetData(hstmt, 31, SQL_C_BINARY, ptr,0,&cbfdata) != SQL_NO_DATA)
{
delete[] ptr;
vector<char> vec(cbfdata);
SQLGetData(hstmt, 31, SQL_C_BINARY, &vec[0],cbfdata,&cbfdata);
ofstream fout;
fout.open(file,ios::binary);
fout.write(&vec[0],cbfdata);
fout.close();
vec.clear();
}
最佳答案
您不能先调用没有数据指针的 SQLGetData 并设置 StrLen_or_IndPtr,然后驱动程序会将大小写入 StrLen_or_IndPtr。
关于c++ - 如何在调用 SQLGetData 之前知道数据的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330943/