程序代码:* 生成测试表
CREATE CURSOR 测试 (序号 I,值 I)
NVAL=10000002
FOR I=1 TO NVAL
INSERT INTO 测试 VALUES (I,I)
ENDFOR
* 生成区间表
CREATE CURSOR 区间 (X I,Y I,Z I)
J=0
FOR I=1 TO INT(NVAL/6) STEP 6
J=J+1
INSERT INTO 区间 VALUES (I,I+5,J)
ENDFOR
* 测试方法1_SQL查询
*!* T1=SECONDS()
*!* Select Transform(X) + "-" + Transform(Y) + SPACE(10) As 区间, Sum(值) As 求和 Where 序号 Between X And Y group by z From 测试, 区间 into cursor ttt
*!* MESSAGEBOX("共用时 "+TRANSFORM(SECONDS()-T1)+" 秒")
*!* Browse
* 测试方法2_VFP
* 求和结果表
T1=SECONDS()
CREATE CURSOR 结果 (区间 C(20),和 N(8))
NSUM=0
SELECT 测试
SCAN
NSUM=NSUM+值
IF MOD(序号,6)=0
INSERT INTO 结果 VALUES (TRANSFORM(测试.序号-5)+"-"+TRANSFORM(测试.序号),NSUM)
NSUM=0
ENDIF
ENDSCAN
MESSAGEBOX("共用时 "+TRANSFORM(SECONDS()-T1)+" 秒")
SELECT 结果
BROWSE如果记录数达到10万条以上,SQL命令处理数据所用时间与VFP命令处理数据所用时间,就不是一个档次了。

坚守VFP最后的阵地








