登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:在WinCC的全局动作中怎样读取数据库?

点击:3146 回复:7

在全局动作中:
创建一个“ADODB.Connection”、“ADODB.Recordset”对象后,
Recordset对象->open("select * From Table");
Recordset对象->Fields(0)......;
现在的问题是系统内存会溢出,
可能是动作每执行一次,就会创建一个对象,
如果
对象.Free;
对象.Destory;

定义成全局对象,SQL语句又不执行了,
请大侠们指教!
05-06-25 22:48
定义成全局对象,在使用时要在全局动作中引用
05-06-25 23:40
//=============================
__object *ADOCon,*ADODat;
函数:
void ConnectToDB()
{
ADOCon=__object_create("ADODB.Connection");
ADODat=__object_create("ADODB.RecordSet");
}
//=============================
动作:
extern __object *ADOCon,*ADODat;
if (ADOCon->state==0)
{
ConnectToDB();
}
if (ADODat->state==0)//(1)
{
ADODat=__object_create("ADODB.RecordSet");
}
ADODat->open();//open有参数,不写了
//============================
现在的问题是(1)句不写,不能执行;
写了内存就会不断往上涨,直到溢出。
请高手帮忙看一下,怎么改?
05-06-28 08:29
我是定义的全局对象,
不过“RecordSet”对象仍要在全局动作中再创建一次,
才能连到数据库,我想因为这内存才会不断占用,
请问,创建的对象怎样释放?
对象->Free;
对象->Destory;
对象->Clear;
对象->Release;
都不行,内存仍然往上涨。
在脚本中定义成局部对象也不行,不知道为什么?
05-06-28 15:29
这个问题很偏吗?
不用编程处理数据么?
大侠们不用手写SQL语句么?
05-06-28 22:06
不会
05-06-29 10:48
NND,今天终于搞掂了,感谢各位的支持!
05-07-01 09:40
楼主你怎么搞定的啊?讲来听听呢,
能否发个邮件给我共享一下啊,谢谢先!!!!!!!
njzhaolei@126.com
05-07-26 13:29

工控新闻

更多新闻资讯