使用VFP9进行C/S系统的快速开发

623f5ca22b3995d6c3be3e3d510ce6c8.gif

建立本地数据库系统后按一般的本地系统方式开发. 

在这个过程中应当注意一些细节问题: 

避免使用没有打开的表,避免使用代码打开表,而应当是使用表单的数据环境打开表. 

避免使用那些需要索引的函数. 

避免修改表的缓存方式,避免对表进行锁定. 

尽量避免使用事务 

这些细节并不是说一定不可以使用这些功能,而是说,应当尽量避免使用这样的方式,如果使用其它方式花费的代价并不是很大时,应当避免使用这些方式去实现功能. 

然后,运行VFP自带的数据升迁工具将数据库升迁到数据库服务上(一般情况下我们使用的是MSSQL) 

然后,我们只需要修改表单的数据环境,将其中的表更换为CurosrAdapter,并使用CurosrAdapter向导来生成它相关的属性,那么,在绝大多-数情况下,我们可以不修改表单中任何代码而使它正常运行在远程数据库为后台的环境中,如同使用本地表系统为后台时一样. 

这里有一些细小的区别,需要我们在设计应用时注意的,例如,我们并不应当像使用本地表一样,不管表中的数据有多少,都是完整的析开,然后查询,然后... 

如果在CS系统中也这样做的话,结果就会让网络不断的忙于从服务器下载数据,这显然并不是我们希望的.我们可以随时调用相应的CurosrAdapter的Cu-rsorFill方法重新下载数据,我们也可以在调用CurosrFill前重新设置它的SelectCommand属性中的查询语句----这个语句将影响到-返回的数据集.我们可以在表单或者别的什么地方保存下基本的查询语句(一个不带查询条件的语句),然后,随时可以根据需要生成一个附带有条件的查询语句来填充S-electCommand属性再调用CursorFill方法从服务器提取数据. 

避免使用没有打开的表与避免使用代码打开表的原因是,如果我们这样做了,那么,在升迁后,我们需要手动的书写代码来建与之对应的CurosrAdapter对象-,这将增加我们的工作量,这显然并不是提高工作效率的方式. 

对于那些需要索引的函数,我们不能在使用CA的同时使用它,因为那是一个临时表,它是没有索引的,如果我们动态的建立索引,又受到临时表缓冲的限制,与其处理缓-冲带来的麻烦,我们还不如避免使用那些需要索引的函数来得好,毕竟,在本地的数据集中,我们的数据量并不是很多,我们可以在不使用索引引的情况下得到很快的速度-,这应当是可以满足用户的使用体验需求了.当然,我们可以对那些需要索引的函数进行包装,例如我比较喜欢使用IndexSeek()来在指定表中定位一条记录,-在没有索引时我就使用IndexSeekEx()函数完成这一工作,这个函数在有相应索引时调用IndexSeek(),在没有索引时使用Locate命令实现-这一功能,于是,我就在程序中只使用这个自定义的函数就可以了. 

事务的问题一般情况下并不是大问题,我们可以很方便的在建立本地事务的同时也在服务器上同时打开事务,但这毕竟是需要一定的代码的,所以,一般情况下,我是能够-避免使用事务就避免使用,这样看起来好像也是节约了代码. 

不过近来我发现,使用事务也并不需要花费多少代价的,我们只需要将事务的三个函数进行包装就可以了.以下是关于开始事务的包装函数 

***************************************************************************-***** 

*同时在本地与数据库服务器上开始事务 

*任何错误都会导致本地事务与服务器事务关闭 

函数返回一个逻辑值来表示是否成功的在本地与服务器开始了事务 

***************************************************************************-***** 

Function TransBegin() As Boolean Local lReturn Try   Begin TransAction   If VarType(m.nConn)$"IN" And m.nConn>0 Then     m.lReturn = (SQLExec(m.nConn,"Begin Trans")=>0)     If m.lReturn = .F. Then       RollBack     EndIf   Else     m.lReturn = .T.   EndIf Catch   m.lReturn = .F.   RollBack EndTry Return m.lReturn EndFunction

这样,我们就可以放心的在代码中使用事务了.其它的两个包装函数与之类似,大家可以自己编写.

猫猫的心里话

加菲猫的VFP|狐友会社群接收投稿啦

加菲猫的VFP,用VFP不局限VFP,用VFP混合一切。无论是VFP,还是JS,还是C,只要能混合起来,都可以发表。

商业模式,销售技巧、需求规划、产品设计的知识通通可以发表。

暂定千字50元红包,,优秀的文章红包更大,一经发表,红包到手。

如何帮助使用VFP的人?

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。

我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。

加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"

我已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

2024年狐友会社群会员继续招募中

社群会员获取的权益有:

祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。

开放的录播课程有:

微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。

源码类资源有:

支付组件源码,短信源码,权限组件源码,一些完整系统的源码。这个可以单独出售的,需要的可以联系我。

会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务

43fd414f23ad10b3d608e34970b3eae5.gif

878bd00a4e4b274571abde54d5ab108d.jpeg

9160f568980cf001466d862d64e36caf.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值