| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1879 人关注过本帖
标题:别名已被使用
只看楼主 加入收藏
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:9 
别名已被使用
***********
CREATE CURSOR TEM(编号 C(10),发生量 C(10))
APPEND BLANK
REPLACE TEM.编号 WITH "003",TEM.发生量 WITH "69"
ALTER TABLE TEM ADD 单价 F(12,2)

UPDATE TEM SET 单价=VAL(发生量)

SELECT 单价,编号 FROM TEM INTO CURSOR ABC READWRITE

SELECT DISTINC 编号 FROM ABC INTO CURSOR TEM READWRITE        &&出错:别名已被使用

***********

运行最后一句出错:别名已被使用,是什么原因呢 ?
图片附件: 游客没有浏览图片的权限,请 登录注册


搜索更多相关主题的帖子: CURSOR ABC 编号 WITH 出错 
2021-07-16 08:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:5 
那就不要用这个别名

坚守VFP最后的阵地
2021-07-16 09:42
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
收藏
得分:0 
回复 2楼 sdta
select-sql 好象每次都重建个数据库,不管之前是否存在
2021-07-16 10:03
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:5 
以下是引用sarge_xp在2021-7-16 08:30:13的发言:

***********
CREATE CURSOR TEM(编号 C(10),发生量 C(10))
APPEND BLANK
REPLACE TEM.编号 WITH "003",TEM.发生量 WITH "69"
ALTER TABLE TEM ADD 单价 F(12,2)

UPDATE TEM SET 单价=VAL(发生量)

SELECT 单价,编号 FROM TEM INTO CURSOR ABC READWRITE

SELECT DISTINC 编号 FROM ABC INTO CURSOR TEM READWRITE        &&出错:别名已被使用

***********

运行最后一句出错:别名已被使用,是什么原因呢 ?


关键是你对VFP的处事原则不清,一个表打开,就占一个工作区,一个工作区中打开的表就有一个名称,这个名称叫别名,默认同表的名称,也可以被你指定为某个名称。

你前面的语句中 打开了表 TEM ,即有一个工作区中的表别名为 TEM 。 前面没有关闭过,所以你最后一句 又用 TEM 就出错了。换一个就没事了




只求每天有一丁点儿的进步就可以了
2021-07-16 10:07
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2214
专家分:3882
注 册:2007-4-27
收藏
得分:0 
你只要在最后出错一句前加上
sele tem
use
最后一句就不会出错了,但先前的TEM会被覆盖掉的

只求每天有一丁点儿的进步就可以了
2021-07-16 10:10
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
收藏
得分:0 
回复 5楼 wengjl
临时表的关闭等于删除
2021-07-16 11:09
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:5 
CREATE CURSOR TEM(编号 C(10),发生量 C(10))
APPEND BLANK
REPLACE TEM.编号 WITH "003",TEM.发生量 WITH "69"
ALTER TABLE TEM ADD 单价 F(12,2)

UPDATE TEM SET 单价=VAL(发生量)

SELECT 单价,编号 FROM TEM INTO CURSOR ABC READWRITE

SELECT DISTINC 编号 FROM ABC INTO CURSOR TEM READWRITE        &&出错:别名已被使用
*************
问题出现在
ALTER TABLE TEM ADD 单价 F(12,2)
改为
SELECT TEM.*,000000.00 as 单价 FROM TEM INTO CURSOR TEM READWRITE

[此贴子已经被作者于2021-7-16 12:32编辑过]

2021-07-16 12:23
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
CREATE CURSOR TEM(编号 C(10),发生量 C(10))
APPEND BLANK
REPLACE TEM.编号 WITH "003",TEM.发生量 WITH "69"
*!* ALTER TABLE TEM ADD 单价 F(12,2) && 问题出现在这里,改为
SELECT TEM.*,000000.00 as 单价 FROM TEM INTO CURSOR TEM READWRITE
UPDATE TEM SET 单价=VAL(发生量)
SELECT 单价,编号 FROM TEM INTO CURSOR ABC READWRITE
SELECT DISTINC 编号 FROM ABC INTO CURSOR TEM READWRITE
2021-07-16 12:35
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
VFP SQL可以这样做的
create cursor 表名称(字段 c(10))
select * from 表名称 into cursor 表名称
同样
create table d:\表名称(字段 c(10))
select * from 表名称 into table d:\表名称


2021-07-16 12:42
sarge_xp
Rank: 2
等 级:论坛游民
帖 子:120
专家分:13
注 册:2006-4-30
收藏
得分:0 
回复 4楼 wengjl
CREATE CURSOR TEM(编号 C(10),发生量 C(10))
APPEND BLANK
REPLACE TEM.编号 WITH "003",TEM.发生量 WITH "69"
*

*UPDATE TEM SET 单价=VAL(发生量)

SELECT * FROM TEM INTO CURSOR ABC readwrite

SELECT DISTINC 编号 FROM ABC INTO CURSOR TEM READWRITE        &&出错:别名已被使用


**********************************

改成这样,通过了。之前的问题出现在 ALTER TABLE TEM ADD 单价 F(12,2) 这一句,为什么呢?
2021-07-16 20:45
快速回复:别名已被使用
数据加载中...
 
   



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

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