技术论坛

 C脚本使用WinCCOLEDBProvider为何总是报错呢?

返回主题列表
作者 主题
宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
楼主    2018-01-31 21:14:16
主题:C脚本使用WinCCOLEDBProvider为何总是报错呢?

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的脚本。

宁超
至圣

经验值:11564
发帖数:1009
精华帖:39
8楼    2018-02-06 05:03:17
精华帖  主题:回复:C脚本使用WinCCOLEDBProvider为何总是报错呢?
找到原因了。连接数据库时cn->cursorlocation=3就返回了数据。仔细上网百度了ADO的接口才发现是少组态了接口数值。其实对比:vbs连接数据库的代码就应该发现这个问题的。唉,菜鸟路多坎坷
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。