调用腾讯截图
红虎
分享VFP下如何调用腾讯截图,拿走不谢
方法1:
Declare integer PrScrn in "PrScrn.dll"
PrScrn()
方法2:
Declare Integer CameraSubArea in "CameraDll.dll" integer
?CameraSubArea(0)
红虎
分享VFP下如何调用腾讯截图,拿走不谢
方法1:
Declare integer PrScrn in "PrScrn.dll"
PrScrn()
方法2:
Declare Integer CameraSubArea in "CameraDll.dll" integer
?CameraSubArea(0)
所有Select加 With (NoLock)解决阻塞死锁,在查询语句中使用 NOLOCK 和 READPAST
处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST的一些技术知识点:
对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题。
NOLOCK 和 READPAST 都是处理查询、插入、删除等操作时候,如何应对锁住的数据记录。但是这时候一定要注意NOLOCK 和 READPAST的局限性,确认你的业务逻辑可以容忍这些记录的出现或者不出现:
简单来说:
在我们将数据操作和界面操作分离的同时,我们也完成了数据操作的封装。
你可以为 MyCursor 类 添加 Edit、Deleted 自定义方法,然后在表单和数据环境类中添加对应的调用方法。这样,你就完成了针对DBF操作的数据操作封装。假设,表单长了翅膀飞走了,那么,你完全可以用这样的代码来操作数据:
接下来要干的活,就是把数据环境中表的字段拖到表单上。。。。然后,你先自己完成这个表单,用你自己的方式。。。我去休息一会。。。。。
仔细的看客会发现前面的叙述有一点点逻辑上的谬误。在这里,我就不更改了。。。毕竟,假设的实验场景仅仅是描述了一下我们准备创建的 Cursor 对象大概是个什么样子。
那么,到这里,就应该讲清除这个 Cursor 对象的作用是什么了。否则,会继续有人看不懂。。。
Cursor 对象所起的作用有两个:第一,将界面操作和数据操作分离;第二,封装标准的数据操作语句。这才是真正的目的。
为什么要分离界面元素的操作和数据操作呢?我想,你可以回顾下你以往的编程经历。。。。当你复制一个已有表单进行修改以适应新的系统的时候,如果你记忆力足够好,那么,你可能会很迅速的解决问题,但是如果很不巧的是被复制的表单是N年前写滴或者是你的记忆出现失误,我想,那绝对不是一件很愉悦的感受。。。。但是,假设,如果,你原来的代码是界面元素操作和数据操作相分离的,我想,修改起来,应该就很容易了。。。
搞SPT很熟练的老手,最讨厌的估计就是那长长的设置语句。。。性子急的呢,干脆自己封装个PRG来完成这个代码过程,慢性子估计就只好老老实实的一个个字符敲喽。。。既然都已经封装成PRG了,我想,大概不会反对我再进一步封装出一个对象出来吧。。。
那么,本地应用呢?F/S架构应用呢?如果你好好想想,其实,它们最大的区别就是在数据操作前和数据操作后代码所执行的动作。而操作数据本身,有区别吗?
所以,为了自己,为了减少以后修改的痛苦,让代码有一个更容易的维护状态,应该就是你理解和使用我所介绍的技术的起点。
有人说,我只会操作DBF啊,能学会吗?我可以告诉你,足够了。。。哪怕你仅仅只会 append 、replace 这样的简单的 VFP 命令。当然,如果你肯用用心看看远程视图,然后再去学学SPT,那么,你会发现你的功力是“蹭蹭蹭”的往上窜,就好像打了鸡血一样。。。如果,我是说如果,你肯静下心来多问几个为什么的时候,你会发现,你其实在构建自己的BLL和DAL。。。。。扯远了哈。。。。“深入浅出”是本贴主题。。。
首先,我们先来复习下关于数据库的几个基本概念。到死都坚持用自由表的童鞋们也可以一起来学习一下下。
在字段级别,数据库有字段级规则;在记录级别,数据库有记录级规则;在表级别,有触发器。如果你不明白这些概念,那么你可以打开 Home() + [Samples\Northwind] 目录下的 DBC。。。。别看英文。。。看这些规则和触发器的设置,你会发现,这玩意儿并没有特别难理解的地方。。。
当你对这些规则和触发器一般般熟悉的时候,就可以了。学以致用吗,这样,你看我后面的描述时才不会吃力。等你看完整篇帖子后,你再决定要不要继续深入细致的学习这些玩意儿。
吾不知其名,强名之
备选名:
你还没这么做嘛?大神现场教你做框
紧急通知,这个牌子的框,不能买了
神密代码惊现某论坛,全员被监控
价值千万代码,某论坛全面泄露
狐狸的末日,世纪末救世主传说
不可不看,神奇代码惊现江湖
你开发还用这个嘛? 未来五年怎么成为高收入人群
家中有了这个,马上成为百万富翁
开发中使用了这个,三年的事情三天弄完
......
Function VFUnEscape(pstrInput)
Local i As Integer, c As String, d As Long
i = 1
UnEscape =[]
do While i <= Len(pstrInput)
c = substr(pstrInput, i, 1)
i = i + 1
If c = "%" Then
*********************************
***Excel智能导入Grid
*!*Create By Alan Hung
*!*Create Date:2016-06-29
**********************************
FUNCTION myExcelToGrid
LPARAMETERS LoGrid
IF VARTYPE(LoGrid)<>'O'
向表单拖放文件,文件路径及名称显示到列表框中
*------------------------------------------
By:dkfdtf
之前用API实现过,不过这个更简单,利于VFP本身的功能即可。
如:在一个表单上加一个List列表框控件
1. 设置此列表框的 OLEDropMode=1
2. 在列表框的 OLEDragOver 事件中写代码:
Lparameters oDataObject,nEffect,nButton,nShift,nXCoord,nYCoord,nState
Local loJs, JsonIo, JsonT
loJs = CreateObject("MSScriptControl.ScriptControl")
loJs.Language = "JavaScript"
loJs.AddCode('var jsonio = {get:function(o, p){return eval(p);}}')
JsonIo = loJs.CodeObject.jsonio