| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1667 人关注过本帖
标题:根据表记录建新表的问题,求大神指点!!
只看楼主 加入收藏
gkk714
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-12-7
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:7 
根据表记录建新表的问题,求大神指点!!
data.rar (2.59 KB)
数据字典里包含了所有表的表结构信息,现在要根据这个表的记录来生成所有的表,使用CREAT DBF 表名称(字段名称 数据类型(字段长度,小数位))来建表,使用ALTER TABLE 来追加字段。我用了两个中间变量 b和C
程序代码:
USE 数据字典 IN 0 ALIAS sjzd
DO WHILE .not.eof()
b='('+ALLTRIM(STR(sjzd.字段大小))+','+ALLTRIM(STR(sjzd.小数位数))+')'
?b
c=IIF(sjzd.小数位数=0,'('+ALLTRIM(STR(sjzd.字段大小))+')',b)
?c
?ALLTRIM(sjzd.字段名称)+' '+ALLTRIM(sjzd.数据类型)+c
?sjzd.表名称+(ALLTRIM(sjzd.字段名称)+' '+ALLTRIM(sjzd.数据类型)+c) &&这句可得到形如 qxb 操作员 c(20)
  CREATE dbf sjzd.表名称+(ALLTRIM(sjzd.字段名称)+' '+ALLTRIM(sjzd.数据类型)+c) 
来插入括号和逗号,执行到CREATE dbf sjzd.表名称+(ALLTRIM(sjzd.字段名称)+' '+ALLTRIM(sjzd.数据类型)+c) 这句的时候报告说语法错误,试了一下 CREATE dbf 表名称(字段名称 c(str(20)))报告语法错误,括号内的数字不能为字符型,不知道是否是这原因。 请问大神们怎么才能得到(字段名称 数据类型(字段长度,小数位))这其中的括号,逗号及不是字符型的字段长度和小数位?我只想到了以上的笨办法,求大神指点!!
搜索更多相关主题的帖子: color 记录 
2016-04-27 10:51
gkk714
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-12-7
收藏
得分:0 
数据字典里有五个字段 表名称 c(20)  字段名称C(20) 数据类型C(10) 字段大小 N(3) 小数位数 N(1)
2016-04-27 11:08
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9822
专家分:27104
注 册:2012-2-5
收藏
得分:10 
程序代码:
Select 表名称 from 数据字典 group by 1 into cursor t1
Scan
    bname=Alltrim(T1.表名称)
    Select * from 数据字典 where Alltrim(表名称)==bname into cursor t2
    cstr=""
    Scan
        cstr=cstr+Alltrim(字段名称)+Space(1)+Alltrim(数据类型)+"("+Transform(字段大小)+","+Transform(小数位数)+")"+","
    endscan
    cstr=Left(cstr,Len(cstr)-1)
    Create Cursor &bname (&cstr) && 此处CURSOR 可改为TABLE
    *browse
EndScan

坚守VFP最后的阵地
2016-04-27 12:34
gkk714
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-12-7
收藏
得分:0 
谢班长,完全能达到设想。
2016-04-27 16:06
gkk714
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-12-7
收藏
得分:0 
还得注意一个问题,自由表的字段名长度不得大于10个字符,数据库表的字段名长度可达128个字符
2016-04-28 11:59
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9822
专家分:27104
注 册:2012-2-5
收藏
得分:0 
自动截取

坚守VFP最后的阵地
2016-04-28 12:38
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用sdta在2016-4-28 12:38:58的发言:

自动截取

要不要把字符中间的空格也替换掉?比如替换为_
2016-04-28 13:37
gkk714
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-12-7
收藏
得分:0 
不会自动截取,会报字段名重名或无效。临时表中可以大于10个字符。
2016-04-28 23:55
快速回复:根据表记录建新表的问题,求大神指点!!
数据加载中...
 
   



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

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