注册 登录
编程论坛 VFP论坛

语法错误,卡住了

sarge_xp 发布于 2021-07-06 19:42, 1629 次点击
SELECT * FROM CURRENT_PRICE INTO CURSOR ABCD                                                        &&分析数据源abcd


SELECT 代码 FROM abcd INTO cursor TEM



第二行出现错误
只有本站会员才能查看附件,请 登录



是什么原因呢 ?又如何改 ?
9 回复
#2
吹水佬2021-07-06 20:36
试试:
SELECT * FROM CURRENT_PRICE INTO CURSOR abcd NOFILTER

SELECT * FROM CURRENT_PRICE INTO CURSOR abcd READWRITE


[此贴子已经被作者于2021-7-6 20:44编辑过]

#3
吹水佬2021-07-06 20:50
这样也没报错?
SELECT * FROM CURRENT_PRICE WHERE .T. INTO CURSOR abcd
#4
xuminxz2021-07-06 21:06
SELECT * FROM CURRENT_PRICE INTO CURSOR ABCD  &&只是给CURRENT_PRICE一个别名——abcd
SELECT * FROM CURRENT_PRICE WHERE .T. INTO CURSOR abcd  &&建立一个临时副本。
#5
radiofan2021-07-07 08:19
+ NOFILTER 或 from dbf("cursorname")  &&为什么用 from dbf() 行,我也不知道,哪位老师解释一下

CURSOR CursorName [NOFILTER | READWRITE]
 在一个临时表中存储查询结果。

注意:
如果指定了一个已打开表的名称,Visual FoxPro 将产生一条错误信息。SELECT 执行之后,临时表保持打开并为活动,而且除非您指定了 READWRITE 选项,否则它是只读的。关闭该临时表时,它将被删除。通过指定 SORTWORK,临时表可以作为磁盘或卷标上的一个临时文件存在。
 
NOFILTER 创建一个可以用于以后查询的临时表。

注意:
包含 NOFILTER 会降低查询的性能,因为它将在磁盘上创建一个临时表。关闭临时表时,从磁盘上删除临时表。
 
READWRITE 指定临时表为可修改。如果源表或表中使用了自动增量(auto-incrementing),由 READWRITE 创建的临时表不继承该设置。使用 READWRITE 子句可以在临时表上创建多个结构索引。
 

[此贴子已经被作者于2021-7-7 08:26编辑过]

#6
吹水佬2021-07-07 09:13
[quote]以下是引用radiofan在2021-7-7 08:19:31的发言:

为什么用 from dbf() 行,我也不知道,哪位老师解释一下
行不行看看下面的结果:
CREATE CURSOR tt (f1 I, f2 I)
INSERT INTO tt VALUES (1,2)
INSERT INTO tt VALUES (3,4)
INSERT INTO tt VALUES (5,6)
SELECT f1 FROM tt INTO CURSOR tmp
SELECT tmp
BROWSE
只有本站会员才能查看附件,请 登录

SELECT * FROM DBF("tmp")
只有本站会员才能查看附件,请 登录
#7
sdta2021-07-07 09:24
试了下,下面方法不出现错误

SELECT * FROM CURRENT_PRICE INTO CURSOR ABCD  READWRITE


SELECT 代码 FROM abcd INTO cursor TEM
#8
sarge_xp2021-07-07 10:23
回复 7楼 sdta
就差它,已经好了。这个参数在提示中并没有,在哪找到的呢 ?
#9
sdta2021-07-07 11:20
以下是引用sarge_xp在2021-7-7 10:23:52的发言:

就差它,已经好了。这个参数在提示中并没有,在哪找到的呢 ?

帮助文件
只有本站会员才能查看附件,请 登录
#10
radiofan2021-07-08 08:29
以下是引用吹水佬在2021-7-7 09:13:41的发言:

[quote]以下是引用radiofan在2021-7-7 08:19:31的发言:

为什么用 from dbf() 行,我也不知道,哪位老师解释一下
行不行看看下面的结果:
CREATE CURSOR tt (f1 I, f2 I)
INSERT INTO tt VALUES (1,2)
INSERT INTO tt VALUES (3,4)
INSERT INTO tt VALUES (5,6)
SELECT f1 FROM tt INTO CURSOR tmp
SELECT tmp
BROWSE

SELECT * FROM DBF("tmp")



只有本站会员才能查看附件,请 登录


应该 + NOFILTER 比较规范,from dbf()帮助里好像也没有提到 ……。从这个示例中可以看到,在实际应用中还是要注意选择。感谢吹老师

[此贴子已经被作者于2021-7-8 08:40编辑过]

1