值得指出的是在绝大多数数据库应用中 一般都是使用数据集部件TTable TQuery或TStoredProc与磁盘上的数据库进行连接 用TDataSource部件连接数据控制部件和数据集部件 当然用户也可以自定义数据集部件 用于数据库应用当中 TTable TQuery 和TStoredProc部件中都包含一个不可见的TField类型的对象Fields Fields是一个串列表 它对应于数据库表或一个查询结果的列或字段 Fields对象是伴随着TTable TQuery 和TStoredproc部件的活动状态动态地建立的 当数据库表被关闭时 Fields 对象也随之消失 它在程序设计和程序运行过程中都是不可见的
当然也可以利用Fields Editor建立永久性的Fields对象供Delphi应用程序使用 我们将在后面的内容中详细阐述
TTable部件
利用TTable部件程序设计人员甚至可以不需要编写任何程序便可对数据库进行访问 在一个应用程序窗体中放置一个TTable部件的过程如下
在部件选择板上选择Data Access页
单击Table图标
在窗体内单击鼠标 获得一个TTable部件
为TTable部件设置有关的属性
DatabaseName属性指定要访问的数据库所在的路径名 路径名可以用别名来表示
TableName属性指定要访问数据库中具体的数据库表
Active属性设置为True时 表示打开要访问的数据库表 设置为False时 暂时不打开要访问的数据库表
缺省情况下 TTtable部件中包含了要访问的数据库表中所有的字段和记录 用鼠标双击TTable图标时 会出现一个字段编辑器(Fields Editor) 使用Fields Editor可以对TTable部件中包含的数据库表中的字段的显示格式等属性进行编辑 具体可以控制
● 建立一个永久性的字段列表 包括字段的顺序 字段的类型等 即使磁盘上实际的数据库表的表结构发生了改变 我们建立的这个永久性的字段列表也不会发生改变
● 为每个字段指定一个便于阅读和使用的名字
● 指定字段显示的顺序
● 为每个字段指定一个用于显示的字符串
● 为字段增加合法性检验
● 为了显示的需要还可以建立新的字段(如可计算的字段)具体的使用方法见后面的内容
TQuery部件
TQuery部件是我们使用SQL语言开发数据库应用程序的有力工具 因为使用SQL语言 我们可以非常方便灵活地对一个或多个数据库表中的记录进行访问 所以利用TQuery我们可以查询本地的数据库如Pà?aradox和dBASE数据库系统中的数据 我们还可以使用TQuery部件对一个远地的数据库SQL服务器进行访问 建立Client/Server模式的应用程序
在一个应用程序窗体中放置一个TQuery部件的过程如下
在部件选择板上选择Data Access页
单击Query图标
在窗体内单击鼠标 获得一个TQuery部件
为TQuery部件设置有关的属性
DatabaseName属性指定将要访问的数据库的路径名
SQL属性指定对数据库表进行访问SQL语句 它可以是一条查询语句也可以是一条修改语句或插入语句等 在对象浏览器上 单击SQL属性时 会打开一个字符串编辑器供程序设计者输入SQL语句
在这里要注意在TQuery部件中 不是用TableName 属性来指定要访问的数据库中的数据库表 而是在SQL属性中 通过SQL语句来指定将要访问的数据库表
TDataSouece部件
TDataSource部件是连接数据集部件TTable TQuery TStoredProc 和数据控制部件TDBGrid TDBEdit等的桥梁 TTable TQuery TStoredProc部件通过BDE可以实现与磁盘上的数据库连接即访问 但它们本身不能显示数据库中的数据信息 而数据控制部件如TDBGrid TDBEdit等能够提供可视化的界面 显示数据库中的数据信息 但它们不具备访问磁盘数据库的能力 正是TDataSource将这两者有机地结合起来 使得用户才能交互地对数据库中的数据信息进行查询 修改 插入 删除等 *** 作
在应用程序窗体中放置TDataSource部件的过程如下
在部件选择板上选择Data Access页
单击DataSource图标
在窗体内单击鼠标 获得一个TDataSource部件
为TDataSource部件设置有关的属性
Dataset属性指定一个数据集部件 可以是TTable TQuery或TStoredProc部件的名字
返回目录 DELPHI基础教程
编辑推荐
Java程序设计培训视频教程
J EE高级框架实战培训视频教程
Visual C++音频/视频技术开发与实战
Oracle索引技术
ORACLE G数据库开发优化指南
Java程序性能优化 让你的Java程序更快 更稳定
C嵌入式编程设计模式
Android游戏开发实践指南
lishixinzhi/Article/program/Delphi/201311/25181
1、程序运行后没有反应,进程中也看不到;
多半是因为程序在初始化过程中出错或运行时堆栈溢出之类的错误,或者缺少某些库文件导致的
2、 *** 作系统报错,提示发送错误报告;
程序访问了不该访问的内存等原因导致的
也有可能是与某个软件有冲突
不知道这个程序是不是你(们)自己开发的,如果是最好在可能出错的地方加上调试信息,把出错的原因打出来。而不是出错了以后程序悄悄的退出。
VB:
1 VB编译的EXE文件很小,但需要1M左右的DLL。
2 开发工具特性上面,vb无法编译原生目标文件
3 vb无法对低层 *** 作
4 vb只能使用ms的数据库驱动
5 vb无类库(不是指ocx,是指的framework)
6 vb无法使用C的obj文件
7 语言特性上,vb6以下版本缺少面向对象支持
8 vb无指针(正宗的指针)
9 vb的独特就在于简单,不是在于功能,所以要比较vb要和其它开发工具比较应该放在易用性上,一定能赢。
1 VB最大的弱点 ,不支持面向对象。这点关乎很大。
2 VB其实 *** 作不叫简单,见弱,而DELPHI 那叫简单强大。
3 VB以停止更新 别说 VB。NET 那和 VB 不一个东西。
4 三方控件。
5 开源。
6 运行速度。
7 稳定性。
8 依赖性,VB 写的东西换别的系统还要重新包装发布,看看DELPHI 那叫绿色。
9 编译速度,VB根本不叫编译,类似高级脚本。DELPHI编译的速度世界一流。
10 类库,DELPHI的类库 很多很强大 可继承。VCL 真是个非常好的构架。
11VB函数定义都不需要!万一程序出错,万一是类型不同导致的错误!查都查不出来,这个可以说是一个致命的问题!
Delphi:
1 Delphi的程序通常只需要一个EXE文件,而且它使用的VCL控件可以编译到EXE中,比OCX好。如果你编写数据库程序,和VB就差不多了,因为Delphi需要BDE支持。
2 开发工具特性上面,delphi可以编译原生目标程序
3 delphi可以对低层 *** 作
4 delphi可以使用ms的数据库驱动或者其它的
5 delphi有vcl类库,学习vcl可是受益匪浅的
6 delphi可以使用C的obj文件。(估计很少人这样用,但不要说这是不可能)
7 语言特性上,delphi有面向对象支持
8 delphi有正宗的指针
1BDE
尺寸太大, 太笨重, 一个几百K的小程序也要3-4M,虽然功能不错, 但人家DAO也没这么大;
2关于界面:
到现在, 也没有像VB那样, 在一个过程名字上按shift+f2, 就可以直接跳到过程的实现部分, 在delphi里, 你只有按住ctrl, 在名字上点击, 运气好的话, 会直接跳到实现部分, 运气不好会跳到声明部分, 那么你只有再按住ctrl+shift,按上下光标键, 在声明部分和实现部分切换另外, 没有VB中的大小写自动变换, 自动格式化等,
3 "代码精灵"---不知道你们叫它什么,就是按住后, 出来的那个列表框,可以选取构成的语句元素, 它的d出速度总是比不上VB, 特别是第一次启动时, 总要等上7-8秒钟才出来, 真让人急死,即使把它的d出速度调到最快也不行, 不用它还真不方便,毕竟记性不是很好--可是VB里面是一按号就会d出来
4对中文用户的支持:
到现在也没有开发过一版中文的delphi
综:
Basic简单是因为微软希望 VB 及 VBA维持在简单到任何想依靠电脑来做自动化程序的用户都可以轻易地上手, 因此虽然功能不断上升,语言本身维持着Basic的所有特性。不过缺乏物向导向的支援及执行速度的缓慢, 确实是致命伤, 因此我建议所有的初学者, 若能有力能够接受学习其它的语言如C++/Pascal,转移阵地为上策。
C++ 的强大勿庸置疑, template, exception-handling, RTTI, Stardard Library等功能不断地加入翻新, 由于使用者多, 要求必多期望必高, 再加上 C++ 本身定位于功能强大范围广泛的通用性语言, 如江海之纳百川, C++ 自然日益复杂。著名的杂志C++ Journal 上曾有段话让我印象颇深, "如果你认为 C++ 还不算太复杂, 那么请你解释何谓protected abstract virtual base pure virtual private destructor,你又会在何时需要它呢?"(Tom Cargill, C++ Journal, Fall 1990) 虽然是最流行的 OOPL, 但除非你有足够的耐心及精神来全盘掌握它, 否则轻易尝试的后果可能只会得到一脸的挫折。当然, 十分的复杂也带来十分的便利及不同的乐趣, 我有一位朋友, 工作上使用其它语言, 但将C++ 当作兴趣来把玩, 跟酷企鹅一样酷呆了。
Pascal, 其实应该说是 Object Pascal, 为 Borland Delphi 所才用的语言。Pascal的严谨明确是自 Niklaus Wirth 发明它以来一直遵行的宗旨, 而之所以可以顺利演化为完全的物件导向程式语言 Object Pascal 是由于 Inprise 公司 (原名 Borland)对 Pascal 语言的全盘掌握, 就像 FreeBSD 的 coreteam 全盘控制所有 FreeBSD套件的更新撰写一般, Pascal 控制权控制在 Inprise 一小措人手中,虽然失去开放性,但保有该有的坚持及清新, 也因此我认为它的物向导向支援恰得其所, 该支援的全都支援了但也没有更多。它与 C++ 的优劣是没有答案, 见仁见智的, 正如同
由Borland公司推出的Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了MicrosoftWindows图形用户界面的许多先进特性和设计思想,采用了d性可重复利用的完整的面向对象程序语言(Object-OrientedLanguage)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。
Delphi是Borland公司研制的新一代可视化开发工具,可在Windows3x、Windows95、WindowsNT等环境下使用。当前,DELPHI也可以为LINUX平台上开发应用,其在LINUX上的对应产品Kylix。
DELPHI拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。主要特点如下:
(1)直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他同类产品。
(2)支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许开发人员建立一个简单的部件或部件集合,封装起所有的规则,并独立于服务器和客户机,所有的数据转移通过这些部件来完成。这样,大大减少了对服务器的请求和网络上的数据传输量,提高了应用处理的速度。
(3)提供了许多快速方便的开发方法,使开发人员能用尽可能少的重复性工作完成各种不同的应用。利用项目模板和专家生成器可以很快建立项目的构架,然后根据用户的实际需要逐步完善。
(4)具有可重用性和可扩展性。开发人员不必再对诸如标签、按钮及对话框等Windows的常见部件进行编程。Delphi包含许多可以重复使用的部件,允许用户控制Windows的开发效果。
(5)具有强大的数据存取功能。它的数据处理工具BDE()是一个标准的中介软件层,可以用来处理当前流行的数据格式,如xBase、Paradox等,也可以通过BDE的SQLLink直接与Sybase、SQLServer、Informix、Oracle等大型数据库连接。Delphi既可用于开发系统软件,也适合于应用软件的开发。
(6)拥有强大的网络开发能力,能够快速的开发B/S应用,它内置的IntraWeb和ExpressWeb使得对于网络的开发效率超过了其他任何的开发工具。
(7)Delphi使用独特的VCL类库,使得编写出的程序显得条理清晰,VCL是现在最优秀的类库,它使得Delphi在软件开发行业处于一个绝对领先的地位。用户可以按自己的需要,任意的构建、扩充、甚至是删减VCL,以满足不同的需要。
(8)从Delphi8开始Delphi也支持Net框架下程序开发。
当前DELPHI已经成为一个品牌,而不仅仅是一个开发平台或开发语言的名称。当前DELPHI产品已经由CodeGear公司继续发展,该公司是BORLAND公司的全资子公司。当前,CodeGear为广大开发者提供了DELPHIFORPHP,以高度可视化的方式全面支持面向对象的PHP网站开发,大大提高了PHP开发网站的代码复用程度,成为WEB应用开发的新利器。
以上就是关于DELPHI基础教程:Delphi开发数据库应用程序概述(一)[4]全部的内容,包括:DELPHI基础教程:Delphi开发数据库应用程序概述(一)[4]、delphi 编写的应用程序问题、delphi比VB功能强大吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)