« | August 2022 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
| 公告 |
暂无公告... |
Blog信息 |
blog名称:VFP及Sql Server拙笔 日志总数:46 评论数量:107 留言数量:0 访问次数:419770 建立时间:2005年5月12日 |

| |
[VFP与SQL]VFP的13个SPT函数 读书笔记, 事件记录, 软件技术, 电脑与网络
老瓷 发表于 2008/1/17 0:21:46 |
Visual FoxPro 中内置了13个以SQL开头的函数,我们把它们称为SPT函数。就是这13个函数完成了Visual FoxPro的所有的SQL Pass Though功能。从功能上看,我们可以把它们分成五个部分:连接函数:连接建立函数:SqlConnect(),SqlStringConnect()连接的断开函数:SqlDisconnect()核心的执行函数:SQL语句传输及执行函数:SqlExec(),SqlPrapare()批次模式下更多数据集的取得函数:SqlMoreResults()异步模式下撤销正在执行的SPT的函数:SqlCancel()用法:SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])例:SQLEXEC(hconn,"SELECT * FROM EMPLOYEES","MyCursor")Browse例:SQLEXEC(hconn,"") &&一个空的命令发送,返回1的话证明连接可用!传递变量的方法:1)第一种是利用:问号+变量;本方法不用担心变量的类型。2)第二种是用TransForm()将变量合并到语句中。事务处理函数:SqlCommit(),SqlRollBack()连接通道属性函数:SqlGetProp(),SqlSetProp()数据源的信息截取函数:SqlTables(),SqlColumns()
把数据集设为可更新:Visual FoxPro的光标类型:只读光标、可读写光标、可更新光标1) 只读光标是那种不能被修改的光标,在VFP中使用SQL-Select语句产生的光标就是典型的只读光标;如:SELECT * FROM ORDERS INTO CURSOR MYCURSOR2) 可读写光标是那种可以进行读写操作,但光标上的数据变更不被反映到数据源的光标;A、一是用SQLEXEC()得到的光标;B、第二是VFP7以上的SQL-Select语句加入关键字readwrite产生的光标; 如:SELECT * FROM ORDERS INTO CURSOR MYCURSOR READWRITEC、第三是“没有设置发送更新”的本地视图和远程视图;(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 mycursorCURSORSETPROP("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)
|
|
» 1 »
|