大家快帮我!谢谢大家(50分)

  • 主题发起人 主题发起人 浪青
  • 开始时间 开始时间

浪青

Unregistered / Unconfirmed
GUEST, unregistred user!
大家好!我在学习用delphi建立动态数据库这一部分,在这作拉个实验,可提示出错,大家可以
帮我改正么?
****************NO1:
procedure TForm1.createtable(dbname, tblname: string; tbltype: ttabletype);
begin
tbl:=ttable.Create(application);
with tbl do
begin
active:=false;
databasename:=dbname;
tablename:=tblname;
tabletype:=tbltype;
with fielddefs do
begin
clear;
add('worknum',ftstring,10,true);
add('workname',ftstring,10,true);
add('ac',ftstring,3,false);
add('am',ftstring,3,false);
add('ljm',ftstring,3,true);
add('ljc',ftstring,3,true);
end;
// 假如无主键
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
createtable('tjbiaos','tjbiao1',ttdefault);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if tbl.DatabaseName<>null then
if tbl.TableName<>null then
tbl.Active :=true;
end;
//提示错误为:BDEerror with message 'unknownn database alias:tjbiaos';
*********************************NO2:
还有用SQL在DELPHI里建立视图后,没有别名,怎么用Table等一些控件来使用他呢?
 
uses dbtables,DB;

var tbl:ttable;
procedure TForm1.createtable(dbname, tblname: string; tbltype: ttabletype);
begin
tbl:=ttable.Create(application); //如改为tbl:=ttable.Create(self);或tbl:=ttable.Create(nil);则更好。
with tbl do
begin
active:=false;
databasename:=dbname;
tablename:=tblname;
tabletype:=tbltype;
with fielddefs do
begin
clear;
add('worknum',ftstring,10,true);
add('workname',ftstring,10,true);
add('ac',ftstring,3,false);
add('am',ftstring,3,false);
add('ljm',ftstring,3,true);
add('ljc',ftstring,3,true);
end;
CreateTable; //你掉了这关键的一句话,[:D]
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
createtable('c:/','tjbiao1',ttdefault);
//用你的createtable('tjbiaos','tjbiao1',ttdefault);是也可以的,不过前提条件是别名tjbiaos必须存在
end;
 

谢谢您的解答,我还想继续问一下,建立完表后如何在用dbgrid显示他呢?
 

Similar threads

后退
顶部