怎样实现以下功能
一个DBF表,怎样不管其是vfp3.0,vfp6.0或foxbase或dBase 5.0,都可以导入sqlserver,
如果Sqlserver有这个表,就覆盖已有的表

解决方案 »

  1.   

    1:DTS
    2:
    在SQL中直接执行
    select * from 
    OpenDataSource('Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\aaa";User ID=Admin;Password=;Extended properties=dBase 5.0')
    ...bbb
      

  2.   

    以上答案不是我想要的
    可能判断dbf的版本很难,就算了
    但是至少帮我解决以下的问题
    如果Sqlserver有这个表,就覆盖已有的表(或删除这个表),如没有就新建立
    我现在就想了知道这个判断怎样写
      

  3.   

    告诉你一个最快的方法,用SQLServer连接DBF
    在SQLServer中执行
    SELECT * into bmk
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
     'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
    这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中,
    速度是最快的
    把压箱底的方法都告诉大家
    在Form上放一个ADOConnection,连结指向目标Access库
    比如txt文件在c:\temp\aaaa.txt
    就执行
    ADOConnection.Connected := True;
    ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');
    就一切Ok了,这个方法一定行的,我好不容易才研究出来的
    有了这两个例子,异构数据库之间导数据的问题就举一反三,迎刃而解了。把Excel导入到Access中,同txt类似
    select * into <table name> from [excel 8.0;database=<filename>].[<sheetname>$]我最讨厌别人用BatchMove导数据了,明明一个SQL的事情,偏要
    我的目标是让大家抛弃BatchMove  *****************以上转自大富翁******************‘
      

  4.   

    select * into xxx from 
    select 列名1,列名2 from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\报表目录";User ID=Admin;Password=;Extended properties=dBase 5.0')...表名
      

  5.   

    select * into xxx from 
    OpenDataSource('Microsoft.Jet.OLEDB.4.0',
    'Data Source="c:\aaa";User ID=Admin;Password=;Extended properties=dBase 5.0')
    ...表名
      

  6.   

    if object_id('表名') is not null
      dorp table 表名
      

  7.   

    用事件探测器,先导入一个表捕捉命令,用SQL执行这个命令