水晶报表使用CDO可以在内存中建立一个临时数据库,类似于VB的那个DataSet
来源:互联网 发布:大魔术师 知乎 编辑:程序博客网 时间:2024/04/29 16:42
//在水晶报表文件夹1.0下,使用前需要注册
#import "Cdo32.dll" no_namespace
ICrystalDataObjectPtr m_pCDO;
HRESULT hr1;
hr1= m_pCDO.CreateInstance("CrystalDataObject.CrystalComObject");
m_pCDO->AddField("Order ID",VT_BSTR);
m_pCDO->AddField("Company Name",VT_BSTR);
short st= m_pCDO->GetColCount();
USES_CONVERSION;//
SAFEARRAYBOUND pSab[1];
pSab[0].lLbound = 0;
pSab[0].cElements =2;
SAFEARRAY *psa;
psa = SafeArrayCreate(VT_BSTR,1,pSab);
BSTR *pBstr;
SafeArrayAccessData(psa, (void**)&pBstr);
*(pBstr) = SysAllocString(T2OLE("test1"));
*(pBstr+1) = SysAllocString(T2OLE("test2"));
_variant_t var;
VariantInit(&var);
var.vt = VT_ARRAY;
var.parray = psa;
try
{
HRESULT h1= m_pCDO->AddRows(var);
}
catch (_com_error e)
{
CString strComError;
strComError.Format("错误编号: %08lx/n错误信息: %s/n错误源: %s/n错误描述: %s",
e.Error(), // 错误编号
e.ErrorMessage(), // 错误信息
(LPCSTR) e.Source(), // 错误源
(LPCSTR) e.Description()); // 错误描述
AfxMessageBox(strComError);
}
SafeArrayUnaccessData(psa);
SafeArrayDestroy(psa);
但是在运行AddRow()时始终出错 类型不匹配,找了很长时间,没找到原因。网上例子一般是VB或者Web的。但是它们是可以的啊,晕啊。以后再找
- 水晶报表使用CDO可以在内存中建立一个临时数据库,类似于VB的那个DataSet
- vb.net使用水晶报表显示动态Dataset的数据
- 使用TClientDateSet 在内存中创建一个临时表
- 一个水晶报表绑定DataSet的实例
- VB中使用水晶报表编程的一种简单方法
- 在VB中使用水晶报表总结
- 向水晶报表中填一个DataSet(内含多个表)
- hsqldb在内存数据库中得使用
- 一个水晶报表绑定DataSet的实例【原创】
- C#中关于水晶报表绑定dataset
- 在VB中使用水晶报表的一种简易编程方法
- 在VB中使用水晶报表的一种简易编程方法
- 在VB中使用水晶报表的一种简易编程方法
- 在VB中使用水晶报表的一种简易编程方法
- [VB.NET]请教一个 水晶报表 问题!
- ASP.NET中水晶报表的使用
- ASP.NET中水晶报表的使用
- ASP.NET中水晶报表的使用
- 大学各系男生的求爱短信
- 动态模板列更新操作和分页
- 为什么会打嗝?
- Peer-to-Peer数据管理-2
- 学习12种动物精神
- 水晶报表使用CDO可以在内存中建立一个临时数据库,类似于VB的那个DataSet
- java 删除文件 创建文件的类
- 本地图片文件路径正则表达式
- 解决ASP.NET不能调试的问题。
- 苑姓起源——古老而孤独
- 用Java实现的Status Bar (3/3) - TestStatusbar.java
- 我在CSDN的第一篇BLOG
- 用Java实现的Status Bar (2/3)- StatusbarBuilder.java
- displaytag 是一个巨大的失望