用Delphi开发Paradox数据库时,如何创建具有重复字段的主索引?(200分)

  • 主题发起人 主题发起人 云游四海
  • 开始时间 开始时间

云游四海

Unregistered / Unconfirmed
GUEST, unregistred user!
各位网友:
我遇到一个棘手的问题:在用Delphi开发Paradox数据库时,当关键字段出现重复时,将出现异常。例如,在创建书目管理数据库时,包含“类别”、“出版社”、“作者”等字段,且将“类别”设为关键字段。但是,由于“类别”中可能有多条记录重复(如多条记录的“类别”可能都是“计算机类”),而导致出现异常。这个问题不仅出现在主索引中,正如您所看到的那样,除了“类别”外,“出版社”、“作者”等字段也可能出现重复录入(因为一个出版社发行了很多书籍)。请问:如何创建这种数据表及索引?请附上程序代码!!!并烦劳您E-mail(liuxiushan@sohu.com)给我。谢谢!谢谢!谢谢!
 
你可以给每个数据表都加上一个没有实际意义的row_id字段,
然后所有的关联都用这个字段进行关联。
我们这里都是这样做的。
 
增加一个字段,类型为自增类型即可!
 
对啊,用一个整型的字段类型作主关键字作为索引比用长字段类型的作主关键字要提高效率,
又避开了你说的问题
 
里不能换行?
 
没错,增加一整型字段一切都OK。
 
建复合索引不就行了?
我试了一下,用DataBase DeskTop建了一个Paradox 7的表:
Name Type Size Key
pubName A 12 *
ArtName A 12 *
BookName A 12 *
pubDate D
把三个字段的Key都选上.
加上数据:
pubName ArtName BookName PubDate
AAA aaa NNN 99-01-01
AAA aaa MMM 99-01-01 //可加入!
BBB bbb NNN 99-02-01 //也没问题
AAA aaa NNN 99-02-02 //报key violation错
应该达到你的要求了!
 
接上:
这时再到SQL Explorer中看aa.db的信息!
在它的indices中只有<Primary>一个分支 , 说明aa表只建了一个主索引!
但与其它表不同, 在<Primary> -- Fields下有pubName, artName, bookName三个分支
说明这三个字段组成了一个复合索引,而这个复合索引就是表的主索引
 
杜宝技高一筹!!!我用DataBase DeskTop试过了,可行!!!但是,我还没有试过用
Delphi代码能否实现。请您在方便时,附上Delphi代码的实现方法!!!谢谢!
 
后退
顶部