数据库是sql server,现在要实现这样的功能,在地方上使用的数据要能导入软盘,然后带到市里,市里将上报的数据到入数据库,数据实现追加,如何实现,我现在的数据库叫db1,需导入的表有table1,table2,如何实现将表导入软盘,然后又实现追加? 导入的时候有重复数据如何实现重复数据的删除和合并? 谁能回答对一定加分。

解决方案 »

  1.   

    用Sql Server的opendatasource功能吧,建立一个空的Access文件,建立相应的数据库结构。
    直接使用insert into opendatesource('','') select * from table1将数据插入Access文件中。
    导入数据时使用主键进行判断,重复的就先删除,然后将Access中的数据整体插入到SqlServer中。
      

  2.   

    我实现过你的功能。1.导出  先建立导出存储过程;将所有要导出的数据保存到临时表中,如将Table1可的要导出的数据保存到##Table1_tmp 中。开始导出时执行存储过程,然后将临时表中的数据保存到文本中,最后将多个文本压缩生成的文件很小。2.导入  建立导入存储过程从临时表中将要的数据写入当前表中.将压缩文件解压,将文本文件写入到临时表中,执行导入存储过程.用存储过程的好处是如果你想修改导入导出的表或插入的方式可不用重新编译程序.
    你的程序只是完成将给定的表导成文本,压缩,  将文件转化成临时表.
      

  3.   

    那我这句哪儿有错误,为运行不了?
     adoquery1.SQL.Text:='SELECT * INTO OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',''c:\db1.mdb'';''sa'';''12345678'',固定资产表) AS a FROM 固定资产表 '';
      

  4.   

    to:ZyxIp(绝望中的平静):
    你写出具体的代码吗,或发到我的信箱[email protected]我收到后如果可以一定给你加分。
      

  5.   

    ZyxIp(绝望中的平静) :你要是给我导入导出的代码就更好了,怕有时候找不到你,你能留个qq吗?我的15721663
      

  6.   

    方法有两种:
    一、采用BCP(必须是mssql server数据库)
    二、用ClientDataSet控件的SaveToFile保存导出文件,LoadFromFile导入文件,
    要导入数据库还得调用下面过程:
    procedure TForm1.DataImport(DataQA:TClientDataSet;sqlstr:WideString;loadfile:String);
    var
      i:Integer;
      Field:TField;
    begin
      try
        with CDS_in do begin
          Close;
          CommandText:=sqlstr;
          Open;
        end;
        with DataQA do begin
          LoadFromFile(loadfile);
          First;
          while not eof do
          begin
            CDS_in.Append;
            for i:= 0 to CDS_in.FieldCount-1 do
            begin
              Field:= FindField(CDS_in.Fields[i].FieldName);
              if Field <> nil then
              begin
                if not Field.ReadOnly then
                  CDS_in.FieldByName(Field.FieldName).Value:=FieldByName(Field.FieldName).Value;
              end;
            end;
            Next;
          end;
        end;
        CDS_in.ApplyUpdates(-1);
        CDS_in.Close;
      except
        Application.MessageBox('数据导入失败!请您重试...','提示信息',0+MB_IconError);
      end;
    end;