当前位置: 代码迷 >> VFP >> 怎么用处理数据库表的更新
  详细解决方案

怎么用处理数据库表的更新

热度:4501   发布时间:2013-02-26 00:00:00.0
如何用处理数据库表的更新?
表B

记录号 年级 班级 书名 册数 单价 金额
1 93 1 FoxBase 40 8.5 340
2 93 1 操作系统 40 9.5 380
3 93 2 操作系统 45 9.5 427
4 93 2 会计原理 45 10.5 472.5
5 94 1 BASIC 42 7.5 315
6 94 1 信息论 42 11.5 483
7 94 2 PASCAL 40 8.7 348
8 94 2 信息论 40 11.5 460


表A
  
记录号 书名 单价
1 BASIC 8.5
2 PASCAL 9
3 FoxBase 12.5
4 操作系统 11.5
5 会计原理 13.5
6 企业管理 15.6
7       会计原理 15.4

问1.  平时都是在库结构里一一设置,如何用命令同时设置两表相同的字段类型和宽度?
问2.  以上两表是从EXCEL中导入的,命令 impro from 表A type xl8
      导入后字段显示的分别是A B C各字段, 第一行是原EXCEL字段名,如何用命令复制第一行到VF的字段上?
问3.  表都按照 书名 字段建立索引后,建立关联更新操作
       书上说是:如果别名库中若存在关键值相同的记录,则将多次更新当前库记录
       别表A的会计原理就可以多次更新表B的会计原理,但是结果不可以,命令如下:
   upda on 书名 from 表A repl 单价 with A->单价
更新操作

------解决方案--------------------------------------------------------
答1:参考 VFP 自带帮助文件中的 ALTER TABLE 命令。
答2:通过第一行记录内容,多次执行 ALTER TABLE 命令。或者选建立好表,然后用 APPEND FROM Excel名.XLS TYPE XL5 导入。
答3:
VFP9.0:
Update 表A Set 表A.字段2=表B.字段2 From 表B Where 表A.字段1=表B.字段1

VFP9.0以下:
Use 表B
Scan
Update 表A Set 表A.字段2=表B.字段2 Where 表A.字段1=表B.字段1
Endscan
------解决方案--------------------------------------------------------
upda on 书名 from 表A repl 单价 with A->单价
上面的命令是FOXPRO时期的命令,前提是必须对关键字段先进行索引,否则结果会不正确。
------解决方案--------------------------------------------------------
vfp9.0 :
Update e:\cs\tjd.Dbf Set tjd.单价=book.单价 From e:\cs\book.Dbf Where tjd.书名=book.书名

vfp9.0 以下:
Use e:\cs\book.Dbf
Scan
Update e:\cs\tjd.Dbf Set tjd.单价=book.单价 Where tjd.书名=book.书名
Endscan

这些基本语句,建议多看看vfp自带的帮助文件,而且还有示例,比在这里等回复快N倍。
  相关解决方案