我做了一个数据采集的程序,但是想把它改成每次开始采集数据的时候就生成一个数据库,下一次再打开程序的时候又生成一个数据库.请问该如何做?
而且这样做有一个问题就是查询的时候怎么办?用Ado控件,连接的数据库是固定的吧?能在程序里面动态地设置吗?但是这样又该如何判断哪个数据库才是符合条件的?比如有3个数据库,里面有"电流"和"时间"两个行,按照时间查询,怎么才能知道哪个数据库才是符合条件的?望各位高手不吝赐教!!!

解决方案 »

  1.   

    可以,连接的数据库可以在initialcatlog属性里设置,不过生成一个新的数据库可能就得用command对象了,我想你所说的数据库应该是表的意思吧
      

  2.   

    引用:Microsoft ActiveX Data Objects 2.5 Library
    或以上版本,用类似下面的方法Sub file()
        Dim istr As New ADODB.Stream
        Dim iRe As New ADODB.Recordset
        With istr
            .Open
            .Type = adTypeBinary
            .LoadFromFile ("c:\a.xls")
        End With
        ire.open "表名",数据库连接字符串,1,3
        ire.addnew
        ire("保存文件的字段名")=istr.read
        ire.update
        ire.close
        istr.close
    End Sub
    http://expert.csdn.net/Expert/topic/2339/2339924.xml?temp=.1910517
      

  3.   

    你的你的意思应该是生成新表吧??
    我觉得没有必要生成新表呀,每次采集就生成新表岂不是慢慢的会变成成千上万的表??
    你应该是增加纪录的概念(从你将表说成数据库就知道你对数据库一点都不懂啊,别骂我哦)
    既然有个时间列,你可以这样嘛:
    假设表为t1 , 有两列: 电流 时间
    那么每次采集的时候可以往这个表添加纪录呀(有个时间列所以以后也可以判断,没有也可以加一个标志采集时间的列呀)
    比如:10.1采集得到
    电流 时间
    0.2  2003-10-01 08:20
    0.3  2003-10-01 09:30
    那么下次采集再往里添加
    0.15 2003-10-02 03:20
    0.23 2003-10-02 20:20
    .....
    这样查询的时候只对这个表t1进行判断帅选出你要的记录就可以了
    比如我要查询出10.2号采集的数据可以这样写
    Dim rs As New ADODB.Recordset
    rs.Open "select * from t1 where convert(varchar(10),时间,120)='2003-10-02'"
    Set adodc1.DataSource = rs
      

  4.   

    引用:Microsoft ActiveX Data Objects 2.5 Library1.建库:
    Dim cat As New ADOX.Catalog
    cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\new.mdb"建表用create table .... (SQL)2.连接:引用MICROSOFT OLD DB service 1.0Dim DataLink As MSDASC.DataLinks
    Dim sConnect As StringOn Error Resume Next
    Set DataLink = New MSDASC.DataLinks
    sConnect = DataLink.PromptNew
    Set DataLink = Nothing
    If sConnect = "" Then Exit Sub
    Set Conn = Nothing
    Set Conn = New ADODB.Connection
    Conn.ConnectionString = sConnect
    Conn.Open
      

  5.   

    对不起前面不是给你的,
    楼主可能用的数据库很老,例如:dbaseIII,所以就说成数据库(dbf为数据库)
    同意yoki(小马哥)说得
    你还可以按一定时间(半个月)或记录数添加表,不见得放在一个表中
      

  6.   

    应该是往原有的数据表中添加,
    你可以建立一个临时表,用来存放一次抄收的数据,当程序关毕的时候将本次抄收的数据存在原有的数据库中,这样操作起来能简单一些,而且速度还比较的快。同意 : yoki(小马哥) ( )  所说的。
      

  7.   

    引用:Microsoft ActiveX Data Objects 2.5 Library
      

  8.   

    TO: yoki(小马哥) 
    你说的和我原来做的一样!
    但是公司老大提了新要求.他是叫我每次新建一个数据库.理由为:
    1,时间一长,数据库量太大,如果要拷贝出来很不方便
    2,因为每次进行的工艺不一样,所以时间的长度也不一样,最好还是按照工艺来存,所以不能只用一个表
    3,我晚上看了书知道用SQL里面的CREAT DATABASE 可以创建一个数据库
    但是觉得还是多生成几个表比较方便
    但是那样的话不还是一个数据库吗?第一个条件不是还是不符合吗?郁闷!
      

  9.   

    你用的什末数据库?MSSQL吗?用存储过程动态建数据库就可以了!
      

  10.   

    楼主,能将你的需求将清楚一点吗?1、你用的是什么数据库? 2、用Ado控件可以连接不同的数据库
      

  11.   

    1,我用的是ACCESS.2,比如有两个数据库,一个是A,一个是B
    ADO先和A连
    把数据存到里面(比如说是100个)后
    再和B连