vfp+sql使用方法.doc_第1页
vfp+sql使用方法.doc_第2页
vfp+sql使用方法.doc_第3页
vfp+sql使用方法.doc_第4页
全文预览已结束

下载本文档

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

文档简介

VFP因它简单易学,可快速建立应用软件而深受广大程序员喜爱,但其数据库系统不安全也是令广大用户非常头痛。随着MS SQL SERVER数据库系统的推广应用,其强大的安全性能普遍受到好评。笔者在长期的编程实践中发现利用VFP的SQL PASS-THROUGH(SPT) 技术结合MS SQL SERVER 数据库系统,也能象VB、DELPHI、POWERBUILDER一样轻松开发出优秀的客户/服务器(C/S)应用软件。现通过编写一个简单的通信录例子和广大VFP爱好者共同探讨。一、服务器端MS SQL SERVER数据库设计 1、在MS SQL SERVER中建立名为“SFXT”的数据库。 2、在SFXT数据库中建立名为“通信录”的表,结构如下: 列名(字段名) 数据类型 长度 姓名 CHAR 8 生日 DATETIME 8 电话 CHAR 11 EMAIL CHAR 30 并将姓名设置为主键 3、在SFXT数据库中建立查询出所有记录的存储过程 SP_SEARCHALL CREATE PROCEDURE SP_SEARCHALL AS SELECT * FROM 通信录 ORDER BY 姓名 RETURN 4、在SFXT数据库中建立插入新记录的存储过程 SP_INSERTDATA CREATE PROCEDURE SP_INSERTDATA NAME CHAR (10), BIRTHDAY DATETIME, TELEPHONE CHAR (11), EMAIL CHAR (30) AS INSERT INTO 通信录(姓名,生日,电话,EMAIL) valueS (NAME,BIRTHDAY,TELEPHONE,EMAIL) RETURN二、客户端VFP的SQL PASS-THROUGH技术设计 1、建立VFP表单界面,按钮内容如下 建立ODBC数据源 建立连接方式1 建立连接方式2 活动连接属性设置 执行存储过程查询数据 执行SQL语句查询数据 向存储过程传替参数插入新记录 设置当前表的属性修改数据 断开指向数据源的连接 退出程序 2、建立名为SFXT的ODBC数据源连接MS SQL SERVER中的SFXT数据库 可通过执行上面VFP表单的按钮建立ODBC数据源来完成;或者通过运行WINDOWS控制面板中的ODBC数据源来 完成,主要设置包括选择SQL SERVER驱动程序,通信协议,登录标识与密码等。 建立ODBC数据源按钮的CLICK事件: *函数说明SQLSTRINGCONNECT(CCONNECTSTRING) *省略连接字符串CCONNECTSTRING时显示SQL数据源对话框,可选择或新建数据源。 SQLSTRINGCONNECT() 3、两种连接MS SQL SERVER数据源的方式。 使用现有数据源名称建立连接,建立连接方式1按钮CLICK事件: PUBLIC VODBC,VUSER,VPWD,VCONN VODBC=SFXT &连接SQL SERVER数据库ODBC数据源名称 VUSER=SA &访问SQL SERVER数据库的登录用户名,SA为系统用户 VPWD=5213 &用户登录密码,为SA系统用户设置的密码 VCONN=SQLCONNECT(VODBC,VUSER,VPWD) IF VCONN0 MESSAGEBOX(连接成功!,64,ODBC数据源) ELSE MESSAGEBOX(连接失败!,64,ODBC数据源) ENDIF 使用连接字符串建立数据源连接,“建立连接方式2”按钮CLICK事件: PUBLIC VCONN VCONN=SQLSTRINGCONNECT(DSN=SFXT;UID=SA;PWD=5213) IF VCONN0 MESSAGEBOX(连接成功!,64,ODBC数据源) ELSE MESSAGEBOX(连接失败!,64,ODBC数据源) ENDIF 4、数据源连接的主要参数设置,“活动连接属性设置”按钮CLICK事件: *注:用函数SQLGETPROP()可返回设置的参数 SQLSETPROP(VCONN,ASYNCHRONOUS,.F.) &取假值时结果为同步返回,取真值时为异步返回 SQLSETPROP(VCONN,CONNECTTIMEOUT,15) &连接超时等待秒数设置,可取值0至600 SQLSETPROP(VCONN,IDLETIMEOUT,0) &空闲超 时间隔秒数,取0为无限期等待 SQLSETPROP(VCONN,TRANSACTIONS,1) &取1时为自动处理远程事务,取2为手工处理 5、执行存储过程查询数据按钮CLICK事件: *函数说明SQLEXEC(NCONNECTIONHANDLE,CSQLCOMMAND,CURSORNAME) *NCONNECTIONHANDLE 当前数据源活动连接句柄 *CSQLCOMMAND 执行SQL SERVER存储过程的SQL语句表达式 *CURSORNAME 返回执行结果临时表的名称 SQLEXEC(VCONN,EXECUTE SP_SEARCHALL,我的通信录) BROWSE 6、执行SQL语句查询数据按钮CLICK事件: *函数说明SQLEXEC(NCONNECTIONHANDLE,CSQLCOMMAND,CURSORNAME) *NCONNECTIONHANDLE 当前数据源活动连接句柄 *CSQLCOMMAND 执行SQL SERVER存储过程的SQL语句表达式 *CURSORNAME 返回执行结果临时表的名称 SQLEXEC(VCONN, SELECT * FROM 通信录 ,我的通信录) BROWSE 7、向存储过程传替参数插入新记录按钮CLICK事件: LOCAL VNAME,VBIRTHDAY,VTELEPHONE,VEMAIL,VSQL *随机产生新记录举例 VNAME=姓名+SYS(3) &姓名 VBIRTHDAY=DTOC(DATE()-INT(RAND()*10000) &生日 VTELEPHONE=SYS(3) &电话 VEMAIL=SYS(3)+HOTMAIL.COM &电子邮箱 *将传递到存储过程的参数转换成字符串,并加引号形成SQL语句 VSQL=EXECUTE SP_INSERTDATA +VNAME+,+VBIRTHDAY+,+VTELEPHONE+,+VEMAIL+ IF SQLEXEC(VCONN,VSQL)0 MESSAGEBOX(插入记录成功!,64,信息) ELSE MESSAGEBOX(插入记录失败!,64,信息) ENDIF SQLEXEC (VCONN, EXECUTE SP_SEARCHALL ,我的通信录) BROWSE 8、设置当前表的属性修改数据按钮CLICK事件: *注:用函数CURSORGETPROP()可返回设置的参数 CURSORSETPROP(BATCHUPDATECOUNT,100) &发送到缓冲表的远程数据源的更新指令的数目 CURSORSETPROP(BUFFERING,3) &设置当前表为开放式行缓冲 CURSORSETPROP(FETCHSIZE,-1) &从远程表中提取全部查询记录 CURSORSETPROP(KEYFIELDLIST,姓名) &指定远程表的主关键字段 CURSORSETPROP(SENDUPDATES,.T.) &当前缓冲表更改内容时发送SQL语句更新远程表 CURSORSETPROP(TABLES,通信录) &指定连接的远程表名 *本地缓冲表与远程表字段对应关系 CURSORSETPROP(UPDATENAMELIST,姓名 通信录.姓名,生日 通信录.生日,电话 通信录.电话,; EMAIL 通信录.EMAIL) *指定可更新字段列表 CURSORSETPROP(UPDATABLEFIELDLIST,姓名,生日,电话,EMAIL) CURSORSETPROP(UPDATETYPE,1) &远程表更新方式,替换方式

温馨提示

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

评论

0/150

提交评论