幽雅BDE(二)

原创 2003年06月23日 08:12:00

三、数据库组件间的关系<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

下图说明了数据库相关组件之间的连接与关系:

                                                                                      

                                       ┌DBGrid

               ┌Table<=|              ├DBText

DataBase<=BDE<=│       |<=DataSource<=├DBNavigator

               └Query<=|              ├DBListBox

                                       └DBEdit

                                      

      (组件的名称)Nameç=======DataSet     Name(组件名称)

   (使用时设为true)Active  (组件名称)Nameç==DataSource

 (数据库别名)DatabaseName

 (设置数据表)TableName/SQL

 

数据库   BDE引擎   数据存取组件(撷取)     可视化控件(显示)

注:”<=”表示组件之间的层次关系;”ç=”表示这个属性的值为上一层所指属性的值;

表示该层组件的重要属性。

若你所要操作的数据库存在,我们只要在窗体上放在Table/QueryDataSource两个组件,并适当的放置可视化组件,就可以完成一个简单的数据库程序设计。

数据库的别名是上篇说过的一个重要概念,这里有必要说明一点,对于ParadoxdBASE这两种宝兰原有的数据库类型,DatabaseName只要求你把存放该数据库的路径给出就行了(当然你也可以选择BDE别名,但很少有人会去做这样的傻事情),联接起来真的特别方便。如果你要访问的是SQL数据库,则必须是别名。

说了这么久,ADE那有什么幽雅,讲到现在除了在联接上有点方便外(联接dBASE系列),还没看到什么比ADO好的地方,是不是有点名不对名呀?

那用下面的方法建立数据库应用程序是不是方便呢?看后你再说:)

四、利用数据库桌面工具(Database Desktop)与数据库窗体设计向导(Database Form Wizard)创建数据库应用程序

BDE的幽雅在于她能不动一兵一卒就能编写了丰富的程序来,而从这点上来看是ADO远远不能及的,就好象俄罗斯是富国中的穷国与中国是穷国中的富国一样,纵然BDE有一身的毛病,但她是你恋人,却被你说得体无完肤,也是中国的男人似乎都喜欢野花:)

下面说明一下如何利用这两个工具来创建一个应用程序,你看一下她是不是很方便:)

第一步:建立数据库

第一、我们打开(CreatDatabase Desktop,有两种方法,一种是通过“开始|程序|Borland C++ Builder6|Datase Desktop”;另一种是在C++ Builder中调用菜单中的“Tools|Datase Desktop”,调出如图的数据库桌面工具。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />CSDN_Dev_Image_2003-6-221802540.jpg

第二、在上图执行菜单中的“File|New|Table”命令,来建立一个新的数据表,如下图所示:

CSDN_Dev_Image_2003-6-221802542.jpg

第三、在弹出的Creat Table中的下拉列表中选择数据库类型,选好之后,在Create Table对话框中单击OK按钮,完成数据库种类的设置。

CSDN_Dev_Image_2003-6-221802544.jpg

 

第四、上面我们选择的是FOXPRO,单击OK后,将调出FOXPRO表格对话框。在这里要求你设置表格的各个字段及其属性值。

注意:由于别名、使用起来的方便性及与BCB的特殊关系,一般我们选择的不是FOXPRO,而是Paradox与dBASE这两类。

CSDN_Dev_Image_2003-6-221802546.jpg

 

当然不同类型的这个窗口是不一样的。这里先说一下FOXPRO类型。

在这里要设置四个属性值:字段名称(Field Name)以字母开头,长度不能超过10个字符,中间可以有下划线,但不能有空格;字段类型(Type),你只要右击这个项就会弹出一组属性选项;字段宽度(Size)这里用来设置这个字段数据的字段宽度,在FOXPRO中,有几个字段宽度是系统已设定好的,逻辑型为1,日期型为8,备注型为10;小数位数(Dec)只有数据类型为数值时才有效。

我们还可以给表创建索引。点击“Define Index”会弹出一个如下图的对话框。

CSDN_Dev_Image_2003-6-221802548.jpg

这里列出了该表中的所有字段名,选择要设置索引的字段,单击向右的箭头添加到右边的列表中,这样就创建了索引。点击OK按钮,将弹出“Save Index As”对话框,用来让用户输入索引的名称。

点击“Save As”按钮,在保存的对话框中输入表格名称并且选择BDE所管理物理数据库的别名和表格名称后存盘。

当然你也可以通过点击“Open|Table”,来打开一个已经存在的数据库表格。

下图是Paradox的编辑窗口:

CSDN_Dev_Image_2003-6-2218025410.png

 

要注意与上面的不同之处,它的第一索引在你想要确定为索引的字段中的“Key”属性中以“*”加以定义就可以了。至于第二索引的建立,这里不想多说了,你只要注意一下右上角那个下拉框,看一下她里面到底有什么就应该清楚了。当然的有人会对没有小数位感觉不方便,说Paradox的一些不好听的话,其实不是这样的,Paradox这方面的是最为强大和方便的,只要你的数据类型与长度指定后,你在右侧选择”Validity Checks”,在它的下面你就可以编辑限制字段写入的最大值、最小值、默认值和数据格式了,现在它们也在窗体中,只是灰色的不能用罢了。(至于其它方面的内容将在关于Paradox使用专文中说明)

为什么只说这两类呢?其它类与她们基本是一样的,你用一下就能对上号了。

第五、在数据库桌面工具中编辑数据,你只要在打开的数据表中按一下F9就可以开始你的编辑工作了(当然你也可以通过“Table|Edit Date”来进行)。想删你就删,想加你就加,想改你就改,但要注意一定要在编辑状态下。

注意:按F9实际是在编辑表格(Edit Data)和浏览表格(View Data)两种状态中来回切换,快捷键F9每按一下,就跑到另一个菜单项上了,这必须注意到,否则有时按F9就有可能编辑不了你要编辑的数据了。

打了这么多,眼睛有些受不了了,又没有写完,好在建立数据库算是写完了。可能又要被骂,没办法,这可是身不由已,不是想故意浪费系统资源,还请嘴下留人J

 

(未完)

 

 

 

Delphi数据库编程之BDE组件一(已不常用)

这里,我们来介绍BDE组件中常用的几个组件: 1.TTable组件 使用TTable组件可通过BDE访问单个表的数据,其提供了对底层数据库的每一条记录和字段的直接访问。下面介绍几个重要的属性 1...
  • kimifdw
  • kimifdw
  • 2013年03月11日 10:37
  • 3002

delphi通过BDE方式连接数据库以及程序Demo

1、设置BDE连接 2、
  • huangwei19900407
  • huangwei19900407
  • 2014年08月19日 10:24
  • 1240

Delphi数据库编程之BDE组件二(已不常用)

1.TDatabase组件 1.1 AliasName 用于描述连接所用的数据库别名。 1.2 Connected 用于确定数据库连接是否是活动的。 1.3 DatabaseName 用来...
  • kimifdw
  • kimifdw
  • 2013年03月13日 11:05
  • 1352

delphi代码创建bde别名示例

实际应用中可能需要程序自动创建BDE别名 特试建 MSsql和paradox数据库别名 //单元代码 unit Unit11; interface uses Windows, Messa...
  • simonhehe
  • simonhehe
  • 2013年01月08日 15:06
  • 1868

Firebird 数据访问组件 (Delphi)

在 Delphi 下可访问 Firebird 数据库的组件非常多,但不管是 CodeGear 还是 FirebirdSQL 都没有推出正式官方的相关驱动和组件,有 Interbase 的存在,想让...
  • xiexuan2007
  • xiexuan2007
  • 2013年12月24日 09:49
  • 1542

基于MATLAB的二值化图像常用的三种方法

图像分割是模式识别和计算机视觉中很重要的一个部分,基于阈值的图像分割具有简单、计算量小、效率高等特点,在实际图像处理中具有广泛的应用。经过国内外学者的广泛努力,已经提出了数以百计的阈值分割的算法,依据...
  • vicdd
  • vicdd
  • 2016年11月24日 21:44
  • 16762

二值化神经网络系列一:二值化神经网络介绍

二值化神经网络以其高模型压缩率和快计算速度的潜在优势,近些年成为深度学习的热门研究方向。本篇博文将对二值化神经网络做一个详细的介绍。 尊重原创,转载请注明:  http://blog.csdn...
  • fsFengQingYangheihei
  • fsFengQingYangheihei
  • 2017年03月15日 17:36
  • 1731

Logistic回归与最小二乘概率分类算法简述与示例

Logistic Regression & Least Square Probability Classification1. Logistic RegressionLikelihood functi...
  • philthinker
  • philthinker
  • 2017年04月08日 10:22
  • 515

Android图片二值化算法

转自: public void binarization(Bitmap img) { width = img.getWidth(); height = img.getHeight(); ...
  • nannan_smile
  • nannan_smile
  • 2014年05月23日 19:34
  • 1750

科目二上车前的基础说明

从科目一到科目中间大概有一个半月时间
  • lilinoscar
  • lilinoscar
  • 2014年11月11日 14:38
  • 8258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:幽雅BDE(二)
举报原因:
原因补充:

(最多只允许输入30个字)