zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    autocomplete自动完成搜索提示仿google提示效果
    实现子元素相对于父元素左右居中
    javascript 事件知识集锦
    让 IE9 以下的浏览器支持 Media Queries
    「2013124」Cadence ic5141 installation on CentOS 5.5 x86_64 (limited to personal use)
    「2013420」SciPy, Numerical Python, matplotlib, Enthought Canopy Express
    「2013324」ClipSync, Youdao Note, GNote
    「2013124」XDMCP Configuration for Remote Access to Linux Desktop
    「2013115」Pomodoro, Convert Multiple CD ISO to One DVD ISO HowTo.
    「2013123」CentOS 5.5 x86_64 Installation and Configuration (for Univ. Labs)
  • 原文地址:https://www.cnblogs.com/hnllhq/p/12293566.html
Copyright © 2011-2022 走看看