Delphi中Ado控件SQLServer数据库开发_第1页
Delphi中Ado控件SQLServer数据库开发_第2页
Delphi中Ado控件SQLServer数据库开发_第3页
Delphi中Ado控件SQLServer数据库开发_第4页
Delphi中Ado控件SQLServer数据库开发_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、第24卷第3期 辽宁工程技术大学学报 2005年6月 V ol.24 No.3 Journal of Liaoning Technical University Jun. 2005收稿日期:2004-05-22基金项目:河北省交通厅 “九五”行业联合科技攻关项目(HG-950403作者简介:邢文建(1965-,男,河北 南宫人,副教授,主要从事计算机应用方面研究。本文编校:杨瑞华文章编号:1008-0562(200503-0407-03Delphi 中Ado 控件SQL Server 数据库开发邢文建1,马丽艳2,郭子平3(1.河北工程学院 教育技术中心,河北 邯郸 056038; 2.河北工

2、程学院 信电学院,河北 邯郸 056038;3.邯郸市水利水电勘测设计研究院 信息部,河北 邯郸 056002摘 要:在开发邯郸交通信息网络研究的项目中,涉及到对交通管理中心数据库的数据进行各种操作应用,如添加记录、删除记录和各种条件查询。为了使Client/Server 方式的交通数据管理应用程序在安装发布中,数据库的初始化环节简便易用,在实施中采 用ADO 技术连接Sql Server 数据库,在应用程序的初始化模块中利用Sql Server 提供的系统账号和存储过程,完成该项目所用数 据库在Sql Server 的建立、特定账号和角色的初始化方面工作。从而有效地避免用手工导入数据库可能造

3、成的问题,使数据库建立 自动化,降低程序发布和设置难度。关键词:存储过程;adoconnection ;adostoredproc ;adoquery ;控件 中图分类号:TP311.1 文献标识码:AUsing ADO technic empolder SQL server database programin environment of delphiXING Wen-jian 1;MA Li-yan 2;GUO Zi-ping 3(1. Center of Technique Education, Hebei University of Engineering, Handan 05603

4、8,China ;2. College of Information and Electrical Engineering,Hebei University of Engineering, Handan 056038,China ;3. Dept of Information ,Handan Design and Research Institute of Conservancy and Hydropower, HanDan 056002,ChinaAbstract :Developed software of Handan traffic net research, includes dif

5、ferent operations,such as inserti-ng records 、deleting records and various of condition searches. In order to decrease the difficulties of cli e-nt/Server applications database initialization, So with Microsoft Ado technical linking sql server datab-ase in this project, databases system account and

6、system stored procedure is used to establish thsseuser database and initialize the applications database by some automatic procedures that Include establishing applications database and databases specific accounts and databases role etc.To avoid importing applicat -ions database by sql server enterp

7、rise manager and reducing the difficulties of application setup. Key words :stored procedure ;adoconnection ;adostoredproc ;adoquery ;control0 引 言ADO 是Microsoft 为数据访问范例OLE DB 而设计,是一个便于使用的应用程序接口。ADO 通过OLE DB 提供访问和操作数据库服务器端的数据,特点是速度快、内存支出少和磁盘遗迹小1。ADO 在关键的应用方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些为程序运行提供了轻

8、质量、高性能的接口。Delphi 提供了ADO 数据库编程技术,由于ADO 内置在微软的操作系统中,因此开发数据库应用程序避免了BDE 的配置和安装,减少了发布的难度2。1 实现方法开发和发布一个基于Client/Server 方式的应用程序,需要在服务器端安装后台数据库软件,并且建立或导入自开发程序所需要的数据库、账号和角色等。有两种方法可以实现,一种是在程序开发完成时,备份最终使用的数据库,连同发布的程序一同提交给使用者,在用户的服务器端安装数据库辽宁工程技术大学学报第24卷408系统后,根据实际情况手工导入所需的数据库3。另一种方法是在开发的程序中编写代码实现数据库安装和初始化,提交给用

9、户的只是发布的程序,用户在服务器端安装数据库系统后,在客户端运行应用程序,完成程序所需数据库的建立和初始化。显然,后一种方法更加灵活可靠,自动化程度高。本文讲述如何在Delphi5.0开发环境下使用ADO技术,编程实现SQL Server2000数据库服务器的连接和程序所需数据库的初始化。2 程序代码连接SQL Server2000数据库服务器时,需要提供用户名和密码,只有SQL Server2000服务器认可的帐号才可根据该帐号的权限使用相应的资源3。因此为应用程序使用的数据库建立一个独立的完全控制的帐号及密码,既可保证对该数据库拥有全部操作权,又可保护其他数据库的安全,便于在程序中控制各功

10、能模块的使用5。假设建立名为mydatabase的数据库,数据库中涉及三个表:busi ness表,detail表和employee表,开发时首先建立Data Module数据模块data3,在其上放置一个Ad oconnection控件、三个AdoStoredproc控件及一个AdoQuery控件。AdoConnection控件负责与数据库的连接,AdoQuery执行标准SQL语句以创建数据库和表,AdoStoredproc执行SQL Server2000数据库服务器上的存储过程6。其中AdoStoredproc3指向数据库的系统存储过程sp_grantdbaccess,目的是在mydata

11、base中建立名为manager的用户,所需参数为loginname=manager,name_in_db=manager;AdoStoredproc1指向数据库的系统存储过程sp_addlogin,目的是建立登录账号、口令和缺省使用的数据库,所需参数为 loginname=manager,password=654321,defdb=mydatabase;AdoStoredproc2指向数据库的系统存储过程sp_addrolemember,目的是在mydatabase中建立数据库角色,所需参数为rolename=db_owner,membername=manager 。数据库初始化程序运行如图

12、1 。程序首先让用户输入 SQL Server2000服务器的名称、登录服务器的用户名和口令,分别存于E dit1、Edit2和Edit3三个控件中。图中1上面的“确定”按钮执行数据库初始化工作,图1中下面的“确定”按钮执行数据库的连接操作。执行数据库初始化的程序代码如下procedure TForm1.BitBtn1Click(Sender: Object; beginif edit1.Text =''thenshowmessage(' 必须输入SQL数据库服务器的名称! 'elsebegindata.ADOConnection1.Close ;data.AD

13、OConnection1.Provider :='SQLOLEDB.1'data.ADOConnection1.ConnectionString :='Prov ider=SQLOLEDB.1;Password='+edit3.text+'Persist s ecurity Info=True;User ID='+edit2.text+'Initial Cata log=master;Data Source='+edit1.Text ;/*adoconnection的首次连接是根据用户输入的服务器名称、用户名和口令而定,是动态的,

14、如果连接成功,则该连接使用的数据库为SQL数据库默认的master数据库,注意:用户账号是拥有创建数据库的权限。*/trydata.ADOConnection1.Connected :=true;data.ADOQuery1.SQL.Text:=create database mydatabase on (name=mydatabase_dat,filename=' +c:mssql7datamydatabase.mdf'/*连接成功后,先在SQL数据库服务器上创建mydatabase的数据库*/data.ADOQuery1.ExecSQL ;data.ADOConnectio

15、n1.Connected :=false ;/*终止连接SQL Server数据库服务器的图1数据库初始化程序Fig.1database initialization第3期邢文建等:Delphi中Ado控件SQL Server数据库开发409master数据库*/data.ADOConnection1.ConnectionString :='Pr ovider=SQLOLEDB.1;Password='+edit3.text+'Persis t Security Info=True;User ID='+edit2.text+'Initial Catalo

16、g=mydatabase;Data Source='+edit1.Text ;data.ADOConnection1.Connected :=true;/*连接至mydatabase数据库*/data.ADOStoredProc1.ExecProc ;data.ADOStoredProc3.ExecProc ;data.ADOStoredProc2.ExecProc ;data.ADOQuery1.SQL.Clear ;data.ADOQuery1.SQL.Text :='CREATE TA BLE dbo.employee (employeeid varchar(12 NOT

17、 NULL , name varchar(8 not NULL, power varch ar(1 NOT NULL, password varchar(10 NOT NU LL 'data.ADOQuery1.ExecSQL ;data.ADOQuery1.SQL.Clear ;/*依次建立business表和detail表*/exceptMessageDlg(' 建立数据库发生错误!请与管理员联系! ', mtInformation, mbOk, 0;abort;end;memo1.Text :=edit1.Text ;memo1.Lines.SaveToFile(

18、getcurrentdir+'sysdb.i ni'/*将SQL Server2000服务器的名称保存在程序所在文件夹的sysdb.ini文件中,以供其他功能模块的adoconnection作为连接SQL Server的参数*/ MessageDlg('数据库初始化完成! ', mtInformation, mbOk, 0;end;end;数据库初始化完毕,按如下方法连接 ················

19、·vartempmem:tmemorystream; beginif FileExists(getcurrentdir+sysdb.ini' then begintempmem:=TMemoryStream.Create ;empmem.LoadFromFile (getcurrentdir +'datase tupsysdb.ini'memo1.Lines.LoadFromStream (tempmem;/*利用隐藏的memo控件获得内存流中的数据*/ data.ADOConnection1.Provider :='SQLOLEDB.1' data.ADOConnection1.ConnectionString:='Provide r=SQLOLEDB.1;Password=654321;Persist Security Info=True;User ID=bathem

温馨提示

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

评论

0/150

提交评论