VFP的13个SPT函数
Visual FoxPro 中内置了13个以SQL开头的函数,我们把它们称为SPT函数。就是这13个函数完成了Visual FoxPro的所有的SQL Pass Though功能。从功能上看,我们可以把它们分成五个部分:
一、连接函数:
连接建立函数:SqlConnect(),SqlStringConnect()
连接的断开函数:SqlDisconnect()
二、核心的执行函数:
SQL语句传输及执行函数:SqlExec(),SqlPrapare()
批次模式下更多数据集的取得函数:SqlMoreResults()
异步模式下撤销正在执行的SPT的函数:SqlCancel()
三、事务处理函数:
SqlCommit(),SqlRollBack()
四、连接通道属性函数:
SqlGetProp(),SqlSetProp()
五、数据源的信息截取函数:
SqlTables(),SqlColumns()
用法:SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])
例:SQLEXEC(hconn,"SELECT * FROM EMPLOYEES","MyCursor")
Browse
例:SQLEXEC(hconn,"") &&一个空的命令发送,返回1的话证明连接可用!
传递变量的方法:
1)第一种是利用:问号+变量;本方法不用担心变量的类型。
2)第二种是用TransForm()将变量合并到语句中。
把数据集设为可更新:
Visual FoxPro的游标类型:只读游标、可读写游标、可更新游标
1) 只读游标是那种不能被修改的游标,在VFP中使用SQL-Select语句产生的游标就是典型的只读游标;如:SELECT * FROM ORDERS INTO CURSOR MYCURSOR
2) 可读写游标是那种可以进行读写操作,但游标上的数据变更不被反映到数据源的游标;
A、一是用SQLEXEC()得到的游标;
B、第二是VFP7以上的SQL-Select语句加入关键字readwrite产生的游标;
如:SELECT * FROM ORDERS INTO CURSOR MYCURSOR READWRITE
C、第三是“没有设置发送更新”的本地视图和远程视图;(SendUpdate属性为.F.)
3) 可更新游标是那种可以进行读写操作,并且任何数据变动都会反映到数据源的游标;
典型的可更新游标就是可更新视图
把SQLEXEC()得到的结果集设定为可更新游标的五大步骤:
A. CURSORSETPROP("TABLES",数据源表名,可更新游标名)
B. CURSORSETPROP("KEYFIELDLIST",关键字段,可更新游标名)
C. CURSORSETPROP("UPDATABLEFIELDLIST",可更新字段列表,可更新游标名)
D. CURSORSETPROP("UPDATENAMELIST",前后段字段对应关系列表,可更新游标名)
E. CURSORSETPROP("SENDUPDATES",.T.,可更新游标名)
一个很重要的属性——WhereType
当我们设定结果集为可更新游标后,还有一个重要的属性没有设定,就是WhereType。即,Where字句产生的依据,有四种情况:
CURSORSETPROP("WhereType" ,1) &&根据关键字
CURSORSETPROP("WhereType" ,2) &&根据关键字+可更新字段
CURSORSETPROP("WhereType" ,3) &&根据关键字+已更新字段
CURSORSETPROP("WhereType" ,4) &&根据关键字+时间戳
如:cnn=SQLCONNECT("northwind")
SQLEXEC(cnn,"select categoryid as id ,categoryname,description from categories","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","categories","mycursor")
CURSORSETPROP("KeyFieldList","id","mycursor")
CURSORSETPROP("UpdatableFieldList" ,"id,categoryname,description","mycursor")
CURSORSETPROP("UpdateNameList","id categories.categoryid,categoryname categories.categoryname,"+ "description categories.description","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
CURSORSETPROP("WhereType" ,3)
VFP的13个SPT函数的更多相关文章
- js进阶 13 jquery动画函数有哪些
js进阶 13 jquery动画函数有哪些 一.总结 一句话总结: 二.jquery动画函数有哪些 原生JavaScript编写动画效果代码比较复杂,而且还需要考虑兼容性.通过jQuery,我们使用简 ...
- python 13 内置函数2
目录 内置函数(二) 匿名函数 内置函数(三) 闭包 内置函数(二) abs() #返回绝对值--返回的是正数 enumerate("可迭代对象","序号起始值" ...
- MySQL基础之第13章 MySQL函数
13.1.数学函数 随机数可能会用到,其他基本无视. 13.2.字符串函数 重点CONCAT(S1,S2….) 13.3.日期和时间函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+ ...
- Linux学习笔记13——使用curses函数库
一 安装curses库 如果你的Linux系统中curses库,直接敲入命令sudo apt-get install libncurses5-dev,然后就会自动安装curses库,安装好之后敲入命令 ...
- python note 13 内置函数
1. lst = ["白蛇传","骷髅叹","庄周闲游"] it = lst.__iter__() print(it.__next__()) ...
- python --- 13 内置函数
内置函数 思维导图 1.作用域相关 locals() 返回当前作用域中的名字 globals() 返回全局作用域中的名字 2.迭代器相关 range() 生成数据 next() ...
- 我的第一个python web开发框架(13)——工具函数包说明(四)
string_helper.py是字符串操作包,主要对字符串进行检查.过滤和截取等处理. #!/usr/bin/evn python # coding=utf-8 import re def chec ...
- python入门(13)获取函数帮助和调用函数
Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://doc ...
- [c/c++] programming之路(13)、函数
一.函数 #include<stdio.h> //stdio.stdlib标准库 #include<stdlib.h> //代码重用, 函数的诞生,C语言主要是函数组成 //写 ...
随机推荐
- python之对象回收机制
python中,当程序执行完毕之后,python的垃圾回收机制就会将所有对象回收,清除占用的内存 请看如下代码 class Parent(): def __init__(self,name): sel ...
- 使用Merkle树检测数据不一致(翻译)
背景 Cassandra的逆熵功能使用Merkle树来检测副本之间的数据不一致. 定义 Merkle树是一种哈希树,其中的叶子包含各个数据块的哈希值,父节点包含其各自的子节点的哈希值.它提供了一种有效 ...
- 三个css属性 设置文字竖直居中
display: flex; justify-content:center; align-items:Center;
- Redis 分布式锁的正确实现方式( Java 版 )
前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...
- go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...
- noip2018 考前提醒!
适应Noilinux 1.终端操作 打开终端 \(Ctrl+Alt+T\) 打开文件夹 \(cd\) +名称 新建文件夹 \(mkdir\) +名称 打开 \(vim\) 配置 \(vim ~/.vi ...
- [洛谷P2962] [USACO09NOV] 灯Lights
Description Bessie and the cows were playing games in the barn, but the power was reset and the ligh ...
- 最强PostMan使用教程
最近需要测试产品中的REST API,无意中发现了PostMan这个chrome插件,把玩了一下,发现postman秉承了一贯以来google工具强大,易用的特质.独乐乐不如众乐乐,特此共享出来给大伙 ...
- 超越队西柚考勤系统——beta冲刺1
这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业的要求在哪里 https://www.cn ...
- linux C++类中成员变量和函数的使用
1.undefined reference to XXX 问题原因 1)XXX所在的so库等未指定 2)XXX在类中实现的时候没有加上类::函数的格式 2. was not declared in t ...