求助:批量读取 InSQL数据库数据的方法 点击:1393 | 回复:3



fanjzh

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2004年12月12日
发表于:2004-12-27 11:58:00
楼主
请教各位高手: 我采用ADO连接InSQL数据库,分别从 runtime.dbo.Analoglive 和DiscreteLive读取其实时数据,我依据一个Tag表读取需要的tag的值,然后将其数据放入对应的缓存中。 当前采用的方法是通过一个SQL语句来完成:SELECT * FROM runtime.dbo.Analoglive WHERE TAGNAME='tagname'(此语句不太完整,只用于说明方法),每次只能取回一个tag的值,因为我需要的tag较多,约为400个,此方法较为费事且费时,哪位高手请指点,可以批量取数,在此不胜感激!



fanjzh

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2004年12月12日
发表于:2004-12-30 09:13:00
1楼
自问自答: 我想到一个节省时间的办法,先直接进行无条件的查询,然后建立一个映射,那么我就可以从映射中快速的查找我需要的tag的值,假设库中有4000个tag,先建立基于tagname到其value的映射,利用映射的快速查找优势,在其中找到我需要的那400个tag的value。 我觉得通过网络执行400次的查询时间肯定要大于执行一次查询再加上400次数据映射的查找时间。 此方法还未进行测试,但我觉得还是可以的,因为网络的时间是不变的,但在当地进行搜索的时间是与计算机性能相关的,这一时间应该可以忽略的。

xuxu0104

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2011年4月06日
发表于:2011-05-17 10:45:17
2楼

选中要执行的语句,再执行试试看

藥棠

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:184
  • 注册:2006年4月13日
发表于:2011-05-20 10:16:06
3楼
SELECT * FROM runtime.dbo.Analoglive WHERE TAGNAME in (‘tagname1‘,‘tagname2‘......)

热门招聘
相关主题

官方公众号

智造工程师