Delphi数据库的动态建立

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

delphi 最吸引人的特点之一就是它的强大的数据库访问能力,通过database desktop 工具可方便的建立、编辑数据库。由于实际原因我们往往需要在程序运行状态下动态建立某个数据库。

如果你让用户用database desktop 工具手工建立数据表那么你写的程序将会打大折扣,不过你不用担心delphi完全可以用语言来完成此功能,为我们提供方便。我在学习和实践中总结出两种方法,我叫做table法和sql法。下面通过简单的实例来描述动态数据库建立的过程。

一、 Table方法:

1、(以建立paradox数据表为例假设库名为ljh.db)。新建一工程文件zhoudf.dpr.在unit1中的uses语句中加入db,dbtables单元。

2、在面板上选取button元件置于form1表中,双击button1输入如下代码。

Procedure Tform1.Button2Click(Sender: Tobject);

var table1:ttable; begin table1:=ttable.create(self);

with table1 do begin active:=false;

tablename:='ljh.db';

tabletype:=ttparadox; with fielddefs do {此方法为ljh.db增加字段} begin clear;

add('yj',ftdate,0,false);

add('zp', ftstring,10,false); {增加具体的字段名、类型}

add('zdm',ftinteger,0,false);

end;

With indexdefs do {此方法为ljh.db增加索引字段} Begin Clear;

Add('yjindex','yj',[ixprimary]);

end;

createtable;

end;

end;

二、sql方法: 在面板上选取button元件置于form1表中,双击button2输入如下代码。

Procedure Tform1.Button2Click(Sender: Tobject);

var table2:tquery; begin table2:=tquery.create(self);

with table2 do begin with sql do begin clear;

add('create table "ljh.db"');

add('(yj date,'); {注意引号中的‘(’}

add('zp char(10),');

add('zdm int)');{注意引号中的 ')'}

end;

execsql;

sql.clear;

sql.add('create index yj on "ljh.db" (yj)');{此sql语句为ljh.db增加索引字段}

execsql;

end;

end;

* 编译此程序即可。 * 需要注意的是用sql方法建库如果库已存在会产生错误提示,用table方法则不需考虑。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航