Delphi实现两层CS数据库应用程序设计_第1页
Delphi实现两层CS数据库应用程序设计_第2页
Delphi实现两层CS数据库应用程序设计_第3页
Delphi实现两层CS数据库应用程序设计_第4页
Delphi实现两层CS数据库应用程序设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 桌面数据库到客户机服务器模式再到多层数据库结构模式,都能胜任。 本文以数据库服务端软件Microsoft SQL Server 2000及客户端开发软件 。一、应用程序开发环境客户/服务器(C/S)结构包括连接在一个网络中的多台计算机。请求另一台 计算机为之服务的计算机称为客户机(Client)。而处理数据库的计算机称 为服务器(Server)。下面是本文使用的开发环境。 1、服务端网络数据库系统目前,在开发C/S 数据库应用程序时,可以在服务器端使用的数据库管理 服务端网络数据库,微软公司的Microsoft SQL Server等等。本文使用的 MicrosoftSQLServer很方便

2、地使用SQL Server 服 务器管理工具启动后台数据库服务程序,为客户端提供数据库服务。2、客户端数据源的配置C/S 数据库应用程序的客户端必须能与服务端的数据库管理系统进行网络 通信。本文的客户端使用的是ODBC for SQL Server驱动程序及TCP/IP 协 议与服务端进行连接。在ODBC 管理器中的系统DSN 中增加两个驱动为SQL ServerMSSQLMSSQL接MicrosoftSQL Server0 中的例行数据库pubs 和Northwind。ODBC 配置完成后,打开 or 二、创建客户端数据库应用程序 L TDatabase, TSession等组件支持SQL

3、Server 数据库编程。下面介绍通过 Delphi 的相关组件开发客户端应用程序的一般步骤和方法。 1、建立与数据库的连接 件对所有 Tdatabase 控件进行全局控制,当创建数据库应用程序时,应用会自动创建一个默认的BDE 会话期对象 Session,新加入的TDatabase 对象会默认地处于Session 管理之下 。在窗体上放四个命令按钮: FirstOpen, FirstClose, SecondOpen 和 procedure TForm1.FirstOpenClick(Sender: TObject);begindatabase1:=session.OpenDatabase(

4、MSSQL1);procedure TForm1.SecondOpenClick(Sender: TObject);begindatabase2:=session.OpenDatabase(MSSQL2);procedure TForm1.FirstCloseClick(Sender: TObject);var db:TDatabase;begindb:=session.FindDatabase(MSSQL1);/查找是否有以MSSQL1 为别名 IF (DBNIL) THEN db.Close;procedure TForm1.SecondCloseClick(Sender: TObject

5、);var db:TDatabase;begindb:=session.FindDatabase(MSSQL2);IF (DBNIL) THENdb.Close;ndatabaseMSSQL base abaseMSSQLMicrosoftSQLServer atabase 到别名为 MSSQL1和MSSQL2 的数据库,返回给临时数据库对象db,并使用 2、在程序中操纵数据库(1)建立查询并使其结果集可编辑 表示可进行缓存编辑, UpdateObject属性为设置某TUpdateSQL对象,如 UpdateSQL1;UpdateSQL1 对象的属性DeleteSQL, InsertSQL,

6、ModifySQL 是作为编辑查询结果后写入数据库时生成相应SQL 语句的参数,可手动设 置,也可双击UpdateSQL1对象激活其编辑器进行生成,查询结果可显示在 DeleteSQL,InsertSQL,ModifySQL直接用其编辑器生成,在此不列出): procedure TForm1.QueryDisplayClick(Sender: TObject);beginDataSource1.DataSet:=query1;query1.Close;query1.CachedUpdates:=True;query1.SQL.Clear; /清除 SQL 属性query1.ParamCheck

7、:=True;query1.DatabaseName:=MSSQL1;query1.SQL.Add(select * from employee);query1.SQL.Add(where pub_id:pubid);query1.SQL.Add(order by emp_id);query1.ParamByName(pubid).AsString:=1000;query1.Prepare;query1.ExecSQL; idApplyUpdates 。(2)动态创建存储过程 procedure TForm1.CreateProcClick(Sender: TObject);beginwith

8、 Query2 do BeginDatabaseName:=MSSQL1;active:=False;paramcheck:=False;with SQL do BeginClear;Add(Create Procedure get_maxname);Add(max_name char(20) output);Add(As);Add(select max_name=max(au_fname);Add(from authors);ExecSQL;代码中因执行的是非查询语句,所以Paramcheck 属性必须设置为False, (3)使用带参数的存储过程如存储过程返回的结果为一数据集,则使用方法与

9、Tquery 组件相似,下面 是使用上面新建立的存储过程。在窗体上放置StoredProc1对象,其属性 DatabaseName=MSSQL1StoredProcName=dbo.get_maxnameParam.Date=在窗体上放置命令按钮WithReturnProc, 其相应代码如下: procedure TForm1.WithReturnProcClick(Sender: TObject); var tempStr:String;beginStoredProc2.Prepare;StoredProc2.ExecProc;tempStr:= StoredProc2.ParamByNam

10、e(max_name).AsString; showmessage(The value of StoreProc returned is +tempStr); 访问输出参数max_name。(4)事务控制 StartTransaction 启动一新事务,用Commit 方法提交数据,用Rol1back 方法卷回事务,取消对数据库所做的修改。例如,需把上面编辑过的数据 从缓存提交给数据库,可用如下代码:procedure TForm1.QueryApplyClick(Sender: TObject);beginwith Query1 dobeginDatabase1.StartTransaction;ApplyUpdates

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论