foxpro数据库命令总结 
2010-12-13 20:54:50|  分类: 软件URL |  标签: |字号大中小 订阅
数据库和数据表典型及重点操作方式
create datebase <数据库名>          建立数据库
modi datebase <数据库名>          修改数据库
crea <数据表>                      建立数据表
modify structure                    修改数据表结构
use <数据表名>                    打开数据表
append [blank]                      追加数据
list stru                            显示数据表结构
skip [<数值表达式>]                记录指针的相对定位
insert blank                        插入空白记录 
delete [<范围>] [for<条件>]        对记录作删除标记
recall [范围>] [for<条件>]          取消删除标记即恢复记录
browse [fields<字段名表>] [nodelete] [nomodify][partition <数值表达式>] 浏览修改数据
replase范围>] <字段名1> with <表达式> [for <条件>]  记录的替换
count [<范围>] [for<条件>] [to <内存变量>] 记录个数计算
sum [<范围>] [<数值型表达式>] [for <条件>] [to <内存变量表>]  库字段的求和
edit for <条件>                  纵向编辑或修改
brow  noappe  noedit  不能向数据库中添加记录
brow  nodelete  nomodify既不能加上也不能去掉记录的删除标记
brow  lock <数值表达式> 数据库中前面的几个字段被锁定
brow  partition <数值表达式> [redit  ledit]将浏览窗口分成两个窗口
brow font '宋体' ,18 part 30 redit  改变字体大小分割纵横两个窗口
calc sum(数学),sum(foxpro) to a1,a2 统计数学和数据库的总和 (提示:限制性的短语用在命令动词后时,不分前后顺序)
●copy stru to <数据库文件名> [fields <字段名表>] 数据库结构的复制
copy to <文件名> sdf for <条件> [fiel <字段名表>] 生成文本
● 移除备注文件的数据
Delete record 4
Pack memo
●appe from <未打开的库文件> [for <条件>] [fiel <字段名表>]合并(链接)到当前数据库的末尾
●index on <索引表达式> to <索引文件名> [for <条件>]
索引文件的建立
loca [<范围>] [for <条件>] 数据库的查询
● 按钮隐藏与显示:
if this.caption="追加记录"
  ainer1mand2.visible=.t.
 this.caption="继续追加"
 else
&ainer1mand2.visible=.t.
 this.caption="追加记录"
endif
appe blan
THISFORM.CONTAINER1.TXT序号.setfocus
fresh
● 设定显示范围:
Record <n> 指定一个记录
Next <n> 目前记录指针所指的以下数个记录
Rest <n> 目前记录指针所指的以下所有记录
All  数据表中所有的记录
● 储存数据的各种类型,使用replace 命令时,必须注意其类型
Repl str with "amipro 中文版"  字符串
Repl num with 100  数值
Repl price with $ 100 货币
Repl day with {07/06/2007} 日期
Repl dt with {10/10/2006 12:33} 日期时间
Repl log with .f. 逻辑
Repl note with "备注数据"  备注字段与字符串相同
repl 工龄年数 with subs(工龄年数,3,5) all  *从第三个截取,保留5个字符,意在获得有用的数据,删除空格或多余的数据。
Repl 出生年月 with (subs(出生年月,1,4)+"."+subs(出生年月,5,2)) all
Repl cssj with 190000+cssj  将原出生时间四位加上19的操作,字段为数值型
Repl 出生时间 with (subs(出生时间,1,4)+"."+subs(出生时间,5,2)) all &&将出生时间6位数,第四位后,五位前加上圆点的所有操作
将文字文件的内容储存到备注字段中
Appe memo note   不覆盖原来内容
如:将个人自传加入到工作简历备注字段中:
appe memo 工作简历 from 自传.txt for 姓名="WDxrrrrwd"
●Appe memo note from friend.doc OVERWRITE  数据被覆盖
●list 或 disp 记录的显示
sys(21) 返回当前工作区中起控制索引顺序作用的复合索引文件的标记或索引文件的索引序号sort命令排序
sys (44) 返回一个打开的 .idx 索引文件的索引表达式,或者返回复合索引文件的索引标记的索引表达式
sys(7) 返回当前格式文件的文件名
sys(9) 返回visual foxpro 的序列号
tag() 返回一个打开的多入口复合索引文件的标记名,或者返回一个打开的单项的索引文件名
tagno() 返回复合索引文件中的标记以及打开的单项索引文件的索引位置
简单索引的建立:
index on <关键字表达式> to 索引文件名 [for <条件>]
●复合索引文件的建立:
index on <关键字表达式> tag <索引文件名> [of <非结构索引文件名>][for <条件>]
例: 按姓名建立普通索引,按出生日期降序建立候选索引,按学号建立惟一索引,存于复合索引文件中,使用命序列:
index on 姓名 tag xm    &&(注:descending 降序)
index on 出生日期 tag csrq ascending    && (注:ascendimg 升序)
index on 学号 tag  xh unique    && (注:unique 建立惟一索引)
●索引的打开:
use <文件名> [index <索引文件名>/?][order<数值表达式2>/<单索引文件>/[tag] <标识名>>[of <复合索引文件名>]
关闭当前工作区中打开的所有单索引文件和独立复合索引文件
close indexs
建立复合索引文件:("结构化复合索引文件"会在数据表被打开时打开,复合索引文件名,在标识名后会自动建立复合索引文件)
use rsda
index  on  性别+str(gzsj)  tag  xb  &&(结构复合索引)
index  on csny tag csny1 of csny2 dexcending  &&(非结构复合索引)
index  on  gz  to  gz1  compact  unique    &&按工资升序建立压缩型单索引文件,unique为单索引
打开库文件的同时打开索引文件:
use <数据库文件> index <索引文件名> [tag <索引标记> [of [<复合索引文件名>]
●打开数据库以后,再想打开索引文件
set index to <索引文件名> [order[<数值表达式>|<单索引文件名>|[tag] <索引标记> [of <复合索引文件名]]] [ascending|descending] [additive]
如果使用additive 子句,则不会关闭前面已经打开的索引文件
例:打开数据库文件 rsda 并同时打开索引文件 单位1.idxt和出生年月.cdx
Use  rsda  index  单位1, 出生年月
exclusive/shared 指明以独占方式还是以共享方式打开表
格式:use <表名> [in <工作区号>][alias <别名> [exclusive/shared]
select 0 或 select 2
use 成绩表 alias  cj
for 条件。指明在表中选择符合条件的记录进行显示
while 条件。指明选择表中符合条件的记录进行显示,遇到第一条不符合逻辑条件的记录,就不再向下选择记录了。
Delete  from <表名>  where  课程='pascal'
●定义基本表:create table <表名>(<字段名1><类型>[(<宽度>[,<小数的位数>])] [,字段名2>…])
例:Create  table 成绩表 (学号 c(7),课程 c(15), 成绩 n(5,1))
●表单操作    (详细阅读第九章第144页以后内容)
Do form <表单名> 调用表单
lease 或release  thisform    关闭表单
●Use <数据表> alias <别名> exclusive  以独占方式打开表并给予别名
fresh  刷新
Thisform.setfocus  设置焦点  如:1.setfocus
●Report  form <报表名>  [for <条件>]  preview  预览报表

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。