从DBF到MDB数据倒入:
我用ADOTable增加数据后,无法直接查询到更新后的数据集,如果需要提交,应该怎么写呢?但是程序重新运行后,就可以看到增加的内容了!
- 同样的代码,原来倒入一个月(每月3个DBF库)数据就可以,现在改为根据时间变化,连续倒入数据,就不行了
查询我用的是下面的代码:
rst:=CreateOleObject('ADODB.Recordset');
 conn:=CreateOleObject('ADODB.Connection');
 conn.open('driver={Microsoft Access Driver (*.mdb)};DBQ=' +
   ExtractFileDir(Application.ExeName) + '\ESData.mdb');
 strSql:='select DISTINCT ofn from ESDBA order by ofn DESC';
 rst.open(strSql,conn,adOpenStatic,adLockOptimistic,adCmdText);
倒入数据用的是adotable!倒入数据后已经close,而且两个窗体分别实现查询和倒入。
查询的时候也是重新打开数据库的呀,因为查询的工作量比较大,能不能在倒入数据上给点意见?又谢各位大富翁!!兄弟有礼了

解决方案 »

  1.   

    奇怪,有现成的ado控件不用去创建ole对象,别告诉我你用的是delphi4哦
    with TAdoConnecton.create do try
      ConnectionString:='';//自己写,连接你的esdata.mdb,用jet oledb 4.0,比access driver爽得多。
      open;
      execute('select aa as field1,bb as field2 into eeee from [dbase III;database=ccc].ddd;');
      close;
    finally
      free;
    end;
    eeee,你的access表,ccc你的dbf所在目录名字,ddd你的dbf表之一。
      

  2.   

    插入的话,select into 改成insert into
      

  3.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
    http://www.csdn.net/develop/Read_Article.asp?Id=18623
      

  4.   

    to fontain:错误信息:insert into语法错误?
    不知道您有用过这种方法?
      

  5.   

    难道你不知道sql语法?这样写:
    insert into eeee select aa as field1,bb as field2 from [dbase III;database=ccc].ddd;
      

  6.   

    简单
    放两个ADOSETSET,一个指向DBF,另一个指向MDB,一边读一边写就可以.
      

  7.   

    同意 fontain()的说法,注意用insert into时候字段类型必须一致