Paradox表如何用代码建立两个key?(100分)

  • 主题发起人 主题发起人 zs610
  • 开始时间 开始时间
Z

zs610

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中,可以用createTable来建立数据库11.db,
with Table1 do
begin
Active := False;
DatabaseName := '' ;
TableType := ttParadox;
TableName := ‘11.db' ;

{先检测要创建的帐簿文件是否已经存在}
if not FileExists(TableName) then begin
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name := 'Date';
DataType := ftDate ;
Required := True;
end;
{多定义一个时间列,用来避免日期主键重复,并可以使用自动维护索引 }
with AddFieldDef do begin
Name := 'Time' ;
DataType := ftTime ;
Required := true ;
end;
with AddFieldDef do begin
Name := 'Items';
DataType := ftString ;
Size := 40;
end;
end;

{ Next, describe any indexes }
with IndexDefs do begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do begin
Name := '';
Fields := 'Date';
Options := [ixPrimary];
end;
with AddIndexDef do begin
Name := 'f2';
Fields := 'Time';
Options := [ixCaseInsensitive];
end;
end;
{ Call the CreateTable method to create the table }
CreateTable;
end; { End Of If }
end;
用此种方法可以建立数据库,并且有个主索引date,但是我需要能够像在DataBase Desktop中的那样,在表结构中能够定义两个key,用date和time组成一个复合索引,如下:
FieldName Type Size Key
1 Date D *
2 Time T *
3 Items A 40

在代码中应该怎么来修改阿?高手帮帮忙!找了好久都没有找到方法。
 
这个问题那么难么?
怎么没人知道阿!
 
可以用create table (.... primary key (date,time))这种句型指定两个字段为主键
需要其他索引也可以用create index实现
 
已找到解决办法,把下面的这两段代码稍微改一下就可以了。

{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do begin
Name := '';
Fields := 'Date';
Options := [ixPrimary];
end;
with AddIndexDef do begin
Name := 'f2';
Fields := 'Time';
Options := [ixCaseInsensitive];
end;
改为 Add('','Date;Time', [ixPrimary, ixUnique]);
就行了。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
665
import
I
后退
顶部