这是我的代码,我用的表是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个字节,为什么?