如何能把数据库的xml类型导出到文件
怎么能把数据库的xml类型导出到文件?
数据库某张表假设只有2列,一列是主键,另一列数据类型为xml。
用CRecordset派生一个类对应这张表的话,表中xml类型应该对应vc中什么数据类型呢?
用CString的话貌似到一定长度后面就读不出来了。怎么能把这个xml数据类型里的内容导出到一个xml文件里呢?
我写的一段代码:
在XML列中数据很长的时候在上面第四行open之后CString只有前面一段字符串,后面都没了。再长一些还会异常
------解决方案--------------------
看看是不是因为编码格式不同的原因
------解决方案--------------------
不会啊,可以读取出来呀,你是怎么读取的,是用ADO吗?
用ADO打开读取集,然后再用GetCollect读取就行了,读取后转成成CStirng类型就行了。
这是我的博客,你可以看一下,关于ADO访问数据的例子:
http://blog.csdn.net/xsc2001/archive/2008/08/28/2841301.aspx
数据库某张表假设只有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