标题:一步一步的教你做C/S[20070101更新]
只看楼主
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
结帖率:0
 问题点数:0 回复次数:41 
一步一步的教你做C/S[20070101更新]

一步一步教你做C/S系统[
VFP要实现C/S即客户端/服务器的编程,前台要用VFP编程环境开发(这不是废话吗?),现在VFP常用的版本VFP6、VFP8以及VFP9,我个人比较喜欢VFP9,当然,用什么版本完全取决于您自己的喜好!至于后台,可以用SQLSERVER,Oracle ,Informix,MYSQL ,Sybase等等,现在常用的是SQLSERVER,本教程所讲的就是VFP+SQLSERVER,开发环境为WINXP SP2、VFP9 SP1、SQLSERVER SP4。
在论坛中,最近老是有人提问,怎么才能做网络版的程序,越来越多的Visual FoxPro用户开始注意到Client/Server应用程序的重要性,他们开始安装SQL Server并开始深入的研究
Sql Server,我个人认为,其实用VFP开发网络版的程序,最重要并且最先要我们解决的,是怎样使Visual FoxPro与SQL Server在一起顺利的运行,怎样发挥两者的优越特性,而并不是一味的提问,盲目的从网络上down 很多资料,其实书先不要看太多,重要是的是弄懂书上命令的作用以及作者重点讲解的东西,因为那是他们的经验。等到你成功的做出一些网络版的软件,你再回头看从网络上DOWN下来的N个资料,那样理解的更快。
在这里,我再一次重申,我个人比较喜欢和崇拜VFP界泰斗级人物“张洪举”,所以在此,再次向大家推荐他的所有书籍,投入一点点,会使你受益无穷。


实现C/S的方法很多,远程视图,SPT,CA,ADO等等,就个人喜欢而言,我比较喜欢SPT,当然,SPT也有着SPT的缺点,毕竟没有很完美的东西。(CA,ADO建议大家好好学习,我也看过一些资料,不过人懒了,也有许多工作要做,年龄大了也不允许我再前进了,希望大家积极的接受新事物。)
为什么要引入SPT的概念
您也许已经发现了远程视图的不足,是的远程视图的缺陷正是SPT的优势所在:
执行除Select以外的其他的SQL语句,如Insert 、DELETE及Update等
执行后端数据库的存储过程
执行后端数据库的特殊的函数、命令
一次得到多个数据集合
SPT是SQL Pass Through的简写,它与远程视图在一起共同组成Visual FoxPro远程数据访问体系,利用它们你就可以开发完整的Client/Server构架的系统了!与“远程视图”相比,SPT技术也有以下缺陷:
没有图形用户界面
必须人工维护连接
数据集合是“可读写光标”,要使它成为“可更新光标”必须进行设定
是不是看的头有些大?别着急,继续看下去吧!
进入正题了,好好看!
下面介绍SPT的27个指令集
1.SQLCONNECT([DataSourceName,cUserID,cPassword|cConnectionName])
异步建立与数据源的连接。

2.SQLSTRINGCONNECT
([cConnectString])
异步通过连接字符串建立与数据源的连接。

3.SQLDISCONNECT(nConnectHandle)
异步断开数据源连接。

4.SQLGETPROP(nConnectionHandle,cSetting)
异步返回活动连接的当前设置或缺省设置参数值。

5.SQLSETPROP(nConnectionHandle,cSetting[,eExpression])
异步设置活动连接的属性参数值。

6.SQLPREPARE(nConnectionHandle,cSQLCommand[,CursorName])
异步准备

7.SQLEXEC()
远程执行的SQL语句。

8.SQLEXEC(nConnectionHandle[,cSQLCommand[,CursorName]])
同步,异步将SQL语句发送到数据源进行处理。

9.SQLCANCEL(nConnectionHandle)
异步请求取消正在执行的SQL语句。

10.SQLMORERESULTS(nConnectHandle)
同步,异步如果有多个结果集,将另一个结果集复制到光标中。

11.SQLCOLUMNS(nConnectionHandl,Tablename[,"FOXPRO"|"NATIVE"]
[,CursorName])
同步,异步将数据源指定表的列信息存放到Visual FoxPro光标中。

12.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
同步,异步将数据源中表的信息存放到Visual FoxPro光标中。

13.SQLCOMMIT(nConnectionHandle)
异步提交一项事务。

14.SQLROLLBACK(nConnectionHandle)
异步取消当前事务处理过程中所做全部处理。

15.SQLCONNECT([DataSourceName,cUserID,cPassword|cConnectionName])DataSourceName指定ODBC.ini文件中定义的数据源的名称;
cUserID注册到数据源的用户名称;
cPassword资料源用户口令;
cConnectionName由CREATE CONNECTION创建的命名连接.
数值型正整数执行成功;
-1出现连接层错误;
-2出现环境层错误.

16.SQLSTRINGCONNECT([cConnectString])
cConnectStringODBC驱动器所要求的数据源连接串,
Visual FoxPro将连接串传递给ODBC驱动器.
数值型 正整数执行成功;
-1出现连接层错误;
-2出现环境层错误.

17.SQLDISCONNECT(nConnectHandle)
nConnectionHandle连接句柄.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

18.SQLGETPROP(nConnectionHandle,cSetting)
nConnectionHandle连接句柄;
cSetting连接属性名称. 数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

19.SQLSETPROP(nConnectionHandle,cSetting[,eExpression])
nConnectionHandle连接句柄;cSetting连接属性名称;
eExpression连接属性参数值.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

20.SQLPREPARE(nConnectionHandle,cSQLCommand[,CursorName])
nConnectionHandle连接句柄;
cSQLCommand传递到数据源的SQL语句;
CursorName存放结果集的光标名称,缺省光标名SQLRESULT.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

21.SQLEXEC(nConnectionHandle[,cSQLCommand[,CursorName]])
nConnectionHandle连接句柄;
cSQLCommand传递到数据源的SQL语句;
CursorName存放结果集的光标名称,缺省光标名SQLRESULT.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

22.SQLCANCEL(nConnectionHandle)
nConnectionHandle连接句柄.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

23.SQLMORERESULTS(nConnectionHandle)
nConnectionHandle连接句柄.
数值型 2已经没有资料;
1执行成功;
-1出现连接层错误;
-2出现环境层错误.

24.SQLCOLUMNS(nConnectionHandl,Tablename[,"FOXPRO"|"NATIVE"]
[,CursorName])
nConnectionHandle连接句柄;
TableName返回其列名的表的名称;
FOXPRO|NATIVE列信息的格式;
CursorName存放结果集的光标名称,
缺省游标名SQLRESULT.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

25.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
nConnectionHandle连接句柄;
cTableTypes指定一个或几个表类型,
类型有'TABLE','VIEW','SYS TEM TABLE'或者数据源特定的合法的表类型标识符,必须大写,
若多个类型,各类型间以逗号分隔;
CursorName存放结果集的光标名称,
缺省游标名SQLRESULT.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

26.SQLCOMMIT(nConnectionHandle)
nConnectionHandle连接句柄.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.

27.SQLROLLBACK(nConnectionHandle)
nConnectionHandle连接句柄.
数值型 1执行成功;
-1出现连接层错误;
-2出现环境层错误.
这下头才真正的大了吧,继续看吧。
不必刻意的去记这些,因为VFP9有智能感应,我现在根本不去记那些属性之类的,用VFP的智能感应,又快又准确~~~~~~
把上面的函数归纳一下,常用的如下:
连接函数
连接建立函数:SqlConnect(),SqlStringConnect()
连接的断开函数:SqlDisconnect()
核心的执行函数
SQL语句传输及执行函数:SqlExec(),SqlPrapare()
批次模式下更多数据集的取得函数:SqlMoreResults()
异步模式下撤销正在执行的SPT的函数:SqlCancel()
事务处理函数
SqlCommit(),SqlRollBack()
连接通道属性函数
SqlGetProp(),SqlSetProp()
数据源的信息截取函数
SqlTables(),SqlColumns()


(待续,时间有限,工作太心,才写了一个开头,就已经十几页了,先发一点点上来)

[此贴子已经被作者于2007-1-1 9:04:55编辑过]

搜索更多相关主题的帖子: 编程 应用程序 Oracle 网络版 教程 
2006-09-05 21:35
linwm
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-7-18
得分:0 
期待中。。。

2006-09-05 22:33
haibohuang
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-7-23
得分:0 

3Q

[此贴子已经被作者于2006-9-6 8:54:06编辑过]


唱歌的时候人家都叫我华仔或者ANDY,在这里,我叫haibohuang(答复我贴的,赠送俺演唱会的门票一张)
2006-09-05 22:40
btchongzi
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2006-8-22
得分:0 
斑竹!太好了
2006-09-06 08:51
lndsqfyq
Rank: 1
等 级:新手上路
帖 子:232
专家分:0
注 册:2006-1-16
得分:0 
非常感谢我就需要这个现在。

2006-09-06 15:24
vfp_yang
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-5
得分:0 
极力支持FOWN!当之不愧的斑竹!!!!强力支持!!!!一定要出书!一直以来都用VFP,常被人家说这是过时的东西,现在终于有组织了,有问题再问斑竹啊!支持

用VFP的人还有许多,所以永远不可能退出历史舞台!深度痴迷于VFP。
2006-09-07 10:52
lidong001
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-4-12
得分:0 
我已经在这问题上彷徨了大半年了!
期待中。。。
2006-09-07 11:15
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 
今天上午在单位写了一些,因为手头上有账要查,还有给一个朋友的程序要写,今天刚参加完电视台的节目录制,比较忙,尽量写吧,已经写了快三十页了

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-09-07 18:36
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
得分:0 
to fown 版主:
首先向你道一声:辛苦了。
学习网络编程,我早有这个意向,也看过一本书,不过很简单,不得要领。论坛上大家都有这个要求,所以您的这个帖子太及时了。您在百忙之中,辛勤耕耘在这个论坛上,不计名利,不辞劳苦,钦佩!!!
向您提个建议,本贴希望大家不要跟帖,把您的大作一帖到底,连贯起来,就是一篇好教材,就是一本好书。
大家有何问题,可以另外发表帖子讨论。
包括我这贴,删掉。不知当否?

认真看书学习,弄通Fox主义。
2006-09-07 20:34
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 
不用,至于贴子我自己有办法

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-09-07 21:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-88307-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.317513 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved