用户归档里面有个列是记录时间的,需要查询某一时间段内的归档数据
问题补充:
起始时间和结束时间都是用字符串变量表示的,希望实现动态查询。是用C脚本写的。
最佳答案
列是Data/Time格式吗?如果是通过用户归档控件来实现,可以用脚本控制其属性Filter:
Dim uaTable
Set uaTable = ScreenItems("uaTable")
uaTable.Filter = "DT > '2008-10-10 00:00:00.000' AND DT < '2008-10-12 00:00:00.000'"
---------------------
动态查询比较麻烦,需要使用uaXXX函数,多年以前做过,现在都忘光了。
如果真要使用脚本的话,倒还不如不使用用户归档,利用VBS和ADO完全可以实现你的要求,而且不要银子,呵呵。
-------------------------
关于如何使用C脚本访问用户归档,可以见:
WinCC Information System->选项->用户归档->用户归档脚本
大体的步骤:
UAHCONNECT hConnect=0;
UAHARCHIVE hArchive=0;
char szSQL[255];
long Index;
uaConnect(&hConnect);
uaQueryArchiveByName(hConnect,"dcount",&hArchive);
printf("\r\n%d",hArchive);
sprintf(szSQL,"DT > '2005-05-10 00:00:00.000'");
uaArchiveOpen(hArchive);
uaArchiveSetFilter(hArchive,szSQL);
uaArchiveRequery(hArchive);
uaArchiveGetCount(hArchive,&Index);
printf("\r\n%d",Index);
//-------------------
//详细操作
//-------------------
uaArchiveClose(hArchive);
uaReleaseArchive(hArchive);
uaDisconnect(hConnect);
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275582.html