帮我看下用VC访问wincc历史归档代码

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:28:49
我利用ADO,用vc写的一个简单的访问wincc归档在sql中的数据的MFC程序,但是编译能通过,就是读不出数据来。我把关键的代码贴在下面:
void CAdo1Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
RECT rect;
m_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;

CoInitialize(NULL);
_ConnectionPtr wincc_con;
_RecordsetPtr wincc_rec;
wincc_con.CreateInstance(__uuidof(Connection));
wincc_rec.CreateInstance(__uuidof(Recordset));

CString winccsql;
winccsql.Format("Provider=WinCCOLEDBProvider.1;Catalog=CC_MYOPC_09_05_13_20_30_10R;Data Source=HUST-CF3B188CF4\\WINCC"); //CC_MYOPC_09_05_13_20_30_10R是我在sql2005中查看到的,HUST-CF3B188CF4是我的机器名,也是在 sql2005中可以查看到,Provider究竟是什么我也不知道,这个我是按网上查看的资料写的
_bstr_t exesql("TAG:R,'ProcessValueArchive\\NewTag1_inter','2009-05-20 04:10:00.000','2009-05-20 04:15:00'"); //时间已经加了8小时(格林威治时间时间的原因),ProcessValueArchive是我的变量记录里的归档名称,NewTag

连接字符串没有问题,如果有问题连接的时候就会报错。

主要是的SQL语句写的有问题,另外还要注意时差,你用下面这个试试:

_bstr_t exesql("TAG:R,'ProcessValueArchive\\NewTag1_inter','0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'");  //读最近10分钟的数据

字段见附图: