在sql2000中创建一个基于两个表的一对一的视图
然后在delphi中使用ADODataSet连接视图更新数据时
报如下错误:
缺少更新或刷新的键列信息
请问是什么原因?
然后在delphi中使用ADODataSet连接视图更新数据时
报如下错误:
缺少更新或刷新的键列信息
请问是什么原因?
解决方案 »
- 关于API的问题向大家请教(获取机器的硬件信息)
- 无法定位程序输入点safgarrayaccessdata于动态链接库oleaut32.dll上
- Rave 7.5E
- 关于FASTREPORT 控制MEMO问题
- 求助:IDHTTP读取网页重定向问题
- spcomm怎么发送成功数据后,发送队列不为空啊?急问
- 有没有对delphi的WEB开发熟悉的朋友啊?UP有分~~~
- 怎样使TTreeView在程序一运行时,就自动展开第一个节点??始终觉得TreeNode.expand(boolean)有些怪怪的。
- edit中的内容和数据库中的如何比较?
- 在delphi中如何实现综合查询?
- 如何将在文本文件中绘制表格?
- 怎麼安裝fastreport?(急,在線等待)
如果你要更新数据,可直接更新基本表。
我用ADOCommand直接执行update对视图也可以更新
但用ADODataSet将该视图像表一样直接处理就报错
请问用ADODataSet有没有好的解决方法???
首先,视图的修改是有条件的,不是所有的视图都能修改。其次,ADO虽然能修改一些视图,但是是非常有限的,具体我的我不知道,BDE的知道些。BDE在视图的更新方面提供了TUpdateSQL控件,这个控件理论上可以修改任何你想修改的视图。
ADO和其后的DBX没提供这个控件,但是VCL却提供了另外的方法。ADOQuery -> DataSetProvider -> ClientDataSet利用Clientdataset来修改数据,
DataSetProvider 提供了一个事件 BeforeUpdateRecord,你看看他的help,你可以在里面写自己的SQL来实现TUpdateSQL的功能,用它来修改视图。