如何能把数据库的xml类型导出到文件

怎么能把数据库的xml类型导出到文件?
数据库某张表假设只有2列,一列是主键,另一列数据类型为xml。
用CRecordset派生一个类对应这张表的话,表中xml类型应该对应vc中什么数据类型呢?
用CString的话貌似到一定长度后面就读不出来了。怎么能把这个xml数据类型里的内容导出到一个xml文件里呢?

我写的一段代码:
C/C++ code

    CString strSQL;
    CProductStyle recordsetps(pTstDB);  //pTstDB类型为CDatabase *,且数据库已成功打开
    strSQL.Format( _T("select * from [ProductStyle] where ID=%d"), 2 );
    recordsetps.Open( CRecordset::snapshot, strSQL, CRecordset::readOnly );
    CStdioFile file;
    file.Open( _T("C:\\abc.xml"), CFile::modeCreate|CFile::modeWrite );
    file.WriteString( recordsetps.m_strXML );
    file.Close();

    // CProductStyle类的声明,表ProductStyle中只有两列ID和XML
class CProductStyle : public CRecordset
{
public:
    CProductStyle(CDatabase* pDatabase = NULL);
    DECLARE_DYNAMIC(CProductStyle)

    long m_lID;       // 对应主键
    CString m_strXML;  // 对应XML列

public:
    virtual CString GetDefaultConnect();
    virtual CString GetDefaultSQL();
    virtual void DoFieldExchange(CFieldExchange* pFX);

#ifdef _DEBUG
    virtual void AssertValid() const;
    virtual void Dump(CDumpContext& dc) const;
#endif
};


在XML列中数据很长的时候在上面第四行open之后CString只有前面一段字符串,后面都没了。再长一些还会异常

------解决方案--------------------
看看是不是因为编码格式不同的原因
------解决方案--------------------
不会啊,可以读取出来呀,你是怎么读取的,是用ADO吗?
用ADO打开读取集,然后再用GetCollect读取就行了,读取后转成成CStirng类型就行了。
这是我的博客,你可以看一下,关于ADO访问数据的例子:
http://blog.csdn.net/xsc2001/archive/2008/08/28/2841301.aspx