签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
Provider=WinCCOLEDBProvider.1;Initial Catalog=CC_OS_1__17_10_24_13_39_55R;Data Source=.\WINCC
Tag:R,'SystemArchive\pidLevel/1.MV#Value','0000-00-00 00:10.00.000','0000-00-00 00:00.00.000'
//报错内容
Microsoft OLE DB Service Components: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
ADODB.Recordset: The connection cannot be used to perform this operation. It is either closed or invalid in this context.
property Close not available
//C脚本
#pragma code("kernel32.dll")
#define GetObject GetObject
__object *cn=NULL;
__object *rs=NULL;
int i,RsCount;
char sql[256];
char* DataSourceNameRT;
char LocalComputerName[30];
char connstr[256];
//我试过了可以访问SQLOLEDB用户归档,但是过程值归档不行。
DataSourceNameRT = GetTagChar("@DatasourceNameRT");
strcat(connstr,"Provider=WinCCOLEDBProvider.1;Initial Catalog=");
strcat(connstr,DataSourceNameRT);
strcat(connstr,";Data Source=.\\WINCC");
printf("%s",connstr);
cn=__object_create("ADODB.Connection");
rs=__object_create("ADODB.RecordSet");
strcat(sql,"Tag:R,'SystemArchive\\pidLevel/1.MV#Value','0000-00-00 00:10.00.000','0000-00-00 00:00.00.000' ");
printf("%s",sql);
cn->open(connstr);
rs->Open(sql,cn,3,1);
//RsCount=rs->RecordCount;
//rs->MoveFirst();
rs->Close;
cn->Close;
救救我这个小菜鸟吧,不要VBS的脚本。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1460272&b_id=5&s_id=0&num=12
好像是没有授权。Connectivity Pack是要授权的
用户归档记录是非压缩数据,建立与数据库的连接后,可以直接用SQL查询,等于直接操作数据库。归档数据是压缩数据需要借助Connectivity Pack来提供数据,Connectivity Pack安装授权才能提供服务。
为啥不用VBS呢,官方的例子都是VBS脚本的啊
c语言表示看不懂啊,不明白
Provider=WinCCOLEDBProvider.1;Catalog=CC_OS_1__17_10_24_13_39_55R;Data Source=.\WINCC
将连接字符串中的“Initial” 删除。
向大神磕头。成了。
现在有新问题哦!求大神再伸神奇之手。
Provider=WinCCOLEDBProvider.1;Catalog=CC_OS_1__17_10_24_13_39_55R;Data Source=.\WinCC
Tag:R,('SystemArchive\pidLevel/1.MV#Value'; 'SystemArchive\pidLevel/1.PV_Out#Value'; 'SystemArchive\pidLevel/1.SP#Value'),'0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'
0 //返回的数据个数总是0,我用trend控件看了,都有数据哦。难道跟一楼说的那样,需要授权,我记得这个组件好像已经免费了啊!~
我怀疑是你的归档变量名中的"#"惹的祸。
用ValueID代替ValueName吧。不过这又牵涉到运行数据库中的归档表(Archive)了。
这个表中,有ValueID,ValueName字段,需要你用ValueName来查找到ValueID。
你的WinCC版本是多少?
我记得WinCC V6.0 SP1只支持单变量查询;从WinCC V6.0 SP3开始吧,才支持多变量查询。
你再试试单变量查询,看看能不能查询到数据。
引用7楼详细内容:
宁工,您好,可不可以将您C脚本代码共享一下,让我学习学习,先谢谢啦!
学习一下………………
宁工太谦虚。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录