我想把数据库中的数据导出到一个文件,然后再把这个文件中的数据导入到另一个数据库中,我是用的adodataset控件,用的“savetofile”和“loadfromfile”两个函数,然后用updatebatch更新,但是就是存不到数据库中,这是为什么?有哪位大虾能够帮我看看吗?下面是更新程序
      ADODataSet2.Active:= False;
      ADODataSet2.CursorType:= ctKeyset;
      ADODataSet2.LockType:= ltBatchOptimistic;
      SQLStr:= 'SELECT * FROM ' + EditTableName2.Text + ' WHERE ' +
               EditIDFieldName.Text + ' < 0';
      ADODataSet2.CommandText:= SQLStr;
      ADODataSet2.Connection:= ADOCon2;
      ADODataSet2.Open;
      ADODataSet2.LoadFromFile(TempFileName);      ADODataSet2.UpdateBatch(arAll);
      
     怎么会不更新呢?能够帮我解决吗?谢谢了!

解决方案 »

  1.   

    为什么不用克隆数据集的方法呢?Email:[email protected]
      

  2.   

    比如把ADODataSet1已经打开的数据集通过ADODataSet2.Clone(ADODataSet1);
    ADODataSet2就可以获得一样的数据了,再入另外的库。
      

  3.   

    没有更新动作,当然不会更新,建议再用一个adoquery连接到导入的数据表,然后,循环。
      

  4.   

    摘自CSDN
    /*******  导出到excel
    EXEC master..xp_cmdshell 'bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""'/***********  导入Excel
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions/*动态文件名
    declare @fn varchar(20),@s varchar(1000)
    set @fn = 'c:\test.xls'
    set @s ='''Microsoft.Jet.OLEDB.4.0'',
    ''Data Source="'+@fn+'";User ID=Admin;Password=;Extended properties=Excel 5.0'''
    set @s = 'SELECT * FROM OpenDataSource ('+@s+')...sheet1$'
    exec(@s)
    */SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
    可以用下面的语句:
    /** 导入文本文件
    EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'/** 导出文本文件
    EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'