有一含数据的 Paradox表,其中最后一个字段'id'为自增字段,现在想把 id 移到第一个字段

kmfangxun 2004-06-18 10:21:37
有一含数据的 Paradox表,其中最后一个字段'id'为自增字段,现在想把 id 移到第一个字段并且设为 Primary Key,要求不要改变已有id的值,请问如何编程实现?
...全文
101 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishiping 2004-06-19
  • 打赏
  • 举报
回复
最后删除原来的表t0,将t1改名为t0就可以了。
jishiping 2004-06-19
  • 打赏
  • 举报
回复
虽然我想不起来如何让Pardox表可以指定自增字段的值,但是楼主得问题,我已经知道怎么
解决了,就是用BatchMove函数就可以了。
还是新建一个临时表。假设原来的表(t0)的字段为 Name, ID,Sex,新的表(t1)字段为ID,Name,Sex,那么设定Table1指向新的表t1,Query1的SQL语句为 SELECT ID,Name,Sex
FROM t0
try {
Table1->Active = true;
Query1->Active = true;
Table1->BatchMove(Query1, batCopy);
}
catch(EDatabaseError& e) {
ShowMessage(e.Message);
}
Table1->Active = false;
Query1->Active = false;
jishiping 2004-06-19
  • 打赏
  • 举报
回复
从Paradox到Sql Server导数据,可以用SQL语句插入记录。Sql Server的SQL语句,支持
用户自己指定自增字段的值。比如:
Query->SQL->Text = "SET IDENTITY_INSERT TableName ON\n"
"INSERT INTO TableName VALUES(123, 'test')";
但是Pardox不支持 SET IDENTITY_INSERT 语句。可以肯定得是,Pardox表也是有办法的(
好几年前做过),现在想不起来了。
kmfangxun 2004-06-19
  • 打赏
  • 举报
回复
太好了,万分感激!!!
kmfangxun 2004-06-18
  • 打赏
  • 举报
回复
To:jishiping(JSP季世平)

可是这样作ID值会不会变了!谢谢,我试一下。
jishiping 2004-06-18
  • 打赏
  • 举报
回复
直接修改,可能是不行的。创建一个临时表格,将ID作为第一个字段。然后将老的Table中的
数据复制到新的Table中,最后删除老的Table,将新的Table改名。
kmfangxun 2004-06-18
  • 打赏
  • 举报
回复
自己顶一次,请大家给个思路也行!!!
kmfangxun 2004-06-18
  • 打赏
  • 举报
回复

刚刚在 Sql Server 试了一下,从Paradox到Sql Server导数据,一点问题也没有.
kmfangxun 2004-06-18
  • 打赏
  • 举报
回复
麻烦季老大有空的时候回忆一下,谢谢了?

我是想在升级工具自动把表改了,免得自己替用户手工修改(太累了).
jishiping 2004-06-18
  • 打赏
  • 举报
回复
以前,我曾经试过可以自己指定一个自增字段的值的,不过后来没有用,已经忘记是怎么做的了。
jishiping 2004-06-18
  • 打赏
  • 举报
回复
用cb自带的Database Desktop可以调整字段的位置吗(同时保证表中的数据不变)?如果可以的话,那么肯定可以编程实现。
kmfangxun 2004-06-18
  • 打赏
  • 举报
回复
试了几次,ID值确实被改变了,原有表数据的id从1-1000的数据已经被删除了,新表的id 总是从1开始而不是从1001开始。


但是用cb自带的Database Desktop修改的话,却可以保证id值没有变化. 不知道Database Desktop是怎么做到的?




1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧