用Delphi编程访问SQLServer数据库

Delphi是一个优秀的可视化软件开发环境,并已广泛应用于数据库软件的开发。在DelphiC/S版环境中,结合其优化的数据库操作,以及Borland Database Engine(即:BDE,数据库引擎),对开发客户机/服务器系统下的网络数据库软件提供了更加快速有效的途径。在客户机/服务器系统中,服务器端我们采用Microsoft SQL Server6.0 for WindowsNT作为数据库服务器;另外,在客户端采用Delphi编写客户软件。在此,我们假定SQLServer设置完毕,并已经启动,仅介绍客户端的程序编写步骤。从以下文章中,读者可以发现不需要写一句程序,就能实现对SQL Server数据库的操作了。具体步骤如下:

  第一步,注册ODBC数据源。这是至关重要的一步,否则就无法实现对数据库的访问。例如,我们定义一个可访问SQL Server服务器上zhb数据库的数据源ZHB。首先,选择SQL Server类型的数据库,进入"ODBC SQL Server Setup"窗口。然后,定义数据源名称为"ZHB";定义Server为"SQL-Server";以及网络路径为"ιιSQL-Server";最后,按option命令按钮选择访问的数据库为zhb即可。


  第二步,配置BDE。它是Delphi专用的数据库引擎。既可以从Delphi程序组里启动,也可以从Delphi程序项的Tools菜单下启动。Delphi在访问SQL Server数据库时略不同于VB。VB是直接调用ODBC来连接SQLServer的,而Delphi是首先调用BDE中的别名,别名再通过BDE中的ODBC Driver直接访问ODBC数据源实现的。而在BDE的ODBC Driver中你还可以定义其他ODBC属性,例如语言驱动程序或打开模式等等。这无疑大大增强了ODBC的功能。
  首先,在Drivers标记页中,按"New ODBC Driver"添加新的驱动程序。在添加窗口中有三栏需要填写。第一栏SQL Link Driver可任取一名,如:ODBC-ZHB;第二栏Default ODBC Driver中选择SQL Server;在第三栏default Data Source Name中选择刚才注册的数据源ZHB。按OK确认后就增加了一个名为ODBC-ZHB的DelphiODBC驱动程序。在其右侧的参数表中,还可以设置打开模式OPENMODE、查询模式SQLQRYMODE、SQL语句执行模式SQLPASSTHRUMODE以及语言驱动程序LANGDRIVER等。接下来,在Aliases标记页中,按"NewAlias"命令按钮增加一个新的别名。在增加新别名窗口中有两栏需要填写。第一栏为Newaliasname,可任取一个名字,如:zhbdb;这个别名就是我们要在Table控件中直接调用的数据库名字。第二栏Aliastype选择刚才在Drivers标记页中定义的ODBC-ZHB,最后按OK确认,就增加了一个名为zhbdb的别名。这样,Table控件可以通过别名zhbdb,别名zhbdb通过Delphi的ODBCDrivers(即:ODBC-ZHB),ODBC-ZHB再通过ODBC数据源ZHB就可连接到SQL-Server服务器上的zhb数据库了。以上相当于完成了在BDE中的注册,接下来就可以进行控件的属性设置了。

  第三步,设置Data Access控件属性以实现与数据库的连接。将Table和DataSource控件加到窗体中并修改Table控件的属性。首先,将DatabaseName属性改为刚才在BDE别名中定义的zhbdb。设置完databaseName属性后,就可以从TableName属性的下拉列表中选择一个表的名字。这其间Table控件要完成与数据库的连接,连接成功后,该列表中才会出现可选的表名。然后,将Active属性改为true,将打开的数据库激活,和DataSource控件建立联系。将Exclusive属性改为true。最后,将DataSource控件的DataSet属性设为Table1。DataSource控件为Table控件与DataControls控件相联系的渠道。通过以上步骤的设置,DataSource1对象就与zhb数据库的某个表建立了联系。以后,只要对DataSource1对象访问,就可以实现对该表的操作了。

  第四步,设置Data Controls控件属性以实现对数据库的操作。一旦Data Access类的控件被成功打开,处于窗口中的Data Controls标记页的控件就可以使用了。这些控件有DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、DBListBox、DBComboBox、DBCheckBox以及DBRadioGroup。这些控件只要设定他们的DataSource和DataFields属性就可以实现对表的读写操作。
  可以看出,Delphi在设计数据库软件方面,尤其是SQLServer数据库方面要比VB来得快;而且,其丰富的控件为界面的设计提供了有利帮助;另外,Delphi的真编译使程序的执行效率相当高,可移植性好。这些,都是VB所欠缺的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该系统分5个模块,功能分别为: 一.人员档案的管理、物料档案管理 设计实现对企业人员基本情况的档案的输入、删除与修改,企业人员基本情况主要包括:人员代码、姓名、性别、出生日期、身份证号、籍贯、家庭住址、联系电话、其它情况等(对身份证号,电话号码合法性验证)。 物料档案包括物料代码、物料名称、规格型号、计量单位、库存数量、备注等字段。 1. 物料档案的增加、修改、删除程序,客户端输入时要求物料代码不为空,计量单位可以选择“件、套、公斤、吨、升、米、毫米、个”等,计量单位并可以输入其它单位名,库存数量默认为0。 2. 物料查询程序可以在通过输入框的文字进行模糊查询(物料代码、名称、规格中是否含有输入框的文字). 二. 简单物料进仓/出仓信息管理 企业物料进出仓的信息管理,物料进出仓的信息主要包括进出仓单号、进出仓日期、操作人员代码、备注、物料代码、进仓数量、出仓数量等 1. 企业仓库进出仓信息表可以用一个表,也可以用二个表(一对多关系),具体表设计的思路须在报告中描述。 2. 进仓程序与出仓程序可以合并,也可以分开做。其中操作人员用下拉框来选择;单号要自己编规则自动生成,单号产生规则在报告中说明;进出仓日期用日期控件;物料代码下拉框做选择;当物料出仓时判断出仓数量时候超过物料的库存数量,物料的库存数量在物料表中可以获得该物料的库存数量。进行进仓或出仓操作时通过调用存储过程来实现,存储过程将操作结果返回调用者,显示成功或失败的信息。 3. 进仓、出仓的存储过程可以合并或分开做,存储过程要判断物料是否存在,操作后物料库存数量是否不为负数;如果不满足条件显示,失败提示;如果满足条件,增加进出仓表记录一条,并根据进出仓物料的数量对物料表中库存数量进行修改,提交数据库操作,否则回滚。 4. 进出仓单查询程序,可以用进出仓日期起止条件,物料代码、操作人员、备注(用子串查询)来完成。 三、多物料进出仓信息管理 一般企业进行物料进出仓时,多在一个进出仓单号上同时对多种物料做同进或同出操作,通过程序实现多个物料在一个界面一个单号上同时实现进仓或出仓操作,如果不成功,必须全部回滚。 1. 多物料进仓出仓,可以在一个程序中完成,也可以分开编程,同一单号中进出仓单号、进出仓日期、操作人员必须完全相同,同一单号中不能进仓与出仓同时存在,通过调用存储过程完成进出仓操作。 2. 多物料进出仓存储过程,多物料进出仓单增加到表中,并修改多个物料的库存数量,失败就显示提示内容。 四、用户登录与权限设计 用户在这里就指操作人员,已经在人员档案中进行管理,通过设计用户登录和用户权限的管理,实现用户按权限访问资源,管理员按要求授予用户权限,登录程序安全稳定,设计用户菜单及程序调用。人员表中需要新增字段口令、用户权限。系统中每个操作人员都可以作为用户,当一个用户权限修改时,不会影响其他用户;可以对每个用户单独授予某个程序的执行权,也可以收回其执行权,而不影响其他用户的权限; 1. 用户登录程序,输入用户名和口令,判断正确后,按用户的权限,显示有权的菜单项,无权菜单项必须不可见或不可操作。 2. 用户授权程序。有授权权限的用户,可以指定某个用户获取某个程序执行权,或被禁止某个程序的执行权。 五、统计程序设计与报表打印 按物料统计进出仓流量,计算分析流动量最小的物料。按月份打印进出仓单表,打印进出仓单,按物料打印仓库账本。 1. 物料统计程序,统计各物料在指定时间内的进出仓数量总数,用图形显示。 2. 打印进出仓单程序,给定月份,将该月进出仓单全部按单号顺序打印出来。 3. 打印仓库账本程序,给定年份和物料,打印物料代码、名称、规格、计量单位、各日期的进仓、出仓和库存量。 资源包含: 1.系统源码 2.数据库及脚本 3.部分1详细说明报告 4.部分2详细说明报告 5.部分3详细说明报告 6.部分4详细说明报告 7.部分5详细说明报告 8.系统总说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值