环境:VS2008 MFC msado15.dll SQL Server 2000 SQL Server 2005
操作SQL Server 2000时需要注意若要使用AppendChunk()函数,则必须要将Field对象的属性Attributes设为adFldLong,否则将会出现“在此环境中不允许操作”的错误;然而在操作SQL Server 2005时则在使用AppendChunk()不显式设置adFldLong时也不会出现上述的错误,也许是2005内默认adFldLong已设置了而2000的没有(这只是我的猜测);
若不使用AppendChunk(),可以使用流对象ADODB::Stream。使用Stream对象时,还需注意当把_variant_t 变量写入Stream内
pstream->Write(var); //pstream为ADODB::_StreamPtr, var为_variant_t
后需将流stream的位置设为起始位置0,
pstream->Position=0;
因为write后position是在stream的末尾,这样当你Read流Stream的内容时是从末尾读起,此时读到的内容就是NULL
pstream->Read(size); //size为需读取的字节数
使用流Stream时无需考虑是2000还是2005。
以下是代码:(偷懒,然后把所以判断是否出错的语句都省略了)