| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
ADSL如何秒变专线,公网IP盒子了解一下千里之行 始于足下
共有 1032 人关注过本帖
标题:CREATE CURSOR XMDA (&CZDM) ,提示语法错误,此问题如何解决?
只看楼主 加入收藏
yjc9894301
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-3-25
结帖率:87.5%
  已结贴   问题点数:13  回复次数:12   
CREATE CURSOR XMDA (&CZDM) ,提示语法错误,此问题如何解决?
在借用“@老想你了” 程序代码中,当运行至CREATE CURSOR XMDA (&CZDM) 时,提示语法错误,此问题如何解决?
搜索更多相关主题的帖子: CREATE CURSOR 提示 语法错误 运行 
2019-01-18 11:08
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:96
帖 子:2617
专家分:6491
注 册:2015-3-25
  得分:4 
CZDM = "姓名 C(10)"
CZDM = CZDM + ", 性别 C(4)"
CZDM = CZDM + ", 年龄 I"
CREATE CURSOR XMDA (&CZDM)
这样应该不出错了
相当于
CREATE CURSOR XMDA (姓名 C(10),性别 C(4),年龄 I)
2019-01-18 17:21
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏省连云港市
等 级:贵宾
威 望:188
帖 子:7795
专家分:19180
注 册:2012-2-5
  得分:0 
以下是引用yjc9894301在2019-1-18 11:08:35的发言:

在借用“@老想你了” 程序代码中,当运行至CREATE CURSOR XMDA (&CZDM) 时,提示语法错误,此问题如何解决?

完整代码是什么

坚守VFP最后的阵地
2019-01-18 20:06
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:44
帖 子:629
专家分:2080
注 册:2014-2-7
  得分:1 
“授人以鱼不如授人以渔”,设置一个断点,查看一下字符串变量 CZDM 的值不就知道错在哪里了吗?这类语法错误很容易排查

泉城飞狐
2019-01-19 10:06
yjc9894301
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-3-25
  得分:0 
以下是引用stda老师的将“2010版本excel表格如何导入到vf中”代码

EOLE=CREATEOBJECT('EXCEL.APPLICATION')
LCFILENAME=GETFILE([XLS]) && 此处 XLS 改为EXCEL2010文件的扩展名
IF EMPTY(LCFILENAME)  
 RETURN
ENDIF
EOLE.WORKBOOKS.OPEN(LCFILENAME)
EOLE.WORKSHEETS(1).ACTIVATE
LNROW=EOLE.SHEETS(1).USEDRANGE.ROWS.COUNT
LNCOL=EOLE.SHEETS(1).USEDRANGE.COLUMNS.COUNT
DIMENSION LAXLS(LNROW,LNCOL),FIELDNAME(LNCOL) && laxls 存贮工作表中的数据,FIELDNAME存贮列标题名
FOR lnI=1 TO LNCOL
    FIELDNAME[lnI]=EOLE.SHEETS(1).CELLS(1,lnI).VALUE && 获取列标题名
ENDFOR
LAXLS = EOLE.ACTIVESHEET.USEDRANGE.VALUE
EOLE.QUIT
RELEASE EOLE
 CZDM=[]FOR lnI=1 TO LNCOL
    CZDM=CZDM+FIELDNAME[lnI]+[ V(200)]+IIF(lnI<LNCOL,[,],[])
ENDFOR
CREATE CURSOR XMDA (&CZDM)
CREATE CURSOR TEMP (&CZDM)
INSERT INTO TEMP FROM ARRAY LAXLS
INSERT INTO XMDA SELECT * FROM TEMP WHERE RECNO()>1
SELECT XMDA
BROWSE

[此贴子已经被作者于2019-1-19 19:37编辑过]

2019-01-19 19:17
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏省连云港市
等 级:贵宾
威 望:188
帖 子:7795
专家分:19180
注 册:2012-2-5
  得分:4 
CZDM=[]FOR lnI=1 TO LNCOL 该行代码错误,应该为
CZDM=[]
FOR lnI=1 TO LNCOL

坚守VFP最后的阵地
2019-01-19 20:29
yjc9894301
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2011-3-25
  得分:0 
回复sdta 老师:昨晚在粘贴代码时,误把代码行“CZDM=[]”和“FOR lnI=1 TO LNCOL ”弄成一行了.
我多次测试,使用2楼的方法  CREATE CURSOR XMDA (姓名 C(10),性别 C(4),年龄 I) 可顺利通过,
但用 CREATE CURSOR XMDA (&CZDM) 则提示“语法错误”,是否是宏替换  &CZDM  出现问题了?
使用 win7+vfp9  和 xp+vfp9  都提示同样的信息。


2019-01-20 12:27
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏省连云港市
等 级:贵宾
威 望:188
帖 子:7795
专家分:19180
注 册:2012-2-5
  得分:0 
显示czdm的结果是什么

坚守VFP最后的阵地
2019-01-20 13:16
sdta
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏省连云港市
等 级:贵宾
威 望:188
帖 子:7795
专家分:19180
注 册:2012-2-5
  得分:0 
上传你的数据及你写的代码

坚守VFP最后的阵地
2019-01-20 13:20
csyx
Rank: 4
等 级:贵宾
威 望:11
帖 子:62
专家分:263
注 册:2018-3-13
  得分:4 
回复 7楼 yjc9894301
两种可能:
1. CZDM字符串超长了,vfp一条语句的字面长度不允许超过254个字符(包括宏扩展以后的长度);你可以这样验证,将要导入的excel表格列数减少一半或更多,看是否还报错;尽量避免使用宏是一条基本原则,你这个例子,用数组(Create Cursor From Array ...)来创建临时表更合适
2. excel表格第一行,包含了不允许直接用作字段名的值;vfp字段名,只允许以 字母,汉字,下划线开头

[此贴子已经被作者于2019-1-20 18:12编辑过]

2019-01-20 18:01







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029302 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved