`
Charles+java
  • 浏览: 180772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

forpro 常用命令

阅读更多
工作的原因接触到了曾经风靡一时的 Visual forpro 。
需求:把两个DBF (a.dbf ; b.dbf)数据库的数据合二为一,然后有条件的读入到SQLSERVER 数据库里面。
解决步骤:
1、首先看这两个dbf 数据库的表结构是否一致。不一致应改为一致,或者有条件的合并一致的。
  a)改表结构的步骤 :
       命令方式     use a.dbf
      命令格式:modify structure a.dbf

    会弹出  a表的表结构,可视化的操作。
2、APPEND FROM b.dbf|? [FIELDS 字段名列表][ FOR 条件]

这样就会把b.dbf 得数据追加到a.dbf  库里面。


一些常见命令:
Visual FOXPRO中的常用命令

目录


--------------------------------------------------------------------------------

说明

一、数据库的建立、打开、关闭和删除

二、数据表和视图的建立、打开、关闭和删除

三、数据表和表结构的编辑、修改

四、数据表中数据操作(查询、插入、删除和修改等)

五、文件管理(文件和文件夹的复制、创建和删除)

六、数据的复制与传送

七、排序与索引

八、查找和定位

九、统计计算

十、程序控制

十一、其它


--------------------------------------------------------------------------------

说明   

命令结构

     FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]

常用子句

范围:表示记录的执行范围,可以是下面几项其中之一:

ALL 表示全部记录;

NEXT n 表示从当前记录开始的以下n条记录;

RECORD n 表示第n号记录;

REST 表示从当前记录到最后一条记录。    

FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。

WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。



以下命令中,大写的英文词为关键词,必须原样照写。

“常用子句”指以下几个可选子句:

[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]

命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。

部分英文词的意义:Databasename 数据名 tablename 数据表名 filename 文件名  Viewname 视图名 arrayname 数组名



提示:加下划线的为本课程要求掌握的命令。
 

一、数据库的建立、打开、关闭和删除   

建立数据库:

CREATE DATABASE [databasename|?]



从磁盘中删除数据库:

DELETE  DATABASE  databasename|?



打开数据库:

OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]



打开数据库设计器(允许用户按交互方式编辑当前数据库):

MODIFY DATABASE  [databasename|?]

指定的数据库databasename为当前数据库。



指定当前的数据库:

SET DATABASE TO [databasename]

Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。



关闭数据库:

CLOSE DATABASE [ALL]

关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。



二、数据表和视图的建立、打开、关闭和删除   

建立数据表(SQL命令):

CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL]

[{,Col_name2 Type2 [NOT NULL/NULL]}...])

table_name是所创建的数据表的名字。

Col_name1,Col_name2,...是表中列的名。

Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。

如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。



向当前打开的数据库中添加数据表:

ADD TABLE tablename|?



从当前打开的数据库中删除数据表:

REMOVE TABLE tablename|? [DELETE]

如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。



在当前打开的数据库中建立视图:

CREATE SQL VIEW viewname AS SELECT ……

其中SELECT ……为SELECT语句。

执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。



从当前打开的数据库中删除视图:

DELETE VIEW viewname



打开一个表:

USE tablename|? [IN 工作区号]



将当前数据表与另一数据表连接后建立一个新表:

JOIN WITH 工作区号|表别名 TO tablename FOR 条件 [FIELDS 字段名表]



三、数据表和表结构的编辑、修改   

打开浏览窗口(可在其中编辑数据表):

BROWSW(详细格式见P. 114~116)



打开并修改数据表中的字段:

(1) CHANGE [FIELDS 字段名列表]

(2) EDIT [FIELDS 字段名列表]

这两个命令的功能相似,可选子句较多(详见手册)。



数据表改名:

RENAME TABLE tablename1 TO tablename2

其中数据表tablename1必须存在且未打开。



视图改名:

RENAME VIEW viewname1 TO viewname2

其中数据表tablename1必须存在且未打开。



修改数据表结构(SQL命令):

ALTER TABLE tablename ;

ADD 字段名 Type [NULL | NOT NULL]

[,字段名 Type [NULL | NOT NULL] ;

[ALTER COLUMN字段名Type {NULL | NOT NULL}];

[{,字段名Type NULL | NOT NULL}...] ;

[DROP字段名[,字段名[, ...]]



将当前表与另一表之间建立关联:

SET RELATION TO [表达式1 INTO 工作区号1 | 表别名1];

[, 表达式2 INTO 工作区号2 | 表别名2] [, ...]

建立关联的两个表必须事先已按关联表达式进行索引排序。



在当前表与另一表之间建立一对多关联:

SET SKIP TO表别名1[, 表别名2]



消除当前表与另一表之间的关联:

SET RELATION OFF INTO 工作区号 | 表别名



四、数据表中数据操作(查询、插入、删除和修改等)   

 

数据查询SELECT语句(SQL命令)

格式见教材的有关章节。这是本课程的重点内容,必须很好地掌握。

 

更改数据表中的记录:

REPLACE 字段1  WITH  表达式1[ADDITIVE];

[,<  [,<字段2> WITH <表达式2>[ADDITIVE],…];

[FOR 条件1][WHILE条件2]

其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。



用内存数组的值更新数据表中的记录:

REPLACE FROM ARRAY数组名 [FIELDS 字段名列表][常用子句]



用新的值更新表中的记录(SQL命令):

UPDATE [databasename!]tablename;

SET Column_1=Expression1 [{Column_2=expression2}...] ;     

[WHERE Condition]



用一个表中的数据更新当前指定工作区中打开的表:

UPDATE ON fieldname FROM filename;

REPLACE fieldname1 WITH expr1

[, fieldname2 WITH expr2 [, ...]]



给记录加删除标记(SQL命令):

DELETE  FROM  [databasename!]tablename;

[WHERE 条件]



给记录加删除标记:

DELETE [范围] [FOR 条件] [WHILE 条件];

[IN 工作区号|表别名]



永久删除加了删除标记的记录:

PACK



永久删除打开的数据库中加了删除标记的记录:

PACK  DATABASE



去掉删除标记(恢复)

RECALL [常用子句]



删除一个表中所有记录(保留表的结构):

ZAP  [IN tablename|alias]



为数据表文件追加记录:

APPEND [BLANK][IN 工作区号|别名]



从另一个文件中提取数据添加到当前数据表的尾部:

APPEND FROM filename|? [FIELDS 字段名列表][ FOR 条件]

其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。



用内存数组的值添加到当前数据表的尾部:

APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表]

数据中的一行对应一个新记录,一列对应一个字段。



从一个文件输入一个OLE对象放入一个通用(general)字段 :

APPEND GENERAL 通用字段名 [FROM filename]

如果省略子句FROM filename,则将指定的字段清空。



将一个文本文件的内容拷贝到一个备注字段 :

APPEND MEMO 备注字段名 [FROM filename][OVERWRITE]

如果省略子句FROM filename,则将指定的字段清空。



插入新记录(在当前记录之前或后插入):

INSERT [BLANK] [BEFORE]

如不省略BLANK,则插入一个空白记录,且不显示输入窗口。



在表中插入新记录并赋值(SQL命令):

INSERT INTO tablename [(字段1 [, 字段2, ...])]VALUES (eExpression1 [, eExpression2, ...])



INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR

如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。



清除当前记录中字段的数据:

BLANK [常用子句]



移动记录指针:

SKIP [n] [IN 工作区号|表别名]



五、文件管理(文件和文件夹的复制、创建和删除)   

从当前表复制出表或其它类型的文件(表须打开)

COPY  TO  filename [FIELDS 字段名列表] [常用子句] [其它子句]

如果没有指定类型,则复制一个与当前的表相同的数据表。



复制表的结构

COPY STRUCTURE TO filename [FIELDS字段名列表]



复制任何文件:

COPY FILE 源文件 TO 目的文件

如果用此命令复制表,表须关闭



从磁盘上删除任意文件:

(1)ERASE filename|?

(2)DELETE FILE [filename|?]



任意文件改名(或文件移动到另一文件夹):

RENAME filename1 TO filename2

其中filename1和filename2都可以包含路径。如二者不在同一文件夹,则将filename1移动到filename2所在的文件夹。



显示一个文件夹中的文件信息:

DIR | DIRECTORY  [ON drive]



从磁盘上删除一个文件夹:

RD | REDIR 文件夹名



在磁盘上建立一个文件夹:

MD | MKDIR文件夹名



六、数据的复制与传送   

单个记录与数组间的数据传送

当前记录 → 数组或内存变量:

   SCATTER [FIELDS字段名列表][MEMO]TO 数组名 [BLANK] | MEMVAR [BLANK]

其中[BLANK]表示建立一个空元素的数组。如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。

如果包含MEMO子句,则备注字段一起复制。



数组或内存变量 → 当前记录

GATHER FROM  数组名 | MEMVAR [FILEDS字段名列表] [MEMO]

用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。



成批记录与数组间的数据传送

表 → 数组:

COPY TO ARRAY arrayname [常用子句]

数组 → 表:

(1) APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表]

用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。

(2) REPLACE FROM ARRAY数组名 [常用子句]

用内存数组的值更新数据表中符合条件的记录。



查询结果 → 数组:

SELECT …… INTO ARRAY arrayname

将SQL SELECT语句的查询结果传给数组arrayname。这里“SELECT ……”可为各种形式的SELECT查询语句。



给内存变量赋值:

STORE 表达式 TO 变量名



变量名=表达式



七、排序与索引   

将当前表排序后建立一个新数据表:

SORT TO  文件名  ON  字段名1  [/A | /D] ;

[/C] [  字段名2  [/A | /D] [/C] ...];

[ASCENDING | DESCENDING] [常用子句];



建立单索引文件:

INDEX  ON  表达式  TO  单索引文件名;

[FOR<条件>]  [UNIQUE] [COMPACT];

[ASCENDING][DESCENDING][ADDITIVE]



建立复合索引文件:

INDEX   ON  表达式 TO  TAG  索引名 [OF 复合索引文件名];

[FOR 条件] [UNIQUE|CANDIDATE];

[ASCENDING][DESCENDING][ADDITIVE]



使用索引文件:

打开表时将索引文件一并打开,USE命令带INDEX子句:

USE tablename|? [IN 工作区号][INDEX 索引文件名列表|?]



给当前表打开一个或多个索引文件:

SET INDEX TO[索引文件名列表|?];

[ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ;

[ASCENDING][DESCENDING]]



指定字符字段在排序或索引时的整理系列:

SET COLLATE TO 整理系列

对于汉字字符串,“整理系列”可以是“Machine”、“PinYin”或“Stroke”三者之一(必须带引号),分别表示按机器码、拼音和笔划排序。



指定当前表中的控制索引文件或标记:

SET ORDER TO;

[索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名];

[IN 工作区号|表别名];

[ASCENDING][DESCENDING]



删除索引

DELETE   TAG  ALL [OF 复合索引文件名]

DELETE   TAG  索引标识1 [OF 复合索引文件名1];

[,索引标识2 [OF 复合索引文件名2]]…



八、查找和定位   

顺序查找当前表中满足条件的第一条记录:

LOCATE FOR 条件下[范围][WHILE条件]

找到后将记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真。



在索引表中查找:

FIND cExpr

其中cExpr为字符串表达式。如果找到,则记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。



在索引表中查找:

SEEK eExpr;

[ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] ;

[ASCENDING][DESCENDING]];

[IN 工作区号|表别名]

如果找到,则记录指针定位在满足条件的第一条记录,且为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。



继续查找:

CONTINUE

用LOCATE、 FIND或 SEEK查找到一条记录后,用CONTINUE继续查找下一条。



用以上查找命令LOCATE、 FIND、SEEK和CONTINUE的查找结果,都可以通过函数FOUND()的返回值反映出来。



九、统计计算   

统计表中的记录数:

COUNT [范围] [FOR 条件] [WHILE 条件][TO内存变量名]

统计满足条件的记录数,显示记录数或将结果赋给内存变量名。



求和:

SUM  [表达式列表];

[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]



求平均值:

AVERAGE [表达式列表];

[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]



对当前表中数值型字段进行分组求和:

TOTAL TO tablename ON 字段名[常用子句]

其中tablename为存放结果的表文件名,字段名为确定求和分组的字段。



计算:

CALCULATE 表达式列表;

[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]

其中表达式列表可以是如下函数的任意组合:

AVG(nExpr), CNT(), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…),

STD(nExpr),SUM(nExpr),VAR(nExpr)

其中nExpr为数值表达式,eExpr为任意表达式。



十、程序控制   

条件语句:

IF 条件 [THEN]

……

[ELSE]

[……]

ENDIF



多分支语句:

DO CASE

       CASE 逻辑表达式1

       ……

       CASE 逻辑表达式2

       ……

CASE 逻辑表达式n

       ……

       [OTHERWISE]

       ……

ENDCASE



DO循环:

DO WHILE 条件

[LOOP]

……

[EXIT]

……

ENDDO



FOR循环

FOR 循环变量=初值 TO 终值 STEP 步长

……(中间可插入[LOOP]或[EXIT])

ENDFOR | NEXT



扫描循环(对一个表中满足条件的记录进行循环):

SCAN [范围] [FOR 条件] [WHILE 条件]

……(中间可插入[LOOP]或[EXIT])

ENDSCAN



集合扫描循环

FOR EACH Var IN Group

Commands

[EXIT]

[LOOP]

ENDFOR | NEXT [Var]



十一、其它   

定义数组:

DECLARE | DIMENSION 数组名(下标1,下标2,……)



定义过程:

PROCEDURE 过程名

PARAMETERS 参数表

……

RETURN [TO MASTER | TO 程序名]



定义函数:

FUNCTION 函数名

PARAMETERS 参数表

……

RETURN 表达式



调用一个子程序或过程

DO 子程序名 | 过程名 [IN 程序文件名][WITH 实在参数表]



定义公共变量:

PUBLIC 变量名列表

PUBLIC [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]



定义私有变量

PRIVATE变量名列表

PRIVATE ALL[LIKE | EXCEPT 通配符]



定义局部变量

LOCAL 变量名列表

LOCAL  [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]



显示各种信息:

LIST … (格式见有关手册)

DISPLAY … (格式见有关手册)



输出提示信息:

WAIT [<提示信息>] [TO <内存变量>];

  [WINDOW[AT[<行>,< 列>] [NOWAIT]];

  [CLEAR|NOCLEAR];

[TIMEOUT<数值表达式>]



各种设置命令:

设置是否显示日期中的世纪:

SET CENTURY ON | OFF



设置显示的小数位数:

SET DECIMALS TO 小数位数



设置是否处理带删除标记的记录:

SET DELETED ON | OFF

如果设置为ON,则不处理带删除标记的记录。



设置是否显示命令的结果:

SET TALK ON | OFF



设置文件的搜索路径:

SET PATH TO 路径



设置传给子程序或自定义函数的参数是按值还是按引用方式传递:

SET UDFPARMS TO VALUE | REFERENCE

如设置为TO VALUE,表示按值传递。



执行一个外部命令或程序:

RUN 命令或程序



在指定的位置显示或打印:

@行,列 SAY  …



在指定的位置显示表达式的值,并等待用户输入,将输入值赋给一变量:

@行,列 SAY  表达式 GET 变量名 [DEFAULT 表达式]

READ



例:

@2,2 say "请输入金额: " get nMoney default 50

Read

此例先在第2行、第2列显示"请输入金额: ",等待用户输入一个数值,将用户输入值赋给变量nMoney,如果用户不输入数值(直接按回车),则将50赋给nMoney。请注意在下一行不能漏掉“Read”。
0
0
分享到:
评论

相关推荐

    linux下SVN常用命令

    ### Linux下SVN常用命令详解 #### 一、SVN Checkout **命令格式:** ```shell svn checkout [URL] [本地路径] ``` **功能介绍:** 此命令用于将远程版本库中的某个目录或文件检出到本地,创建一个工作副本。 **示例...

    SVN常用命令集合及简单用法

    SVN常用命令集合及简单用法 SVN(Subversion)是一种版本控制系统,用于管理代码、文档、图片等文件的版本变更。下面是常用的 SVN 命令集合及简单用法: 1. 检出文件:svn checkout path(path 是服务器上的目录)...

    最全的oracle常用命令大全.txt

    ORACLE常用命令 一、ORACLE的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle&gt;svrmgrl SVRMGR&gt;connect internal SVRMGR&gt;startup ...

    DB_常用命令_Oracle

    ### Oracle数据库常用命令详解 #### 性能相关 在Oracle数据库管理中,了解并掌握与性能相关的命令至关重要,这些命令可以帮助我们监控和优化数据库的运行效率。 **查询锁、解锁** - **命令**: `SELECT b....

    SVN常用操作命令

    以上是Subversion (SVN) 的一些常用命令,掌握了这些命令可以帮助开发者有效地管理和协作版本控制项目。SVN 是一个非常强大的工具,适用于各种规模的项目,从个人项目到大型企业级项目都能很好地应对。

    SVN 常用命令

    ### SVN常用命令详解 在软件开发领域,版本控制系统如Subversion (SVN) 已成为不可或缺的工具之一。无论是在小团队还是大企业中,SVN都为代码管理和协作提供了强大的支持。本文将详细介绍SVN中一些最常用且实用的...

    svn在linux下的使用(svn命令)

    下面介绍 svn 在 Linux 下的使用和常用命令。 1. 将文件 checkout 到本地目录 svn checkout 命令用于将文件从版本库 checkout 到本地目录。例如:svn checkout svn://192.168.1.1/pro/domain 2. 往版本库中添加新...

    linux下svn命令大全.txt

    例如,`svn checkout svn://192.168.1.1/pro/domain` 将从指定的URL检出名为“domain”的项目到当前目录或指定路径下。此命令通常用于首次克隆仓库到本地工作副本。 ### 2. 添加文件 (Add) `svn add file` 命令...

    svn命令大全.docx

    "svn命令大全" SVN(Subversion)是一种版本控制系统,主要用于管理软件开发过程中的代码修改和更新。...注意:这些命令都是在 Linux 下使用 SVN 的常用命令,用于管理软件开发过程中的代码修改和更新。

    svn 常用命令集合

    例如,命令`svn checkout svn://***.***.*.*/pro/domain`用于检出服务器上的domain项目到本地当前目录。 2. add:将新的文件或目录添加到版本库中,以便跟踪它们的变更。可以添加单个文件,如`svn add test.php`,...

    SQLPlus命令使用指南.doc

    本文将详细介绍SQL Plus中的一些常用命令及其应用场景,帮助读者更好地利用SQL Plus进行数据库操作。 #### 二、SQL Plus的帮助命令 ##### 2.1 `HELP` 命令 - **用途**:`HELP` 命令用于查询SQL Plus中各个命令的...

    linux下svn版本控制的常用命令大全

    Linux 下 SVN 版本控制的常用命令大全 Linux 作为一款开源操作系统,广泛应用于服务器端和企业级开发中,而 SVN(Subversion)则是一款流行的版本控制系统,广泛应用于软件开发、项目管理等领域。今天,我们将详细...

    Linux下常用SVN命令

    以下是对Linux环境下常用SVN命令的详细说明: 1. **Checkout(检出)** 使用`svn checkout`或`svn co`命令将远程仓库中的项目复制到本地工作副本。例如: ``` svn checkout svn://192.168.1.1/pro/domain --...

    linux下SVN命令全解

    本文将详细解析Linux环境下常用的SVN命令及其用法。 1. **Checkout**: `svn checkout` 或 `svn co` 命令用于从远程仓库克隆项目到本地工作目录。例如: ``` svn checkout svn://192.168.1.1/pro/domain ``` 2...

    EViews命令和编程.rar

    下面我们将详细探讨EViews的核心功能、常用命令以及编程基础。 EViews的全称是“Econometric Views”,它提供了一个图形用户界面(GUI)用于数据处理、统计分析、建模和预测。主要特点包括: 1. **数据管理**:...

    linux_SVN使用命令.docx

    本篇文章将详细介绍Linux SVN的常用命令。 1. **Checkout(检出)** 使用`svn checkout`或`svn co`命令将远程仓库中的文件和目录下载到本地工作副本。例如: ``` svn checkout svn://192.168.1.1/pro/domain ``...

    BCGControlBar MFC Pro 25.1 Full Source

    2. ** Ribbon 用户界面**:支持Ribbon UI设计,这是在Microsoft Office 2007及后续版本中引入的一种用户界面风格,允许快速访问常用命令,并提供上下文相关的选项卡。 3. ** docking 管理器**:这个库提供了强大的...

    svn命令总结

    本文主要介绍了在Linux命令行环境下常用的SVN命令操作,包括基本的文件检查出、提交、更新等。 #### 二、常用SVN命令详解 ##### 1. 检查出文件 (Checkout) **命令**: `svn checkout svn://&lt;服务器地址&gt;/&lt;路径&gt; ...

    svn 命令详解

    #### 八、其他常用命令 - **查看日志**:`svn log &lt;path&gt;`(显示文件的所有修改记录,及其版本号的变化) - **查看文件详细信息**:`svn info &lt;path&gt;`(显示文件的详细信息,如版本号、作者等) - **比较差异**:`...

Global site tag (gtag.js) - Google Analytics