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函数的更多相关文章

  1. js进阶 13 jquery动画函数有哪些

    js进阶 13 jquery动画函数有哪些 一.总结 一句话总结: 二.jquery动画函数有哪些 原生JavaScript编写动画效果代码比较复杂,而且还需要考虑兼容性.通过jQuery,我们使用简 ...

  2. python 13 内置函数2

    目录 内置函数(二) 匿名函数 内置函数(三) 闭包 内置函数(二) abs() #返回绝对值--返回的是正数 enumerate("可迭代对象","序号起始值" ...

  3. MySQL基础之第13章 MySQL函数

    13.1.数学函数 随机数可能会用到,其他基本无视. 13.2.字符串函数 重点CONCAT(S1,S2….) 13.3.日期和时间函数 一.MySQL 获得当前日期时间 函数 1.1 获得当前日期+ ...

  4. Linux学习笔记13——使用curses函数库

    一 安装curses库 如果你的Linux系统中curses库,直接敲入命令sudo apt-get install libncurses5-dev,然后就会自动安装curses库,安装好之后敲入命令 ...

  5. python note 13 内置函数

    1. lst = ["白蛇传","骷髅叹","庄周闲游"] it = lst.__iter__() print(it.__next__()) ...

  6. python --- 13 内置函数

    内置函数 思维导图 1.作用域相关 locals()     返回当前作用域中的名字 globals()  返回全局作用域中的名字 2.迭代器相关 range()     生成数据 next()    ...

  7. 我的第一个python web开发框架(13)——工具函数包说明(四)

    string_helper.py是字符串操作包,主要对字符串进行检查.过滤和截取等处理. #!/usr/bin/evn python # coding=utf-8 import re def chec ...

  8. python入门(13)获取函数帮助和调用函数

    Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://doc ...

  9. [c/c++] programming之路(13)、函数

    一.函数 #include<stdio.h> //stdio.stdlib标准库 #include<stdlib.h> //代码重用, 函数的诞生,C语言主要是函数组成 //写 ...

随机推荐

  1. python之对象回收机制

    python中,当程序执行完毕之后,python的垃圾回收机制就会将所有对象回收,清除占用的内存 请看如下代码 class Parent(): def __init__(self,name): sel ...

  2. 使用Merkle树检测数据不一致(翻译)

    背景 Cassandra的逆熵功能使用Merkle树来检测副本之间的数据不一致. 定义 Merkle树是一种哈希树,其中的叶子包含各个数据块的哈希值,父节点包含其各自的子节点的哈希值.它提供了一种有效 ...

  3. 三个css属性 设置文字竖直居中

    display: flex; justify-content:center; align-items:Center;

  4. Redis 分布式锁的正确实现方式( Java 版 )

    前言 分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介 ...

  5. go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)

    目录 go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer) demo demo server demo client 池 dao service p2c ro ...

  6. noip2018 考前提醒!

    适应Noilinux 1.终端操作 打开终端 \(Ctrl+Alt+T\) 打开文件夹 \(cd\) +名称 新建文件夹 \(mkdir\) +名称 打开 \(vim\) 配置 \(vim ~/.vi ...

  7. [洛谷P2962] [USACO09NOV] 灯Lights

    Description Bessie and the cows were playing games in the barn, but the power was reset and the ligh ...

  8. 最强PostMan使用教程

    最近需要测试产品中的REST API,无意中发现了PostMan这个chrome插件,把玩了一下,发现postman秉承了一贯以来google工具强大,易用的特质.独乐乐不如众乐乐,特此共享出来给大伙 ...

  9. 超越队西柚考勤系统——beta冲刺1

    这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience 这个作业的要求在哪里 https://www.cn ...

  10. linux C++类中成员变量和函数的使用

    1.undefined reference to XXX 问题原因 1)XXX所在的so库等未指定 2)XXX在类中实现的时候没有加上类::函数的格式 2. was not declared in t ...