if .not. found()
messagebox("操作成功",48,"毕业实习选报系统")
return
endif
update 学生选报信息表.dbf set 学生选报信息表.导师筛选结果='已选'
我的意思时说:为什么update命令后面跟 set命令?
UPDATE [DatabaseName1!]TableName1 SET Column_Name1 = eExpression1
[, Column_Name2 = eExpression2 ...]
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
参数
[DatabaseName1!]TableName1
TableName1 指定要更新记录的表。
DatabaseName1 指定包含表的非当前数据库名。如果包含表的数据库不是当前数据库,则应包含这个数据库名。在数据库名称与表名之间有一个感叹号 (!)。
SET Column_Name1 = eExpression1 [, Column_Name2 = eExpression2
指定要更新的列以及这些列的新值。如果省略了 WHERE 子句,在列中的每一行都用相同的值更新。
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
指定要更新的记录。
FilterCondition 指定要更新的记录所符合的条件。可以根据需要加入多个筛选条件,条件之间用 AND 或 OR 操作符连接。也可以用 NOT 操作符对逻辑表达式的值取反,或者使用 EMPTY() 函数检查字段是否为空。
备注
UPDATE-SQL 命令只能用来更新单个表中的记录。
可以在 UPDATE - SQL 命令命令后立即通过检查 _tally 系统内存变量来确定被更新的记录数。
与 REPLACE 命令不同的是,在更新可共享访问的表中的多个记录时,UPDATE-SQL 命令使用了记录锁。在多用户的情况下,使用记录锁能减少记录竞争,但是可能会降低使用性能。为了达到最好的性能,请以独占使用方式打开表或用 FLOCK()
函数锁定表。
示例
下面示例打开 testdata 数据库中的 customer 表。用 UPDATE -SQL 来设置所有 maxordamt 字段中的值到 25。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && 打开 customer 表
* Set and display amounts for customers
UPDATE customer SET maxordamt = 25
BROWSE FIELDS company,maxordamt