这是我的代码,我用的表是Northwind 中的Employee表:
// Call SQLGetData to determine the amount of data that's waiting.
retcode=SQLGetData(hstmt, col, SQL_C_BINARY, pb, 0, &pcbValue);
delete pb;
pb=NULL;
if(retcode== SQL_SUCCESS_WITH_INFO || retcode==SQL_SUCCESS)
{
printf("Photo size: %ld\n\n", pcbValue); // Get all the data at once.
value = new BYTE[pcbValue];
if (SQLGetData(hstmt, col, SQL_C_BINARY, value,pcbValue, &pcbValue) != SQL_SUCCESS)
{
printf("SQLGetData Error\n");
}
else
{
ulsize=sizeof(value);
fwrite(value,sizeof(BYTE),ulsize,fp);
}
delete [] value;
value=NULL;
}
else
{
printf("SQLGetData Error\n");
}
////////////////////////////////////////////////////////////
测出的字段的长度是正确的,可取到只有4个字节,为什么?
// Call SQLGetData to determine the amount of data that's waiting.
retcode=SQLGetData(hstmt, col, SQL_C_BINARY, pb, 0, &pcbValue);
delete pb;
pb=NULL;
if(retcode== SQL_SUCCESS_WITH_INFO || retcode==SQL_SUCCESS)
{
printf("Photo size: %ld\n\n", pcbValue); // Get all the data at once.
value = new BYTE[pcbValue];
if (SQLGetData(hstmt, col, SQL_C_BINARY, value,pcbValue, &pcbValue) != SQL_SUCCESS)
{
printf("SQLGetData Error\n");
}
else
{
ulsize=sizeof(value);
fwrite(value,sizeof(BYTE),ulsize,fp);
}
delete [] value;
value=NULL;
}
else
{
printf("SQLGetData Error\n");
}
////////////////////////////////////////////////////////////
测出的字段的长度是正确的,可取到只有4个字节,为什么?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货