动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > 数据库技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 数据库技巧 ]的信息



本月文章推荐
.教你轻松掌握数据仓库的规划和构.
.有助于数据创建安全环境的重要功.
.如何用RAMDISK来提高PostgreSQL访.
.MS SQL Server存储过程参数的隐式.
.带你深入了解高效的内存数据库系.
.如何恢复/修复SQL Server的MDF文.
.[SQLServer2000]TEMPDB丢失或TEM.
.Sql Server 2000+Sql Server Mob.
.存储过程中如何使用事务.
.用SQL Server Everywhere保存离线.
.使用标准I/O进行Informix同时备份.
.MS SQL用ROWCOUNT解决TOP子句不支.
.提数据高分页效率.
.自定义用于ASP Web站点的SQL 7.0.
.SQL Server 2005数据加密技术的实.
.安装Ms SQL Server 2005 开发版时.
.SQL Server 2005 - 如何实作CLR存.
.利用自定义分页技术提高数据库性.
.怎么清除sql server日志.
.可以进行批量表删除的Informix数.

VFP中用SPT访问SQL Server数据库

发表日期:2007-4-21 |


     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数据库中建立名为“通信录”的数据表,表结构如下:
  列名(字段名) 数据类型   长度
  姓名 chr 8
  生日 datetime 8
  电话 chr 11
  email chr 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. 建立如(^15020603b^)的VFP表单界面。
  2. 建立名为“SFXT”的ODBC数据源连接MS SQL Server中的SFXT数据库。
  可通过执行上面VFP表单的按钮“建立OBDC数据源”来完成;或者通过运行Windows控制面板中的“OBDC数据源”来完成。主要设置包括选择SQL Server驱动程序,通信协议,登录标识与密码等。
  “建立OBDC数据源”按钮.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 vconn>0
  messagebox('连接成功!',,'ODBC数据源')
  else
  messagebox('连接失败!',,'ODBC数据源')
  endif
  使用连接字符串建立数据源连接,“建立连接方式2”按钮.CLICK事件。
  public vconn
  vconn=SQLSTRINGCONNECT('dsn=sfxt:uid=sa:pwd=5213')
  if vconn>0
  messagebox('连接成功!',,'ODBC数据源')
  else
  messagebox('连接失败!',,'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语句表达式
  *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     &&发送SQL语句
  messagebox('插入新记录成功!',,'信息')
  else
  messagebox('插入新记录不成功!',,'信息')
  endi
  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)     &&远程表更新方式,替换方式
  cursorsetprop('WhereType',3)    &&更新SQL语句中where子句包含主关键字与被修改过的字段
  browse  &&修改缓冲表数据,移动记录指针后,自动发送SQL语句更新远程表
  9. “断开指向数据源的连接” 按钮.CLICK事件。
  sqldisconnect(vconn)
  10.“关闭” 按钮.CLICK事件。
  thisform.release
  以上我们利用VFP的SQL pass-through技术编写了一个简单的通信录管理程序,实现对SQL Server数据库中数据的插入、查询、修改等基本功能,是一个典型的客户/服务器(C/S)结构的应用程序。希望对读者今后开发软件有所帮助。
上一篇:SQL SERVER 2000 安装(症状归纳)到2007.04.19 人气:3240
下一篇:成批更改sql server数据库所有者的对象 人气:2742
浏览全部SQL Server的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-23 Menalto Gallery v2.3 Rc1 多国语
2008-7-23 深度学习网址导航系统 v2.6.1
2008-7-23 因特达crm2008客户关系管理系统
2008-7-23 60度 CMS v1.0 Build 080723
2008-7-23 幻影动漫网视频系统(Ppdong) v1.
2008-7-23 好易祝福墙 2008
2008-7-23 APJE私服发布系统 v2.0 PHP版
2008-7-23 毕业论文在线指导系统源码
2008-7-23 Jacky法律在线网站源码
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵