三、一个实例 在Form1.FormCreate事件中写入如下代码,程序启动时,将自动检测是否存在数据库别名Cntssamp,假如没有则建立之;自动检测别名Cntssamp中是否存在表格TSK(图书库),假如没有则自动建立表格TSK。 PRocedure TForm1.FormCreate(Sender: TObjec var ap:TStringList; {字符串列表变量} answer:Integer; begin ap:=TStringlist.Create; Session.GetAliasNames(ap); {取得别名列表} if (ap.IndexOf(Cntssamp)=-1) then {判定别名是否存在} begin answer:=application.MessageBox(别名Cntssamp不存在,现在创建吗?,BDE信息窗口,mb—OKCancel);{增加一个名为Cngzsamp的数据库别名} if answer=IDCANCEL then begin ap.Free; Exit; end;
Session.AddStandardAlias(Cntssamp,c:/delphp11,Paradox); Session.SaveConfigFile; {BDE配置文件存盘} end ;
ap.Clear; {取得别名Cngzsamp中的所有表格名称列表} Session.GetTableNames(Cntssamp,,False,False,ap); if (ap.IndexOf(TSK)=-1) then {判定表格是否存在} begin answer:=Application.MessageBox(别名Cntssamp中不存在表格TSK,现在创建吗?,表格信息窗口,mb—OKCancel); if answer=IDCANCEL then
begin ap.Free; Exit; end;
with table1 do begin Active:=false; DatabaseName:=Cntssamp; {数据库别名} TableName:=TSK; {表格名} TableType:=ttParadox; {数据库类型} with FieldDefs do begin {增加字段} Clear; Add(SH,ftString,30,False); {书号 String(30)} Add(SM,ftString,30,False); {书名 String(30)} Add(CBS,ftString,20,False); {出版社 String(20)} Add(CBRQ,ftDate,0,False); {出版日期 Date} Add(YS,ftInteger,0,False); {页数 Integer} end;
with IndexDefs do begin {增加索引} Clear; {按书号字段建立主索引} Add(SHSY,SH,[Primary,ixUnique]); end;