http://blog.sina.com.cn/shizheng95[订阅][手机订阅]
个人资料
访客
读取中...
评论
读取中...
分类
    内容读取中…
博文

键盘按键的键名和键值对照表

按键       单独按键       与Shift键组合      与Ctrl键组合       与Alt键组合

F1   28    84    94    104

F2   -1    85    95    105

F3   -2    86    96    106

F4   -3    87    97    107

F5   -4    88    98    108

F6   -5    89    99    109

F7   -6    90    100  110

F8   -7    91    101  111

F9   -8    92    102  112

复制数据到数组(当前记录)
scather to aa    把当前列的值赋给数组AA
  gather from aa 从数组中追加记录
scather 命令只能将当前记录添加到数组,要批量的将一个表中的数据转移到另一个表中,用copy to  array 和append from 命令
COPY TO ARRAY ArrayName  
   [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
   [Scope] [FOR lexpression_r_r1] [WHILE lexpression_r_r2] [NOOPTIMIZE]
例COPY TO ARRAY aMyArray FIELDS LIKE A*,P* EXCEPT PARTNO*

备注型字段的打开
下例使用 Visual FoxPro 示例数据库 TestData,然后用包含 NOEDIT 和 RANGE 选项的 MODIFY MEMO 命令打开 Employee 表中第一条记录的备注字段 Notes。以只读方式在“编辑”窗口中打开备注字段,并选中前 10 个字符。
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE employee  && 打开 Employee 表
MODIFY MEMO Notes NOEDIT RANGE 1,10 
COPY MEMO 命令  复制当前记录中的指定备注字段的

copy structure to 表名
*复制表的结构到一个新表中
copy structure extended to 表结构文件  <fields 字段名>
use biao1
copy structure extended to biao2&&复制表1的结构信息到表2
COPY STRUCTURE EXTENDED 命令   创建一个新表,它的字段中包含当前选定表的结构信息。
COPY STRUCTURE EXTENDED TO FileName  
   [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList]
参数
FileName
指定要创建的新表。
DATABASE DatabaseName
指定新表要添加到的数据库。
NAME LongTableName
为新表指定一个长名。长名最多可包含 128 个字符,并可以在数据中代替短文件名。
FIELDS FieldList
指定只有 FieldList 中的字段才包含到新表的记录中。如果省略 FIELDS FieldList,则所有字段在新表中都有一条记录。
当前选定表每个字段的信息都复制到新表的一条记录中。新表的结构为包含 18 个字段的固定的格式。下表列出了字段及其内容
字段 字段类型 内容
FIELD_NAME
 字符型
 

统计平均分(2009-11-25 10:39)

有两张表,要统计出每位教师的平均分,以前一个一个的算,有点费事,想了一点小方法,共同看一下是否实用。
表fenggong
 班姓名科
  1 张三   1
  2 张三   1
  3 张三   1
  4 王磊   1
  5 王磊   1
  1 李阳   2
  2 李阳   2
  3 张三   2
  4 张三   2
  5 王一   2
  1 丁一   3
  2 李三   3
  3 李四   3
  4 李四   3
  5 李四   3
表chengji
班分 科
  1 95 1
  2 93 1
  3 45 1
  4 75 1
  5 47 1
  1 46 2
  2 46 2
  3 47 2
  4 98 2
  5 84 2
  1 87 3
  2 58 3
  3 65 3
  4 77 3
  5 48 3

成功的喜悦(2009-11-23 20:41)

今天在网上下了一个下了VF9.0。SP2的英文版,以前一直用6.0,感觉界面不太美观,并且有些功能不支持,用9.0,还找了一个序列号,特高兴。

我这几天找着用编程的方法解决日常的一些问题,虽然费点事,感觉还是有提高的,特别是对SQL中的联接又有了新的认识,有一点成功的喜悦。

用select  a,c,avg(c) from biao group by c  其中a 为一列文本,执行显示出错,但在6.0中可以正确执行,为什么?想了一下,应该是其中的列a无实际意义,去掉就好了,改为

select c avg(c) from biao group by c 就行了,唉......

几个文本操作函数(2009-11-23 20:27)
AT( ) 函数   在一个字符表达式中查找另一个字符表达式出现的位置。
 AT(cSearchexpression_r_r, cexpression_r_rSearched [, nOccurrence]) 
cSearchexpression_r_r
指定用于在 cexpression_r_rSearched 中进行搜索的字符表达式
cexpression_r_rSearched
指定在其中进行搜索的字符表达式。cSearchexpression_r_rcexpression_r_rSearched 可以是任意大小的备注字段。
nOccurrence
指定搜寻 cSearchexpression_r_rcexpression_r_rSearched 中的第 nOccurrence 次(第一、第二、第三次等等)出现。默认情况下,AT( ) 函数搜索到 cSearchexpression_r_r 首次出现 ( nOccurrence=1)。
2 RAT( ) 函数 返回一个字符表达式或备注字段在另一个字符表达式或备注字段内最后(最右边)出现的位置。
sql语句 再认识(2009-11-21 16:19)

select biao1.*,biao2.* from biao1,biao1
select a.*,b,* from biao1 as a,biao2 as b
select top 10 from biao order by column1
select top 10 percent from biao order by column1 desc
*查询符合条件的百分比数,按降序排列
*select 不仅能从表或视图中检索数据,它还能够从其他

查询语句所返回的结果集合中查询数据。例
select a.column1,b.column1 from biao1 a, (select * from

biao2 where column2>90 from biao2) as b where

a.column1=b.column2
select * from biao1 where column1 between value1 and

value2
select * from biao1 where column1 in (value1,value2,value3)
select * from biao1 where column1 not in

(value1,value2,value3)
*vf中的sql语句中like可使用的通配符中有%和_   ,前者表

示任意多个字符,后者表示单一字符。
select * from biao1 where column1 like '王_'
select * from biao1 where column1 like '王%'
select * from biao1 where column1 like '%王%'
select * from biao1 where

*假设现有一个原始表shi.dbf,列A,列B,列C,A是代表姓名,B是科目列,C是成绩列
*一个学生有多科成绩,科目是固定的,有9科,用1-9代表,如何把科目也变成一列,就像平常的成绩册一样
*使用注意,原始表的列只能用ABC,科目代表只能用从1开始的数字,中间不能缺。
close all
set safety off
sele distinct b from shi into cursor lin &&看共有几科
ma=recc()
sele distinct a from shi into cursor lin&&选出不重复的姓名
copy to biao

for hh= 1 to ma
na='b'+alltrim(str(hh))
alter table biao add column &na n(5)
next&&修改表的结构,添加列

sele a
use shi
sele b
use biao
sele shi
go top
do while not eof()&&依次循环,找出相应的列添加
mb=a
mc=b
mx=c
sele biao
locate for a=mb
if found()
my=mc+1
mz=fields(my)
replace &mz with mx
endif
sele shi
skip
enddo
set safety on
brow

 

close all
set safety off
my='wen10'&&要统计的表名
ma=30&&统计的多少个段
mb=20&&要统计的每个段的差
*假设要统计的分数表按C列(班级)分类,统计每个班的各名次段(列l)的人数。
for tt=1 to ma
if tt=1
select c,count(c) from &my into cursor lin ;
where l=<tt*mb group by c
copy to shi
copy to shi1
sele a
use shi
alter table shi add column mm c(8)
sele shi
replace all mm with 'm'+alltrim(str(tt*mb))
else
select c,count(c) from &my into cursor lin ;
where l=<tt*mb group by c
copy to shi1
sele shi
append from shi1
replace all mm with 'm'+alltrim(str(tt*mb)) for mm=<'0'
endif
next
drop table shi
set safety on

 

CHRTRAN() 函数

 

将一字符串中的某些字符替换为另一些字符。

语法

CHRTRAN(字符表达式1,字符表达式2,字符表达式3)

返值类型

字符型

参数描述

字符表达式1:字符串,其中的某些字符将被替换。

字符表达式2:确定字符表达式1中的哪些字符将被替换。

字符表达式3:用于替换的字符。

看了上面的内容后可能还是有点稀里糊涂,那就用一个例子来说明吧:

? CHRTRAN('AABCDEF', 'ACE', 'XYZ')

显示结果是:XXBYDZF

即用“X”替换“AABCDEF”中的“A”,“Y”替换“C”,“Z”替换“E”。这下明白了吧:)

注意
 如果“字符表达式3”中的字符少于“字符表达式2”中的字符数,那么“字符表达式1”与“表达式2”中多余的字符相匹配的字符将被删除,怎么讲起来总象绕口令,还是看例子:
? CHRTRAN('AABCDEF', 'ACE', 'XY')

显示结果是:XXBYDF,“E”被删掉,或者说“XY”中第3个字符是空字符,“E”被这个空字符替换了。
 

说明

另有一个函数 STRTRAN(),主要用于双字节的字符,如字符串中有中文,最好使用这个函