为什么C脚本中ADODB.RecordSet对象rst值为空

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

/*********连接数据库操作,和查询SQL语句 ********/
__object *conn, *rst;

char *connstr="Provider=WinCCOLEDBProvider.1;Catalog=CC_fortest_10_05_07_08_02_45R;Data Source=.\WinCC";

char *sql=" select  *  from UA#DailyReport   ";//where riqijiu like '2010-5-10%'

conn = __object_create("ADODB.Connection");

rst = __object_create("ADODB.RecordSet");

conn->Open(connstr);

if (conn->State==0)
{
   MessageBox(NULL,"连接数据库失败","失败!",MB_OK);
}

else
{

rst->Open(sql,conn);

MessageBox(NULL,"查询语句有误","失败!",MB_OK);//测试断
/*...后续还有代码,想法是将查询到的数据,在Excel中显示*/

运行测试 跳出 “查询语句有误,失败”
参考代码http://www.ad.siemens.com.cn/club/bbs/post.asp?myreply=&b_id=5&a_id=528569&s_id=0&num=17#anch

错误的地方在哪里,应该如何改,顺便问下在Excel中显示的大概方法。
请多指教!

问题补充:
当然 UA#DailyReport表中是有数据的,
为什么我参考的网址中他的程序可以,我的不行!

最佳答案

你的问题出在你使用的数据源是Provider=WinCCOLEDB,WinCC OLEDB是用于变量记录,报警记录这种压缩格式的数据,你的参考文档使用的是Provider=SQLOLEDB SQLOLEDB是MS OLEDB可以用于对普通的表进行读写
 *sql=" select  *  from UA#DailyReport   ";//where riqijiu like '2010-5-10%'你的这个查询条件应该使用SQLOLEDB 不能用WINCC OLEDB

提问者对于答案的评价:
方向对了,
不过又有问题了普通链接:
char char *connstr="Provider=SQLOLEDB.1;Integrated Security=SSPI;InitialCatalog=CC_fortest_10_05_07_08_02_45R;Data Source=(local)\\WinCC";
数据库连接成功,但是rs值为空

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc269184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐