学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> Delphi >> Delphi中建表


Delphi中建表


一、数据库别名(Alias)的地位
  Delphi内建的数据库引擎BDE(Borland Database Engine),提供了强大的数库处理功能,BDE是Delphi数据库功能的核心部分。

  以只有单机使用的本地数据库为例,Delphi程序可以直接通过BDE来控制数据库数据的存取。这种存取控制是以配置好BDE参数为前提的,具体的来说是正确设置了数据库的别名(Alias),Delphi的最常用的数据库访问组件TTable,其属性DataBaseName即为已经定义的数据库别名,在没有定义数据库别名的情况下,是不能访问具体的数据库表格的。因此,在建立数据库表格时,必须有两个过程:一是通过BDE检测相应的数据库别名是否存在,如果不存在,则应首先建立相应的数据库别名;二是检测该数据库别名(即DataBaseName)中是否存在需要建立的数据库表格,如果不存在,才建立之。这样,才能保护原有表格的数据不丢失。


二、Session组件: Delphi数据库程序与BDE的接口
  Delphi自动为数据库应用程序提供了一个Session组件,这个Session组件是应用程序与BDE接口的关键。下面是Session组件关于BDE接口的几个过程的原型说明。
  1.GetAliasNames(list:Tstrings);将当前BDE配置中的所有数据库别名的名称存放到List字符串列表中。

  2.AddStandardAlias(const Name, Path, DefaultDriver: string);增加一个标准类型的数据库别名。例如增加一个名为Cntssamp,缺省数据库驱动程序为PARADOX、存放路径为c:\delphp11的别名:
  Session.AddStandardAlias(Cntssamp,c:\delphp11,Paradox);

  3.GetTableNames(const DatabaseName, Pattern: string; Extensions,SystemTables: Boolean; List: TStrings);可将指定数据库别名中所有表格的名称存放到List字符串列表中。

  4.SaveConfigFile; 将BDE配置存盘。
  另外,用List.IndexOf(指定串)的值判断字符串列表中是否有需要的字符串,来决定是否应建立新的数据库别名和数据库表格。

三、一个实例
  在Form1.FormCreate事件中写入如下代码,程序启动时,将自动检测是否存在数据库别名Cntssamp,如果没有则建立之;自动检测别名Cntssamp中是否存在表格TSK(图书库),如果没有则自动建立表格TSK。
  procedure TForm1.FormCreate(Sender: TObjec
  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 table1 do
begin
   Active:=false;
   DatabaseName:=Cntssamp; {数据库别名}
   TableName:=TSK;   {表格名}
   TableType:=ttParadox; {数据库类型}
    with FieldDefs do
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 IndexDefs do
begin {增加索引}
   Clear; {按书号字段建立主索引}
   Add(SHSY,SH,[Primary,ixUnique]);
   end;

   CreateTable; {创建表格}
   end;
   end ;

   ap.free; {释放变量ap}
  end;
技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

 还没人留言,抢个先,哈哈!...
游客 发表于2008-4-3 16:00:47
对"Delphi中建表"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 Delphi中建表 相关内容
Google搜索中 Delphi中建表 相关内容
雅虎中 Delphi中建表 相关内容
Sogou搜索中 Delphi中建表 相关内容

相关软件 最新回复帖子:

·Delphi中建表
·用AutoCAD 2004绘制第一张图纸
·基于JSP技术的网络教学平台设计
·AutoCAD控制实体显示的方法
·AutoCAD三维建模实例:排球
·AutoCAD中的字体替换技巧
·用Visual Basic轻松实现看图软件
·在Dreamweaver中用Layer技术
·3DsMAX快速制作灯光光晕的方法和技巧
·明明白白Windows XP中EFS加密及解密


  相关软件 Delphi中建表相关文章
如何实现在一个Dbgrid中显示多数据库 为Delphi数据表格增加彩色
建立应用软件注册安全机制 在Delphi中自动检测、建立数据库别名和表格
在Delphi程序中维护DBF数据库 用Delphi 开发数据库程序经验三则
在Delphi的DBGrid中插入其他可视组件 Delphi3数据库编程中的查找字段
Delphi数据库开发及统计表格设计 用Delphi4的QReport部件生成报表
也谈为Delphi中数据库报表加网格 在Dephi中使用TStream读写数据的技巧
Delphi中的消息处理 在DEPHI程序中使用ADO对象存取ODBC数续
在DELPHI程序中使用ADO对象存取ODBC数 在DELPHI程序中动态设置ODBC数据源
精简DELPHI数据库系统的补充 如何对数据流 INSERT、APPEND
定制任务栏上的系统菜单 活用 SetSelTextBuf