我用m_pRecordSet->Fields->Item[field]->GetChunk(lIsRead);和AppendChunk()来更新NCLOB类型,但是老报错
我写的时候
WCHAR buffer[] = L"ggggh";
m_pRecordSet->Fields->GetItem(field)->AppendChunk(_variant_t(buffer));
m_pRecordSet->Update();
当更新的时候就报错误,、我读的时候
COleVariant vari_tmp;
vari_tmp = m_pRecordSet->Fields->Item[field]->GetChunk(5);
也是有错误产生,好象是关于数据转换的时候产生的,我都已经是UNICODE字符了呀~~~~~~~
求用ADO读写NCLOB的方法

解决方案 »

  1.   

    只是更新LOB类型字段的时候才有问题的吗?
      

  2.   

    你试试这里的数据类型
    http://www.vckbase.com/document/viewdoc/?id=252
      

  3.   

    写谢谢上面各位的回复了
    数据库的大文本类型真的很有意思, 我在SQLSERVER下建立了TEXT类型表,然后用读写TEXT(ORACLE下CLOB)的方法读写,我拷贝了一本书,没问题,我往里面放了一个MP3存的时候是按照字符串存的,读出来的时候就报错,是不是转换数据的时候的问题,因为MP3里面说白了包含一些2进制的ASCII代码嘛,但是存的时候TMD为什么不出错??
    上面是问题一,关于ORACLE的NCLOB和SQLSERVER的NTEXT的存储类型是一样的,但是在更新SQLSERVER的时候NTEXT就没有什么问题,还是SQLSERVER支持用NTEXT来存储ANSI代码?我晕!
    回到正题,我在更新NCLOB的时候刚开始用一般的ANSI单字节往里面存的时候
    GetItem(field)->AppendChunk(_variant_t(buffer));
    就出错了,我觉得是因为格式转换的原因,大家都知道ORACLE的NCHAR类型必须在写SQL语句的时候要加上一个N来表示后边是UNICODE字符集,我换成了WCHAR类型,这会在(_variant_t(buffer));
    那里出的错误,RUNTIME错误,应该是类转换的时候的错误,还请教大家关于SQLSERVER和ORACLE的长文本类型的ADO读写方法了
      

  4.   

    错误已经查明,是LOB格式不匹配错误,但是我明明是用UNICIDE存进去的呀
    求解决方法
    上面方法在更新CLOB和TEXT上没有任何错误