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(hconn,"SELECT * FROM EMPLOYEES","MyCursor") Browse 例:SQLEXEC(hconn,"") &&一个空的命令发送,返回1的话证明连接可用! 传递变量的方法: 1)第一种是利用:问号+变量;本方法不用担心变量的类型。 2)第二种是用TransForm()将变量合并到语句中。 六、把数据集设为可更新:Visual FoxPro的游标类型:只读游标、可读写游标、可更新游标 1) 只读游标是那种不能被修改的游标,在VFP中使用SQL-Select语句产生的游标就是典型的只读游标;如: 2) 可读写游标是那种可以进行读写操作,但游标上的数据变更不被反映到数据源的游标; A、一是用SQLEXEC()得到的游标; B、第二是VFP7以上的SQL-Select语句加入关键字readwrite产生的游标; 如: 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) |
|