Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Delphi数据库的动态建立

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

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方法则不需考虑。




相关文章

相关软件