如何建立paradox文件的索引(100分)

  • 主题发起人 主题发起人 网迷
  • 开始时间 开始时间

网迷

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一程序中的分支窗体中设置如下语句datamodule1.booktable.indexfieldnames:='bookname';执行程序到此处便显示no index for fields 'bookname'的错误信息,后来在大富翁论坛提出此问题有大侠说是我没有建立索引的原因,请问各位大侠是否是此原因,如是该如何建立索引。
 
看帮助中的 Local SQL Guide
Create index

CREATE INDEX CustDate ON "Orders.db" (CustNo, SaleDate)
手工在Database Desktop建立也可
 
就是没有建立索引的原因,
打开Delphi自带的工具Database desktop,打开你要建立索引的表,按下restructure按钮,
选择Table propertries下的secondary indexes选项,按下define按钮,选择所要建立索引
的字段。
 

看看Database desktop 的帮助文件吧,会让你懂不少的
 
顺便问一个问题 用DBD建立一PARADOX表的时候 那个加 * 的地方是做什么用的 我一直以为
那就是定义索引字段了
 
*是关键词的意思
就是在记录中这条记录的数据应是唯一,如果有相同的便会出错,也是作为索引的依据
所以你在设置second index 之前必须设置*
 
就是像aerobull说的那样了。
 
to 浪里白条:
关键词 唯一 和索引到底有什么关系 *不代表索引
那为什么设置的时候只有secondary index?the first index在哪?
 
*当然是可以作为索引的
当你在设置second 时出错,是因为你没有设置*(关键词)
这样吧比如有一个表 有学号字段,名字 各学科的成绩等等
姓名可能是一样的 所以关键词就必须为学号 而当你又想以名字查询时,
可设置名字为secondary index
are you understand?
 
索引分两种:IndexFiled:以字段为索引。
及IndexFilename:以索引文件进行索引。
 
to 浪里白条:
这样设置好意后,如何查询姓名?
谢谢
 
re wandelphi:
begin
table1.indexfieldnames:='姓名';
if table1.findkey('wandelphi') then showmessage('记录查到') ;
end;
找点书看看吧
 
re wandelphi:
var
s:string;
begin
table1.indexfieldnames:='姓名';
s:=edit1.text;
if table1.findkey() then showmessage('记录查到') ;
end;
刚才笔误‘[]’没加
 
在DESKTOP中建立索引,然后在程序中引用:
unit9.DataModule9.Table1.IndexName:='index1';
 
多人接受答案了。
 
多人接受答案了。
 
后退
顶部