唉,foxpro高手救我!

chenlixin007 2012-07-10 11:16:05
嗯,这样,我想为某个数据表建个触发器,该表一旦做update操作,就统计的cj列数据,对其中一行id为0的cj列更新为其他列的平均值。

操作:
1先在库中建了个存储过程
PROCEDURE Myupd()
update bqks set cj=sum(cj)/count(*) where id<>0
end PROCEDURE

2在命令窗口中执行了
CREATE TRIGGER ON bqks FOR UPDATE AS Myupd()




执行代码出错!!我晕,在sql server 中这样可没问题啊。fox我可是菜鸟,求高手帮忙
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2012-07-10
  • 打赏
  • 举报
回复
Create Database MyData.Dbc			&& 建立一个数据库
Create Table bqks.Dbf (Id i,cj i) && 建立一个表
Create Trigger On bqks For Update As Myupd()

*-- vfp6.0
Procedure Myupd()
Select Nvl(Avg(cj),0) As cj_avg Into Cursor t1 From bqks Where Id<>0
Update bqks Set cj=t1.cj_avg Where bqks.Id=0
Endproc

*-- vfp9.0
*!* Procedure Myupd()
*!* Update bqks Set cj=b.cj_avg From (Select Nvl(Avg(cj),0) As cj_avg From bqks Where Id<>0) b Where bqks.Id=0
*!* Endproc
不过,你的问题用触发器行不通,因为这段代码运行有问题,你试着运行:
Insert into bqks values (1,100)
Insert into bqks values (0,0)
Insert into bqks values (2,200)
Update bqks set cj=300 where id=2
到最后一句行就报错了。

所以还是用报表的自带功能吧
或者打印前再语句求平均值
十豆三 2012-07-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
vf6中通不过。我这是原来一个人留下的垃圾程序,没求和列,程序动不了,领导要报表求个加平均行...
[/Quote]报表加平均值或求和等,报表本身就有此功能。
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
提示什么?
chenlixin007 2012-07-10
  • 打赏
  • 举报
回复
vf6中通不过。我这是原来一个人留下的垃圾程序,没求和列,程序动不了,领导要报表求个加平均行...
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
2楼的代码试试吧,在VFP9下没有提示出错
chenlixin007 2012-07-10
  • 打赏
  • 举报
回复
是在唉dbc啊,不是没法写啊。我也想用sql server,这是原来的人留下的程序,改不了,没源码。我也很郁闷
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
楼主 是在DBC中吧?
建议不用VFP的DBC
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
MODIFY procedure

PROCEDURE Myupd
update bqks set cj=(select sum(cj) from bqks)/(select count(*) from bqks) where id<>0
return .T.
ENDPROC

CREATE TRIGGER ON table1 FOR UPDATE AS Myupd()

十豆三 2012-07-10
  • 打赏
  • 举报
回复
存储过程需要 数据库(DBC),自由表不支持
wwwwb 2012-07-10
  • 打赏
  • 举报
回复
用代码实现吧,OR 更换数据库
chenlixin007 2012-07-10
  • 打赏
  • 举报
回复
确实如上所描述,最后一更新是根本不行的....
看样子还是foxpro的问题,用触发器根本实现不了。不行的话我还是在sqlserver上重建,并用.net重写这个程序吧.... 痛苦ing...

2,727

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧