是这样,程序有两个版本,一个是基于ACCESS2000数据库,另一个是基于SQL2000数据库。(表和表结构大部分相同)
我想请问各位,我要把基于ACCESS2000数据库的程序,升级到基于SQL2000数据库的程序,数据库如何导入,或者大家对于这样的情况是如何处理的
1,对于ACCESS的自动编号列要如何处理?
2,对于SQL2000主键列(自动增量),不能直接写数据,如何处理?
3,ACCESS数据库转到SQL2000,如何保留原来ACCESS数据库中的数据关联?由于是做一个升级按钮,所以,其他手动方式或利用其它软件的方式这里就请各位大牛忽略。

解决方案 »

  1.   

    首先这个问题在你设计程序之初就应该考虑到,你应该建一个数据处理的基类,比如TDataOperation,里面包括与数据库建立连接和操作各个表的任务
    然后建立两个子类TAccessOperate = class(TDataOperation)
    TSqlOperate = class(TDataOperation)然后用多态来实现对access和sql的操作
      

  2.   

    如楼上所说,如果设计时没有考虑,那么把数据库结构和程序里的SQL认真看一下,在倒入数据的时候把该改的地方改一下......
      

  3.   

    楼上的朋友1楼的情况,不可能实现了。因为是程序是原来项目留下来的,我只负责了基于ACCESS2000数据库的修改,2楼你说的情况是否和一条条数据插入的情况相同呢(表结构不相同的表,先修改表结构)?可是请问对于主键列(自动增量列),我要怎么处理呢?
      

  4.   

    如果数据是一条条插入的话,那么我先把SQL2000上的表主键的自动增量属性去掉,然后一条条写数据,之后再把自动增量的数据恢复,应该可以做到。数据关联也保留。但是如果数据量比较多,速度不是很慢?
      

  5.   

    首先可以用DTS导入到MS另一个别名的库
    自增的,你确保ID不会重复的话
    可以 SET IDENTITY_INSERT yourtable ON ,再insert,最后SET IDENTITY_INSERT yourtable OFF
      

  6.   

    他是从access何SqlServer间导 ,不都是SqlServer所以很麻烦
      

  7.   

    使用DTS来导入数据
    需要注意的是自增字段需要重新设置!