求vfp中insert命令的详细用法
2个回答
展开全部
VFP INSERT – SQL 命令
在表尾追加一个包含指定字段值的记录。
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
或者
INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
参数
INSERT INTO dbf_name
指定要追加记录的表名。dbf_name 中可以包含路径,也可以是一个名称表达式。
如果指定的表没有打开,则 Visual FoxPro 先在一个新工作区中以独占方式打开该表,然后再把新记录追加到表中。此时并未选定这个新工作区,选定的仍然是当前工作区。
如果所指定的表是打开的,INSERT 命令就把新记录追加到这个表中。如果表不是在当前工作区打开的,则追加记录后表所在的工作区仍然不是选定工作区,选定的仍然是当前工作区。
在命令执行期间, 当前工作区改变为要插入新记录的工作区。换句话说, 在执行 insert 命令时, 是在与要插入记录所在的表的工作区中, 而不管在发出命令前的当前工作区是哪一工作区。
[(fname1 [, fname2 [, ...]])]
指定新记录的字段名,insert – sql 命令将向这些字段中插入字段值。
VALUES (eExpression1 [, eExpression2 [, ...]])
新插入记录的字段值。如果省略了字段名,那么必须按照表结构定义字段的顺序来指定字段值。
如果 eExpression 是一个字段名, 它必须包括表别名。
FROM ARRAY ArrayName
指定一个数组,数组中的数据将被插入到新记录中。从第一个数组元素开始,数组中的每个元素的内容依次插入到记录的对应字段中。第一个数组元素的内容插入到新记录的第一个字段,第二个元素的内容插入到第二个字段,… 依次类推。
在包括 FROM ARRAY 子句时任何字段默认值被忽略。
FROM MEMVAR
把内存变量的内容插入到与它同名的字段中。如果某一字段不存在同名的内存变量,则该字段为空。
备注
新记录中包含了 VALUE 子句列出的值,或包含指定的数组或内存变量中的值。插入新记录后,记录指针指向新记录。
示例
下面的例子打开 employee 表并添加一条记录。
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
下面示例打开 testdata 数据库中的 customer 表。用 scatter 命令把当前记录的内容赋给变量, 并把表的结构复制到名为 cust2 的新表中。用 INSERT - SQL 插入一个新记录到 cust2 表, 用 BROWSE 来显示新记录。
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && 打开 customer 表
* Scatter 当前记录到内存变量
SCATTER MEMVAR
* 复制当前表结构到示例表
COPY STRUCTURE TO cust2
* 从内存变量插入记录
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2
BROWSE
* 关闭并删除示例表
USE
DELETE FILE cust2.dbf
在表尾追加一个包含指定字段值的记录。
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
或者
INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
参数
INSERT INTO dbf_name
指定要追加记录的表名。dbf_name 中可以包含路径,也可以是一个名称表达式。
如果指定的表没有打开,则 Visual FoxPro 先在一个新工作区中以独占方式打开该表,然后再把新记录追加到表中。此时并未选定这个新工作区,选定的仍然是当前工作区。
如果所指定的表是打开的,INSERT 命令就把新记录追加到这个表中。如果表不是在当前工作区打开的,则追加记录后表所在的工作区仍然不是选定工作区,选定的仍然是当前工作区。
在命令执行期间, 当前工作区改变为要插入新记录的工作区。换句话说, 在执行 insert 命令时, 是在与要插入记录所在的表的工作区中, 而不管在发出命令前的当前工作区是哪一工作区。
[(fname1 [, fname2 [, ...]])]
指定新记录的字段名,insert – sql 命令将向这些字段中插入字段值。
VALUES (eExpression1 [, eExpression2 [, ...]])
新插入记录的字段值。如果省略了字段名,那么必须按照表结构定义字段的顺序来指定字段值。
如果 eExpression 是一个字段名, 它必须包括表别名。
FROM ARRAY ArrayName
指定一个数组,数组中的数据将被插入到新记录中。从第一个数组元素开始,数组中的每个元素的内容依次插入到记录的对应字段中。第一个数组元素的内容插入到新记录的第一个字段,第二个元素的内容插入到第二个字段,… 依次类推。
在包括 FROM ARRAY 子句时任何字段默认值被忽略。
FROM MEMVAR
把内存变量的内容插入到与它同名的字段中。如果某一字段不存在同名的内存变量,则该字段为空。
备注
新记录中包含了 VALUE 子句列出的值,或包含指定的数组或内存变量中的值。插入新记录后,记录指针指向新记录。
示例
下面的例子打开 employee 表并添加一条记录。
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
下面示例打开 testdata 数据库中的 customer 表。用 scatter 命令把当前记录的内容赋给变量, 并把表的结构复制到名为 cust2 的新表中。用 INSERT - SQL 插入一个新记录到 cust2 表, 用 BROWSE 来显示新记录。
CLOSE DATABASES
CLEAR
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && 打开 customer 表
* Scatter 当前记录到内存变量
SCATTER MEMVAR
* 复制当前表结构到示例表
COPY STRUCTURE TO cust2
* 从内存变量插入记录
INSERT INTO cust2 FROM MEMVAR
SELECT CUST2
BROWSE
* 关闭并删除示例表
USE
DELETE FILE cust2.dbf
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询