[转贴]
在Form1.Formcreate 事 件 中 写 入 如 下 代 码, 程 序 启 动 时, 将 自
动 检 测 是 否 存 在
数 据 库 别 名Cntssamp, 如 果 没 有 则 建 立 之; 自 动 检 测 别 名Cntssamp 中 是 否 存 在 表
格TSK( 图 书 库), 如 果 没 有 则 自 动 建 立 表 格TSK。
procedure TForm1.FormCreate(Sender: TObject);
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 table1do
begin
Active:=false;
DatabaseName:='Cntssamp';
{数据库别名}
TableName:='TSK';
{表格名}
TableType:=ttParadox;
{数据库类型}
with FieldDefsdo
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 IndexDefsdo
begin
{增加索引}
Clear;
{按书号字段建立主索引}
Add('SHSY','SH',[ixPrimary,ixUnique]);
end;
CreateTable;
{创建表格}
end;
end ;
ap.free;
{释放变量ap}
end;