先把dbf要导出的字段保存导(最好以二进制)文件中,然后再导入sql server

解决方案 »

  1.   

    只能写代码啦。如果只是字段名不一样,吧对应字段的名称统一后,使用sql的数据导入,也是一个办法。
      

  2.   

    采用sql server的分布式查询技术OpenRowSet:
    假定你的dbf目录为c:\dbf,现在你希望向sql server中的表1插入表2.dbf的数据
    Insert Into 表1
    select * from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;
    SourceDB=c:\dbf;
    SourceType=DBF',
    'select * from 表2')
    你可以根据你的情况对选择的字段作相应的处理
      

  3.   

    总算是可以存进去了,但为什么FOXPRO中记录的顺序与SQL中的不一样,怎么能让SQL中的记录显示顺序要FOXPRO中一样,盼专家解答!
      

  4.   

    Insert Into 表1(写上字段列表)
    select 写上字段列表
    from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;
    SourceDB=c:\dbf;
    SourceType=DBF',
    'select * from 表2')
      

  5.   

    openrowset/opendatasource读取数据都不能保证列序,所以建议的方法是写上列名,这样不会搞错对应关系.
      

  6.   

    对应关系是没有错,我的意思是在记录在库显示顺序变了,例如某条记录在FOXPRO中可能是第一条记录,导入到SQL中,可能就成了第30条记录,我的想法是让这中数据库中记录显示顺序一致。
      

  7.   

    如果是select * from table order by ID,ID为主建并且为自动增量,这样的显示和FOXPRO为一致,如果显示时没有ORDER by则不行。但这个客户喜欢去数据库直接看记录,而且有点没有自动增量的主建,所以就不一致了。
      

  8.   

    把id设置为主键(聚集索引的那种),这样无论在那里显示数据,都是按id的了,除非自己指定了另外的顺序.
      

  9.   

    用Insert Into 表1(写上字段列表)
    select 写上字段列表
    from openrowset('MSDASQL',
    'Driver=Microsoft Visual FoxPro Driver;
    SourceDB=c:\dbf;
    SourceType=DBF',
    'select * from 表2')
    速度最快!