以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQL的视图已具备可修改数据保存功能  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85230)

--  作者:凡夫俗子
--  发布时间:2016/5/20 20:32:00
--  SQL的视图已具备可修改数据保存功能
SQL的视图已具备可修改数据保存功能
但FOXTABLE还是不开放这一功能

--  作者:Hyphen
--  发布时间:2016/5/21 8:38:00
--  
视图修改数据保存功能仅限于单表查询,如:sel ect * from 表A,那还不如直接使用数据表



--  作者:Hyphen
--  发布时间:2016/5/21 8:53:00
--  
sqlserver数据库的说明文档:

以下内容为程序代码:

1 只要满足下列条件,即可通过视图修改基础基表的数据:
2 任何修改(包括 UPD ATE、INS ERT 和 DEL ETE 语句)都只能引用一个基表的列。
3 视图中被修改的列必须直接引用表列中的基础数据。 不能通过任何其他方式对这些列进行派生,如通过以下方式:
4 聚合函数:AVG、COUNT、SUM、MIN、MAX、GRO UPING、ST DEV、STD EVP、VAR 和 VARP。
5 计算。 不能从使用其他列的表达式中计算该列。 使用集合运算符 UN ION、UN ION ALL、CROSS JOIN、EX CEPT 和 INTE RSECT 形成的列将计入计算结果,且不可更新。
6 被修改的列不受 G ROUP BY、HA VING 或 DIST INCT 子句的影响。
7 TOP 在视图的 sel ect_state ment 中的任何位置都不会与 WI TH CHE CK OP TION 子句一起使用。
8 上述限制应用于视图的 FR OM 子句中的任何子查询,就像其应用于视图本身一样。 通常情况下,数据库引擎必须能够明确跟踪从视图定义到一个基表的修改。


其它数据库的限制条件可能还不完全一样,所以通过视图来修改数据其实没多大用处,仅限于一些特殊场合。对于狐表来说完全可以通过其它方式完美替代


--  作者:大红袍
--  发布时间:2016/5/22 11:31:00
--  

 方法一:去编写DataColChanged事件,修改修改哪一列,对应修改对应的表;

 

 方法二:在最后保存的时候,循环每一行修改过的行,把各列保存到对应的表去:

 

 方法三:动态生成sql语句 http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=53006&skin=0