APP下载

用VFP+SQLSERVER实现C/S架构的学籍管理系统*

2010-12-13易学文

黄冈职业技术学院学报 2010年2期
关键词:文本框表单语句

易学文

(黄冈职业技术学院招生处,湖北黄冈,438002)

用VFP+SQLSERVER实现C/S架构的学籍管理系统*

易学文

(黄冈职业技术学院招生处,湖北黄冈,438002)

采用VFP作前台开发工具,SQLSERVER作后台数据库服务器,设计C/S架构的学籍管理系统,并以实例介绍实现VFP与SQLSERVER的连接、增加、修改、删除、查询等方法。

VFP;SQLSERVER;学籍管理系统

VFP(Visual FoxPro)以简单易学、可快速建立应用程序等特点深受广大程序员喜爱。但是,VFP存在数据安全性欠佳、保密性较差的缺点,只适合开发桌面型数据库管理系统。SQL SERVER是大型数据库管理系统,在数据安全性、保密性等方面都有显著优势,可以很好的支持客户端/服务器(Client/Server)架构的大中型数据库系统。很多程序员都采用VB+SQL SERVER、VC+SQL SERVER、DEPHI+SQL SERVER实现C/S架构的数据库管理系统,其实,用VFP+SQL SERVER也能够实现[1]。本文以学籍管理系统为例,谈谈用VFP+SQL SERVER实现C/S架构的方法。

1 服务器端数据库设计

在服务器上安装数据库SQL SERVER2000,建立学籍管理数据库XJGL,并在数据库中建立数据表,包括用户表、权限表、授权表、班级表、学生表、考核表、异动表等,本例仅介绍学生表(表名为xsb),表结构如下:

XH CHAR 12 否 学号,主键KSH CHAR 14 是 考生号BJ CHAR 10 是 班级XM VARCHAR 20 是 姓名XB CHAR 2 是 性别SFZH CHAR 18 是 身份证号JTDZ VARCHAR 100 是 家庭地址YZBM CHAR 6 是 邮编DH VARCHAR 50 是 电话BZ VARCHAR 50 是 备注信息

2 客户端程序设计

客户端程序设计主要是完成与数据库的连接和各功能模块的实现。VFP和SQL SERVER实现C/S架构,其连接技术可以通过远程视图、ADO控件和SPT(Sql Pass Through)三种方式进行。SPT(Sql Pass Through)是指可以将任何符合SQL SERVER语法的命令从前端通过连接通道送至后端的SQL SERVER来执行,前端与后端可以进行直接、有效的沟通。VFP中SPT(Sql Pass Through)是通过函数来完成的,常用的函数有:

SQLSTRINGCONNECT()

使用连接字符串建立数据连接

SQLDISCONNECT()

终止与数据源的连接

SQLEXEC()

将SQL语句送入数据源中处理

SQLCANCEL()

取消正在执行的SQL语句[2]

本文采用SPT方式实现与数据库的连接,即首先利用 SQLSTRINGCONNECT()与 SQL SERVER建立连接,然后用SQLEXEC()函数把要执行的SQL命令送到SQL SERVER上去执行,所有对数据的操作都是通过这些SQL命令来进行的。

2.1 建立过程和函数文件

建立程序文件conn.prg,包含连接、断开、查询等过程和函数。con-data为连接过程,dis-data为断开连接过程,sql-cx1是查询过程。服务器为hgzy,数据库为xjgl,数据库超级用户为sa,密码为sa,程序代码如下:

MESSAGEBOX(“数据库连接失败!”,16,“错误信息”)

MESSAGEBOX(“读取数据错误!”,16,“错误信息”)

连接过程 Con-data,利用 VFP提供的 SQLSTRINGCONNECT函数实现与SQLSERVER的连接,如果连接成功,SQLSTRINGCONNECT函数返回正的、非零句柄,否则连接失败。只有与SQLSERVER数据库连接成功,才能对其进行添加、修改、删除、查询等操作。断开连接过程Dis-data,利用VFP提供的SQLDISCONNECT函数实现终止与数据库的连接。查询过程sql-cx1,利用VFP提供的SQLEXEC函数,本例将一条SQL语句送到SQLSERVER中处理,查询结果保存在临时表mycx1.dbf中。执行SQLEXEC函数将返回一个数值,如果此数值小于0,则表示执行失败,否则执行成功[3]。

2.2 表单设计

在VFP中建立表单,表单包括10个文本框,分别用于输入和修改学生表的信息,1个表格控件(设置为只读属性,即ReadOnly=.T.),显示学生表数据,5个命令按钮,分别为添加、修改、删除、重置、退出。

2.2.1 设置表单初始化事件和释放表单对象代码

表单运行时,首先连接数据库,如果连接失败,提示出错信息,并返回。连接成功后,指定表格的数据源,即学生表的查询结果mycx1。表单的init事件代码如下:

表单退出时,关闭临时表,表单的unload事件代码如下:

2.2.2 设置表格的单击(click)事件和改变表格单元格焦点(AfterRowColChange)事件

单击表格或移动表格中的光标,文本框显示当前记录学生信息。分别在表格的click和AfterRow-ColChange事件中添加代码,代码设计为:首先选择工作区,即SELECTmycx1,然后将mycx1表中当前记录字段数据分别显示在文本框text1至tex10中,如Thisform.text1.value=xh,……,最后,刷新数据,Thisform.refresh。

2.2.3 添加按钮click事件代码

将文本框中的值添加到服务器的学生表xsb中,程序设计如下:首先将10个文本框的值分别赋值给10个变量tx1至tx10,如tx1=thisform.text1.value,……,然后在mycx1表中,判断新增学号是否存在,如果存在此学号不允许添加,不存在此学号(即xsb表中没有)则添加记录。此部分代码为:

MESSAGEBOX(“学号[”+tx1+“]已存在!不能添加”,16,“错误信息”)

MESSAGEBOX(“信息增加失败!”,16,“信息提示”)

MESSAGEBOX(“信息增加成功!”,15,“信息提示”)

ENDIF

2.2.4 修改按钮click事件代码

选择表格中的学生,然后在文本框中修改,点击修改命令按钮,完成修改操作。代码设计与添加按钮类似,即去掉添加按钮的“判断新增学号是否存在,如果存在不允许添加”的查找和判断语句,然后将“SQL插入记录语句”改为以下语句即可。

str1=“UPDATE xsb SET xh=?tx1,ksh=?tx2,bj=?tx3,xm=?tx4,xb=?tx5,sfzh=?tx6,jtdz=?tx7,yzbm=?tx8,dh=?tx9,bz=?tx10 WHERE xh=?tx1”&&SQL修改记录语句

2.2.5 删除按钮click事件代码

在表格中选择要删除的记录,然后点击删除按钮,删除学生表中的记录,代码如下:

IFMESSAGEBOX(“学号:”+xh+“姓名:”+xm1+chr(13)+“真的要删除此学生信息吗?”,32+1,“提示”)=1

MESSAGEBOX(“删除失败!”,16,“信息提示”)

2.2.6 重置按钮click代码

将10个文本框内容重置为空,代码如下:

2.2.7 退出按钮的click事件代码DO dis-data in conn RELE THISFORM

3 结束语

用VFP+SQL SERVER搭配做C/S架构的网络数据库系统,解决了VFP作为独立数据库的不足,为VFP爱好者开发大中型数据库管理系统提供了良好的开发平台。

[1]王平水.基于VFP6.0的C/S结构数据库系统的开发[J].电脑知识与技术,2008.

[2]林华.VFP/SQL SERVER设计C/S系统.湖南科技学院学报,2005.

[3]Microsoft Corporation.Visual FopxPro6.0中文版语言参考手册[Z].北京希望电脑公司,1999.

The Status Management System of C/S Realized by VFP+SQLSERVER

YI Xue-wen
(Huanggang Polytechnic College,Huanggang,438002,Hubei)

Applying the VFP as the developing tool,the SQLSERVER as the database server,design the C/S status management system,and introduce the connection,increase,edition,delete,search,etc.with examples.

VFP;SQLSERVER;Status management system

TP311.1

A

1672-1047(2010)02-0019-03

10.3969/j.issn.1672-1047.2010.02.06

2010-3-20

易学文(1977-),男,副主任科员。Email:yiw@hgpu.edu.cn

[责任编校:秦春娥]

猜你喜欢

文本框表单语句
电子表单系统应用分析
巧用文本框实现PPT多图片排版
重点:语句衔接
PPT文本框的另类应用
浅谈网页制作中表单的教学
文本框酷变3D效果
如何搞定语句衔接题
动态表单技术在教学管理中的应用*
基于Java可视化测绘生产流程表单的设计及实现
文本框在地理课件中的应用