| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 846 人关注过本帖
标题:帮忙,这样的功能如何写?
只看楼主 加入收藏
textexe
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-8-13
收藏
 问题点数:0 回复次数:17 
帮忙,这样的功能如何写?
有个数据库如下



字段A   字段B   字段C

           0         

          0         

           0         

           0         

           0         




现在XX注册了,"我"的字段B就+1,我的字段C,也就是"王"的字段B加+1,"王"的字段C,也就是"张"的字段B+1,然后就停止了

如何实现?
搜索更多相关主题的帖子: 如何 
2005-08-13 19:30
121038
Rank: 1
等 级:新手上路
威 望:2
帖 子:414
专家分:0
注 册:2005-8-3
收藏
得分:0 
帮你顶,偶也是新手

2005-08-13 20:08
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 
1=作个触发器, 当更新某记录时,自动更新关联记录,直至没有关联记录 具体请参见 数据库方面资料的 触发器 部分 2=直接Update,那么需要在Update之前先查询是否为最顶端(末端)的记录 注释请看6楼 Const endVar = "无" Dim thisVar,thisSQL,thisRS thisVar = "我"'前期处理省略,假设"我" While thisVar <> endVar thisSQL = "Update tableA SET colB=colB+1 WHERE colA='"&thisVar&"'" conn.Execute(thisSQL) thisSQL= "SELECT colC FROM tableA WHERE colA='"&thisVar&"'" Set thisRS = conn.Execute(thisSQL)'省略错误处理 thisVar = thisRS("colC") thisRS.Close Set thisRs = Nothing Wend 触发器的方法可以参考 上述代码

[此贴子已经被作者于2005-8-13 21:21:10编辑过]


VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-08-13 20:27
121038
Rank: 1
等 级:新手上路
威 望:2
帖 子:414
专家分:0
注 册:2005-8-3
收藏
得分:0 
不合我意啊,我是更新3个就不更新了,您的触发器是要更新完所有的!~

2005-08-13 20:36
textexe
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-8-13
收藏
得分:0 
以下是引用121038在2005-8-13 20:36:54的发言: 不合我意啊,我是更新3个就不更新了,您的触发器是要更新完所有的!~
知我心者兄弟也!
2005-08-13 20:42
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 
以下是引用121038在2005-8-13 20:36:54的发言: 不合我意啊,我是更新3个就不更新了,您的触发器是要更新完所有的!~
真是无语啊, 你不会再增加一个 计数器 判断当前已经更新 多少个嘛? Const endVar = "无"'设定终止更新的colC字段值 Const maxCNT = 3'设定终止更新的计数器值Dim thisVar,thisSQL,thisRS,thisCNT'声明变量thisVar = "我"'前期处理省略,假设"我" thisCNT = 0'初始化计数器值 While (thisVar <> endVar) AND (thisCNT < maxCNT)'循环更新直到到达终止记录或者计数器上限 thisSQL = "Update tableA SET colB=colB+1 WHERE colA='"&thisVar&"'"'更新当前colA值的记录 conn.Execute(thisSQL)'执行thisSQL的操作,conn假定为已经连接的ADODB.Coonection对象 thisCNT = thisCNT + 1'计数器+1 thisSQL = "SELECT colC FROM tableA WHERE colA='"&thisVar&"'"'通过查询获取当前更新记录colC值的 Set thisRS = conn.Execute(thisSQL)'省略错误处理 thisVar = thisRS("colC")'更新当前更新colA,准备下次更新 thisRS.Close'关闭记录集 Set thisRS = Nothing'销毁对象 Wend'循环结尾 做人要厚道!说话要动脑子~

[此贴子已经被作者于2005-8-13 21:18:22编辑过]


VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-08-13 20:52
121038
Rank: 1
等 级:新手上路
威 望:2
帖 子:414
专家分:0
注 册:2005-8-3
收藏
得分:0 
以下是引用toolag在2005-8-13 20:52:05的发言:
以下是引用121038在2005-8-13 20:36:54的发言: 不合我意啊,我是更新3个就不更新了,您的触发器是要更新完所有的!~
真是无语啊, 你不会再增加一个 计数器 判断当前已经更新 多少个嘛? Const endVar = "无" Const maxCNT = 3 Dim thisVar,thisSQL,thisRS,thisCNT thisVar = "我"'前期处理省略,假设"我" thisCNT = 0 While (thisVar <> endVar) AND (thisCNT < maxCNT) thisSQL = "Update tableA SET colB=colB+1 WHERE colA='"&thisVar&"'" conn.Execute(thisSQL) thisCNT = thisCNT + 1 thisSQL = "SELECT colC FROM tableA WHERE colA='"&thisVar&"'" Set thisRS = conn.Execute(thisSQL)'省略错误处理 thisVar = thisRS("colC") thisRS.Close Set thisRS = Nothing Wend 做人要厚道!说话要动脑子~
偶是新手嘛!

2005-08-13 20:59
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 
至于这3的来由, 我 不知道 你是 算计了从 "我" 到 "无" 经过了3条记录还是 就是固定3了

如果说是动态的, 那么 上述代码 正确的达到了更新到"无"的目的, 不管是 从"我"开始,还是从 其他什么开始, 计数器就没有必要了

VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-08-13 20:59
textexe
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2005-8-13
收藏
得分:0 
谢谢,不过我不怎么看的懂,能不能按照我的方法写一写,拜托啦
2005-08-13 21:00
toolag
Rank: 1
等 级:新手上路
帖 子:152
专家分:0
注 册:2005-7-30
收藏
得分:0 
以下是引用121038在2005-8-13 20:59:06的发言: 偶是新手嘛!
在我看来没有 新手 / 高手 之分, 只有 勤奋的人 / 懒惰的人 , 动脑子的 / 不动脑子的 ... 既然编程, 那么就应该 持有编程应有态度 ...

VB, Delphi, ASP, PHP, JSP, .NET MS SQL, My SQL, Oracle Diablo, StarCraft, WarCraft, World of Warcraft
2005-08-13 21:05
快速回复:帮忙,这样的功能如何写?
数据加载中...
 
   



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

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