配色: 字号:
第13章
2016-06-21 | 阅:  转:  |  分享 
  
第13章Delphi/SQLServer开发与编程13.1Delphi数据库应用程序设计13.1.1Delphi数据库应用
程序结构13.1.1Delphi数据库应用程序结构13.1.2ADO组件13.1.2ADO组件13.1.
2ADO组件13.1.2ADO组件13.1.2ADO组件13.1.2ADO组件13.1.2
ADO组件13.1.3数据源组件和数据显示/编辑组件13.1.3数据源组件和数据显示/编辑组件13.1.3数据源组
件和数据显示/编辑组件13.1.3数据源组件和数据显示/编辑组件13.1.3数据源组件和数据显示/编辑组件13.1.3
数据源组件和数据显示/编辑组件13.2设计数据模块连接数据库13.2设计数据模块连接数据库13.2设计数据模块
连接数据库13.2设计数据模块连接数据库13.2设计数据模块连接数据库13.2设计数据模块连接数据库13.2
设计数据模块连接数据库13.2设计数据模块连接数据库13.2设计数据模块连接数据库Delphi7数据库应
用程序在逻辑上通常由两部分构成:一是数据库访问链路,二是用户界面,如图13.1所示。1.用户界面用户界面使用在窗体上放置数据
显示/编辑组件的方式来实现,数据显示/编辑组件在Delphi7组件面板的DataControls页中。2.数据源数据源组
件是数据显示组件和数据集组件之间的中介,数据集从数据库获得数据后,将其发送到数据源,然后数据源将数据送到界面上的数据显示组件进行显
示。3.数据集数据集是数据库应用程序的核心。数据集组件保存了一系列从底层的数据库取出的记录。这些记录的数据可以取自一个数据
表、一个数据表的若干个字段、多个数据表的若干字段。4.连接部分不同类型的数据集采用不同的机制连接底层数据库。常见的有BDE
和ADO方式。5.数据模块数据模块用于放置数据库组件,相当于一个容器。通过数据模块组件来组织数据库组件有以下二个主要的优
点:一是这些不可视组件不用直接放在窗体上了,简化了窗体的设计。二是可以对数据库相关组件进行统一管理,共享相同的内容。ADO组件
位于组件面板的ADO页,如图13.2所示。1.ADOConnection组件ADOConnection组件的主要作用
是建立与数据库的连接。使用ADO访问数据库,必须先与其连接。ADOConnection组件通过ConnectionStri
ng属性的设置和操作建立与数据库的连接。(1)向当前窗体上添加一个ADOConnection组件并选中这个组件,在对象浏览器
中双击这个组件的ConnectionString属性,弹出如图13.3所示的对话框;选中UseConnectionString
,单击?“Build…”按钮。(2)系统将弹出“数据链接属性”对话框,如图13.4所示。对于SQLServer2000数据
库,选择“MicrosoftOLEDBProviderforSQLServer”,单击“下一步>>”按钮。(3)在
所出现的如图13.5所示的“数据链接属性”对话框的“连接”页上输入数据库服务器名称、输入服务器登录信息、选择数据库名称,然后点击“
测试”,若所设置的属性正确,则将出现如图13.6所示的测试连接成功对话框。2.ADODataSet组件ADODataS
et组件的主要属性有ConnectionString、Connection、CommandText和CommandType。(1
)ConnectionString属性ConnectionString属性用来指明数据库连接信息。(2)Connecti
on属性Connection属性用来指明ADO组件与数据库联系的方式。(3)CommandText属性CommandTe
xt属性用于存储SQL语句、数据表名或存储过程名。(4)CommandType属性CommandType属性用于
指出CommandText中所存储的命令类型,常用的CommandType属性值的含义列于表中。CommandText存储的是数
据表名,并且数据表所有字段都会回传在结果的数据集中。CmdTableDirectCommandText存储的是存储过程名Cm
dStoredProcCommandText存储的是数据表名CmdTableCommandText存储的是SQL命令Cmd
Text含义常用值3.ADOTable组件ADOTable组件主要用来从单个数据表中读取数据,它的主要属
性有ConnectionString、Connection和TableName。4.ADOQuery组件它的主要属
性有ConnectionString、Connection、DataSource、SQL和Parameters。Connectio
nString和Connection属性的含义与使用同ADODataSet组件。5.ADOStoredProc组件
它的主要属性有ConnectionString、Connection、DataSource、ProcedureName和Param
eters。DataSource指出数据源名称,ProcedureName是需执行的存储过程名,Parameters存储的是执行存
储过程所需的参数。6.ADOCommand组件它的主要属性有ConnectionString、Connection
、CommandText、CommandType,这些属性的含义和使用方法同ADODataSet组件。数据源组件数据
源组件位于组件面板的DataAccess页上,如图13.7所示。数据源组件在ADO数据集组件(包括ADODataSet、ADOT
able、ADOStoredProc和ADOQuery等)与数据显示/编辑组件之间提供了一个接口,起着两者之间通信的媒介作用。
数据源组件的主要属性是DataSet,用于指出数据集。2.数据显示/编辑组件组件面板的DataControls页中的组
件主要用于显示或编辑数据源提供的数据,如图13.8所示。常用的数据编辑/显示组件是DBGrid、DBNavigator、DBTex
t、DBEdit、DBMemo和DBImage组件等。1)DBGrid组件DBGrid组件采用网格的方式显示数据表中指定字段
的数据,并能够让用户编辑这些数据。表13.2列出了DBGrid组件的主要属性值及含义。DBGrid组件的事件列于表13.3中。该
属性设置表格中的标题的字体TitleFont该属性描述了DBGrid的性质Options该属性指定DBGrid边框的颜色
(滚动条的颜色不会改变)FixedColor该属性是TColumn对象的集合,该集合中的每一个对象均有一个索引值,用以指定DB
Grid中的列和DataSource相联系的数据集组件中字段的对应关系Columns该属性指定DataAccess组件的数据源
,通过这个数据源DataControl组件才能访问数据库中的数据。该属性一般可以通过下拉菜单进行选择DataSource含
义属性当用户拖动一个对象到组件之上时被触发OnDragOver该事件当用户放下一个拖动的对象时被触发OnDragD
rop该事件当用户用鼠标移动表格的列时被触发OnColumnMoved该事件在焦点离开单元格之前被触发OnColExit
该事件在焦点移向新的单元格的时候被触发OnColEnter该事件在鼠标选中表中的单元格并释放鼠标右键时被触发OnCellCl
ick含义事件名?2)DBNavigator组件DBNavigator组件主要用来执行在数据集中浏览数据和编辑数
据的操作,如记录定位、插入记录、删除记录、保存用户对记录的修改等。DBNavigator的外观见图13.9,各个按钮功能描述见表1
3.4。刷新数据控制组件中的数据Refreshdata关闭编辑状态,回到浏览状态Canceledit提交对数据库作的
修改Postrecord使数据库中的记录处于编辑状态Editrecord删除数据库中的一条记录Deletereco
rd向数据库中插入一条记录Insertrecord使数据库中的指针位置指向最后一条记录Lastrecord
使数据库中的指针位置指向当前位置的后一条记录Nextrecord使数据库中的指针位置指向当前位置的前一条记录Prio
rrecord数据库中的指针位置指向第一条记录Firstrecord功能描述提示信息DBNavigator组件的主要
属性有:(1)DataSource:通过这个属性使本组件与被其控制的数据集联系起来。(2)VisibleButtons:n
bFirst、nbPrior、nbNext、nbLast、nblnsert、nbDelete、nbEdit、nbPost、nbCa
ncel、nbRefresh这10个子属性分别对应着10个按钮,不同的组合使DBNavigator组件显示出不同的状态。(3)
Hints:程序运行时,鼠标移至DBNavigator某按钮时弹出的提示信息,通过单击Hints属性右边的省略号可以进入提示信息编
辑对话框。(4)ShowHint:为True时,能在运行时刻显示提示信息。(5)Visible:决定在运行中DBNavig
ator组件是否可见。3)DBText组件DBText组件主要用于显示数据集中的字段类型为文本型的字段值,该组件不能
用于编辑数据库中的数据。DEText的WordWrap属性设置为True时,允许当所显示值的长度超过DBText设计时的
长度时折行显示。4)DBEdit组件该组件能显示和编辑数据源中记录的字段,可以参照DBText组件来建立DBEdit在数据库
应用程序中的应用。5)DBMemo组件在DBGrid中不能显示数据类型为Graph和Memo字段中的内容,可以使用DBMem
o及DBImage分别显示字段中的内容。6)DBImage组件DBImage组件提供了一种显示数据库中的图像字段的方法,例如
SQLServer的Image类型字段,即可用该组件显示。表13.5列出了DBImage组件的主要属性和方法。该过程将剪贴板上
的内容粘贴到当前TDBImage组件中。PasteFromClipboard该过程将从一个文件中加载图片到当前的TDBImag
e组件中。LoadPicture该过程可以把当前TDBImage中的图形剪贴到剪贴板上。CutToClipboard该过程
将把当前TDBImage组件中显示的图形复制到剪贴板上。CopyToClipboard为True时,通过DBImage组件显示
的图形将根据DBImage组件的大小自动调整尺寸。Stretch决定是否在运行时自动显示图形。AutoDisplay含
义属性和方法创建数据模块(1)启动Delphi7;(2)在主菜单中选择file?New?DataModule
,将新建数据模块的Name属性置为“DMCP”,如图13.10所示,此时将新建一个空数据模块DMCP,如图13.11所示。2.
向数据模块中添加连接组件(1)在“ADO”组件面板上选择“ADOConnection”组件,将其放入DMCP;(2)将AD
OConnection组件的Name属性设置为“ADOCP”,如图13.12所示;(3)设置ADOCP的ConnectionS
tring属性,选择图13.12中“ConnectionString”属性右边的文本框,点击按钮,将出现图13.13所示的设置连接
串对话框;(4)选择“UseConnectionString”,单击“Build…”按钮;在其中选择“Microsoft
OLEDBProviderforSQLServer”,单击“下一步”;(5)在所出现的界面中输入数据库服务器名、选择
身份认证方式、选择数据库CPXS,单击“确定”。(6)在图13.12所示的界面中将ADOCP组件的LoginPrompt属性设
置为False。【例13.1】在Delphi7中设计程序将XSBOOK数据库中BOOK表的所有记录显示出来。设计步骤如下:(
1)按图13.15所示设计界面:在窗体中放置一个Label组件,其Caption属性为“图书信息”;然后在放置1个ADOConn
ection、1个DataSource、1个ADOTable和1个DBGrid组件,这4个组件的属性按表13.6设置。DataS
ource1DataSourceDBGrid1DBGridADOTable1DataSetDataSource1Da
taSourceTrueActivexsTableNameADOConnection1ConnectionADOT
able1?ADOTableFalseLoginPrompt由生成器生成连接字符串ConnectionStringA
DOConnection1ADOConnection设置值属性名组件名组件类型(2)单击运行按钮,运行该程序。
【例13.2】直接在窗体中放置数据访问组件,创建一个简单数据库应用程序。(1)选择主菜单下的File?New?Applicati
on,创建一个应用程序。(2)从DataAccess页上将一个数据源组件DataSource拖放到主窗体上。数据源组件在组件面
板上位置如图13.16所示。(3)从BDE页上将一个数据表组件Table拖放到主窗体上。数据表组件在组件面板上位置如图13.17
所示。(4)从DataControl页上将一个表格显示组件DBGrid和一个数据浏览组件DBNavigator拖放到主窗体上。(5)按表13.7设置各组件对象的属性。主窗体如图13.19所示。DSStuDataSourceNagStu数据浏览(DBNavigator)DSStuDataSourceGrdStu表格显示(DBGrid)TabStuDataSetDSStu数据源(DataSource)TrueActivexs.dbTableNameXSCJDatabaseName?TabStu?数据表(Table)第1个Delphi数据库应用CaptionFormDBApp窗体(Form)设置值属性名组件名组件类型(6)运行程序。现在就可以直接在DBGrid上添加、修改、删除数据。例13.2所创建的就是一个基本数据维护的应用程序,不用书写任何程序代码。
献花(0)
+1
(本文系信检彭博海...首藏)