C O P Y T O A R R A Y 命 令

C O P Y T O A R R A Y 命 令 - 图1将当前选定表中的数据复制到数组

语 法

COPY TO ARRAY ArrayName

[FIELDS FieldLis t]

[ Scope ] [FOR lExpression1 ] [ W H ILE lExpression2 ] [NOOPTIMIZE]

参 数 描 述

ArrayName

C O P Y T O A R R A Y 命 令 - 图2C O P Y T O A R R A Y 命 令 - 图3指 定 数 组 名 将 当 前 选 定 表 中 的 数 据 复 制 到 该 数 组 中

FIELDS FieldList

C O P Y T O A R R A Y 命 令 - 图4C O P Y T O A R R A Y 命 令 - 图5C O P Y T O A R R A Y 命 令 - 图6C O P Y T O A R R A Y 命 令 - 图7指 定 只 将 由 FieldList 指 定 的 字 段 复 制 到 数 组 若 省 略 FIELDS FieldList 只 要数 组 有 足 够 的 列 则 复 制 所 有 字 段 到 数 组

Scope

C O P Y T O A R R A Y 命 令 - 图8C O P Y T O A R R A Y 命 令 - 图9C O P Y T O A R R A Y 命 令 - 图10C O P Y T O A R R A Y 命 令 - 图11C O P Y T O A R R A Y 命 令 - 图12C O P Y T O A R R A Y 命 令 - 图13指 定 要 复 制 到 数 组 中 的 记 录 的 范 围 只 有 在 范 围 内 的 记 录 才 被 复 制 Scope 子句 有 ALL NEXT nRecords RECORD nRecordNumber 和 REST

C O P Y T O A R R A Y 命 令 - 图14C O P Y T O A R R A Y 命 令 - 图15C O P Y T O A R R A Y 命 令 - 图16C O P Y T O A R R A Y 命 令 - 图17有 关 scope 子 句 的 详 细 内 容 请 参 阅 帮 助 中 的 Scope 子 句

C O P Y T O A R R A Y 命 令 - 图18COPY TO ARRAY 的 默 认 范 围 是 ALL 记 录

FOR lExpression1

C O P Y T O A R R A Y 命 令 - 图19C O P Y T O A R R A Y 命 令 - 图20C O P Y T O A R R A Y 命 令 - 图21指 定 只 复 制 符 合 逻 辑 表 达 式 lExpression1 的 记 录 到 数 组 包 含 FOR 子 句 可 按条 件 复 制 记 录 到 数 组 筛 选 出 不 想 要 的 记 录

C O P Y T O A R R A Y 命 令 - 图22C O P Y T O A R R A Y 命 令 - 图23C O P Y T O A R R A Y 命 令 - 图24C O P Y T O A R R A Y 命 令 - 图25lExpression1 是 可 优 化 表 达 式 则 Rushmore 优 化 包 含 FOR lExpression1 的COPY TO ARRAY 查 询 为 获 得 最 佳 效 果 可 在 FOR 子 句 中 使 用 可 优 化 表 达式

C O P Y T O A R R A Y 命 令 - 图26有 关 优 化 表 达 式 的 内 容 请 参 阅 稍 后 部 分 的 SET OPTIMIZE 命 令 和

C O P Y T O A R R A Y 命 令 - 图27C O P Y T O A R R A Y 命 令 - 图28C O P Y T O A R R A Y 命 令 - 图29C O P Y T O A R R A Y 命 令 - 图30C O P Y T O A R R A Y 命 令 - 图31C O P Y T O A R R A Y 命 令 - 图32 M icrosoft Visual FoxPro 6.0 中 文 版 程 序 员 指 南 C O P Y T O A R R A Y 命 令 - 图33 第 十 五 章 优 化 应 用 程 序的 掌 握 Rushmore 技 术

W H ILE lExpression2

C O P Y T O A R R A Y 命 令 - 图34C O P Y T O A R R A Y 命 令 - 图35C O P Y T O A R R A Y 命 令 - 图36指 定 条 件 只 有 当 逻 辑 表 达 式 lExpression2 为 真 (.T.) NOOPTIMIZE

C O P Y T O A R R A Y 命 令 - 图37C O P Y T O A R R A Y 命 令 - 图38使 COPY TO ARRAY 的 Rushmore 优 化 无 效 有 关 详 细 内 容 请 参 阅 请 参 阅

C O P Y T O A R R A Y 命 令 - 图39C O P Y T O A R R A Y 命 令 - 图40C O P Y T O A R R A Y 命 令 - 图41C O P Y T O A R R A Y 命 令 - 图42C O P Y T O A R R A Y 命 令 - 图43C O P Y T O A R R A Y 命 令 - 图44C O P Y T O A R R A Y 命 令 - 图45稍 后 部 分 的 SET OPTIMIZE 命 令 和 Microsoft Visual FoxPro 6.0 中 文 版 程 序员 指 南 第 十 五 章 优 化 应 用 程 序 的 掌 握 Rushmore 技 术

说 明

C O P Y T O A R R A Y 命 令 - 图46C O P Y T O A R R A Y 命 令 - 图47C O P Y T O A R R A Y 命 令 - 图48C O P Y T O A R R A Y 命 令 - 图49C O P Y T O A R R A Y 命 令 - 图50COPY TO ARRAY 和 SCATTER 相似 但 COPY TO ARRAY 将多个记录复制到数组而 SCATTER 只复制一条记录到数组或一组变量 若指定的数组不存在 则 COPY TO ARRAY 和 SCATTER 都创建一个新的数组

C O P Y T O A R R A Y 命 令 - 图51C O P Y T O A R R A Y 命 令 - 图52C O P Y T O A R R A Y 命 令 - 图53C O P Y T O A R R A Y 命 令 - 图54C O P Y T O A R R A Y 命 令 - 图55要将单个记录复制到数组 可指定一维数组 指定的一维数组的元素数目必须与表中字段的数目相同 但不包括备注字段 在 COPY TO ARRAY 中不考虑备注字段

C O P Y T O A R R A Y 命 令 - 图56C O P Y T O A R R A Y 命 令 - 图57若指定了一维数组 则记录的第一个字段存储到数组的第一个元素 第二个字段存储到

C O P Y T O A R R A Y 命 令 - 图58C O P Y T O A R R A Y 命 令 - 图59C O P Y T O A R R A Y 命 令 - 图60C O P Y T O A R R A Y 命 令 - 图61C O P Y T O A R R A Y 命 令 - 图62C O P Y T O A R R A Y 命 令 - 图63数组的第二个元素 依此类推 若一维数组的元素数目比表中字段的数目多 则多余元素保持不变 若数组元素比表中字段少 则忽略多余字段

C O P Y T O A R R A Y 命 令 - 图64C O P Y T O A R R A Y 命 令 - 图65要将多个记录或整个表复制到数组 则指定一个二维数组 数组的行数就是数组能容纳

C O P Y T O A R R A Y 命 令 - 图66C O P Y T O A R R A Y 命 令 - 图67的记录数 数组的列数就是数组能容纳的字段数

C O P Y T O A R R A Y 命 令 - 图68C O P Y T O A R R A Y 命 令 - 图69C O P Y T O A R R A Y 命 令 - 图70C O P Y T O A R R A Y 命 令 - 图71C O P Y T O A R R A Y 命 令 - 图72C O P Y T O A R R A Y 命 令 - 图73C O P Y T O A R R A Y 命 令 - 图74C O P Y T O A R R A Y 命 令 - 图75C O P Y T O A R R A Y 命 令 - 图76C O P Y T O A R R A Y 命 令 - 图77每个记录存入数组的一行 记录的每个字段存入数组的一列 对每个记录 第一个字段存储在数组的第一列 第二个字段存储在数组的第二列 依此类推 若数组的列比表中的字段多 则不更改多余的列 若数组的列比表中的字段少 则多余的字段不存储到数组中

C O P Y T O A R R A Y 命 令 - 图78C O P Y T O A R R A Y 命 令 - 图79C O P Y T O A R R A Y 命 令 - 图80C O P Y T O A R R A Y 命 令 - 图81C O P Y T O A R R A Y 命 令 - 图82数组中每一行都填充了表中的一条记录的内容 若数组的行比表中的记录多 则不更改任何多余的行 若数组的行比表中的记录少 则多余的记录不存储到数组中

C O P Y T O A R R A Y 命 令 - 图83可以用 APPEND FROM ARRAY 将数组中的数据复制到新表中的记录 也可以用

C O P Y T O A R R A Y 命 令 - 图84GATHER 将数组或一组变量中的数据复制到表中的记录

示 例

C O P Y T O A R R A Y 命 令 - 图85C O P Y T O A R R A Y 命 令 - 图86C O P Y T O A R R A Y 命 令 - 图87在下面的示例中 先打开 customer 表 然后创建一个二维数组 并且复制 customer

C O P Y T O A R R A Y 命 令 - 图88C O P Y T O A R R A Y 命 令 - 图89的前三条记录到数组 DISPLAY MEMORY 显示存储在数组中的数据

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'Data\testdata') USE customer && 打开 Customer 表

DIMENSION gaTemp(3,10)

COPY NEXT 3 TO ARRAY gaTemp DISPLAY MEMORY LIKE gaTemp

请 参 阅

APPEND FROM ARRAY 命 令 , DECLARE 命 令 , D IMENSION GATHER 命 令 ,

PUBLIC 命 令 , SCATTER 命 令 , STORE 命 令