使用数据采集卡采集数据,
采样率设置为1000(传回来的是长度为1000的numeric数组),
并且,要求必须在1秒内把这一次性采集来的1000条数据插入到表中,
要连续采集好几个小时,不知道大家有没有什么好办法推荐?先谢谢了!!注意:因为传回来的是数组,应该是不可以用select into之类的语句了!

解决方案 »

  1.   

    那就INSERT ... SELECT ...
      

  2.   

    http://hi.baidu.com/linjk03/blog/item/84371a546239b75dd10906f5.html
    LOOK THIS 
      

  3.   


    insert into 其实足矣
      

  4.   

    如果是.net的话可以用SqlBulkCopy,轻松搞定,1w/s也不是问题,参考http://blog.csdn.net/jinjazz/archive/2008/07/14/2650506.aspx
      

  5.   

    BULK INSERT 库名..表名 
    FROM 'c:\test.txt' 
    WITH ( 
    FIELDTERMINATOR = ';', 
    ROWTERMINATOR = '\n' 

      

  6.   

    谢谢大家的热情回复!主要是因为传出来的是长度为1000的一个数组,遍历需要时间,
    另外,如果用select ... insert into... 需要考虑语句的最大长度,所以,这个不可行;至于BULK INSERT,还没试,不知道是否可行,
      

  7.   

    这样的话等下测试这个方法:var 
    sSql:widestring;
    i : integer;
    sSql := 'select '+FloatToStr(arr[0]);
    for i:=1 to 999
      sSql := sSql + ' union all select '+FloatToStr(arr[i]);然后再一次执行语句中的内容。