100 分 请教怎样动态生成Paradox数据库?(100分)

  • 主题发起人 lctuchen
  • 开始时间
L

lctuchen

Unregistered / Unconfirmed
GUEST, unregistred user!
Paradox数据表:

课程表(课程代号,课程名)
成绩表(姓名,课程1,课程2......,课程n)

怎样利用课程表中课程名这一字段动态生成成绩表?
 
var table1:Ttable;
begin
table1:=ttable.create(self);
with table1 do
begin
active:=false;
tablename:='C:/KeChengMing'+'.db';
tabletype:=Ttparadox;
with fielddefs do {此方法为KeChengMing.db增加字段}
begin
clear;
add('BIANHAO',ftSTRING,6,false);
add('HAO', ftstring,12,false); {增加具体的字段名、类型}
end;
With indexdefs do {此方法为KeChengMing.db增加索引字段}
Begin
Clear;
Add('BIANHAOindex','BIANHAO',[ixprimary]);
end;
createtable;
end;
end;
 
var
ap:tstringlist;
answer:integer;
begin
if (radiobutton1.Checked=false)and(radiobutton2.Checked=false) then
begin
showmessage('请选择表格类型');
radiobutton1.SetFocus;
exit;
end
else
if edit3.Text='' then
begin
showmessage('请输入数据库别名');
edit3.SetFocus;
exit;
end
else
if edit4.text='' then
begin
showmessage('请输入表格路径');
edit4.SetFocus;
exit;
end
else
begin
try
ap:=tstringlist.Create;
session.GetAliasNames(ap);
if (ap.IndexOf(edit3.text)=-1) then
begin
answer:=application.MessageBox((pchar('别名〖'+edit3.text+'〗不存在,现在创建吗?')),'BDE信息窗口',mb_okcancel);
if answer=idcancel then
begin
ap.Free;
exit;
end;
if radiobutton1.Checked=true then
begin
session.AddStandardAlias(edit3.text,edit4.Text,'paradox');
session.SaveConfigFile;//建数据库别名
end;
if radiobutton2.Checked=true then
begin
session.AddStandardAlias(edit3.text,edit4.Text,'DBase');
session.SaveConfigFile;
end;
end;
ap.Clear;
session.GetTableNames(edit3.text,'',false,false,ap);
if (ap.IndexOf(edit4.text)=-1) then
begin
answer:=application.MessageBox((pchar('别名中表格〖'+edit4.text+'〗不存在,现在创建吗?')),'表格信息窗口',mb_okcancel);
if answer=idcancel then
begin
ap.Free;
exit;
end;
with Table3 do
begin
active:=false;
databasename:=edit3.text;
tablename:=edit4.text;
if radiobutton1.Checked=true then
begin
tabletype:=ttparadox;//*.db的数据表
end;
if radiobutton2.Checked=true then
begin
tabletype:=ttDBase;//*.dbf的数据表
end;
with fielddefs do//加字段名
begin
clear;
add('sh',ftstring,30,false);
add('sm',ftstring,30,false);
end;
with indexdefs do
begin
clear;
add('shsy','sh',[ixprimary,ixunique]);//建索引
end;
createtable;
end;
Table3
end;
ap.Free;
except
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
962
SUNSTONE的Delphi笔记
S
S
回复
0
查看
784
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部