开发环境:delphi 5 + wind2000
有个表basetable(字段a,b,c),针对此表有个视图viewtable(只能看到a,b),并为此视图建立个触发器,如下:
CREATE TRIGGER InsteadTrigger on [dbo].[viewtable]
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO basetable
SELECT a,b,'wc'
FROM inserted
end
(这样做的目的是让只针对视图操作,把表隐藏起来);
然后在delphi里,adodataset自然就是从视图里操作数据了;
那现在有个问题,新增记录的时候,如果用append,然后post,发现真正的basetable表里的字段c的值是空,而不是预料的“wc”。我用sqlserver的事件探查器看了下,发现sql 语句是直接针对表的插入操作了,前面多了个 prepare相关的存储过程;但是如果用insert语句的话,就会执行视图上的那个触发器了。另外在sqlserver的查询分析器里执行都是正常的,我怀疑是delphi的ado数据控件有问题(已经升级了呀)
有个表basetable(字段a,b,c),针对此表有个视图viewtable(只能看到a,b),并为此视图建立个触发器,如下:
CREATE TRIGGER InsteadTrigger on [dbo].[viewtable]
INSTEAD OF INSERT
AS
BEGIN
INSERT INTO basetable
SELECT a,b,'wc'
FROM inserted
end
(这样做的目的是让只针对视图操作,把表隐藏起来);
然后在delphi里,adodataset自然就是从视图里操作数据了;
那现在有个问题,新增记录的时候,如果用append,然后post,发现真正的basetable表里的字段c的值是空,而不是预料的“wc”。我用sqlserver的事件探查器看了下,发现sql 语句是直接针对表的插入操作了,前面多了个 prepare相关的存储过程;但是如果用insert语句的话,就会执行视图上的那个触发器了。另外在sqlserver的查询分析器里执行都是正常的,我怀疑是delphi的ado数据控件有问题(已经升级了呀)
解决方案 »
- 使用Delphi如何让主机的喇叭发出提示音。
- 剪贴板中的图片保存为JPG文件的问题 有正确答案马上结贴。。。
- 有个流程图文件,扩展名是VSD,不知道用什么程序打开??
- 求最高效旋转图片90度和270度的方法!!!
- rave做主从报表的问题???在线等!!!!谢谢
- 求教:怎么用delphi编程实现向excel插入一张图片?并控制其位置。
- webBrowser 用鼠标复制文件的问题
- 如何在主应用程序的窗口中调用自已写的DLL中的Frame?谢谢
- 请教继承IInterface与TObject的比较
- 用TMediaPlayer如何播放.dat格式的视频文件?
- 急,急,急,谁有条形码组件和说明!!!
- 晚上结贴:如何编写ActiveX Library,并如何通过ASP或JSP调用该Library?
你以前也有碰到过此类问题么?但我只能在视图上建立触发器(表被隔离开了)