曾经用SELECT * FROM A表去取的一个表格
然后想入数据
但一个前辈告诉我
SQL出来的数据是不可以INSERT UPDATE DEL的
只能用ADOTABLE直接和表连接才可以INSERT UPDATE DEL那么视图和SQL出来的数据都不可以INSERT UPDATE DEL吗
如果可以,那什么情况下可以输入数据,什么时候不可以呢

解决方案 »

  1.   

    没太明白你的意思,你是说用TQuery吗?是可以的,不过有几个地方要注意。
    首先
       Query.RequestLive := True;
       然后执行你的SQL语句
     
       Query.Edit;{Query.Insert}   然后你就可以编辑数据了(修改、添加)。更新数据时调用  Query.post方法就可以了。   如果要删除,直接调用
       
       Query.Delete方法就可以了。
      

  2.   

    表和视图是可以执行更新操作的(insert,update等)
    但是对有多表关联的视图除外,这个你实践一下就知道。。
      

  3.   

    视图也可以作为一个普通的表,并且可以更新(INSERT、UPDATE、DELETE)里面的数据,但是有一些视图是不可以更新的,并且可更新的视图有许多限制:
    1.    若视图字段来自于表达是或者常数,则不能INSERT和UPDATE,但可以DELETE
    2.    若字段来自于库函数,则不允许更新
    3.    若视图定义中有GROUP BY,则不允许更新
    4.    若视图定义中有DISTINCT,则不允许更新
    5.    若视图定义中有嵌套查询,并且嵌套查询的FROM子句中涉及的表就是导出该视图的基本表,则不允许更新
    6.    若视图是两个以上的基本表导出,则不允许更新
    7.    在不允许更新的视图上导出的视图,则不允许更新
    目前给出的是基于DB2的。说得基本上差不多,其实对于这个问题,所有的关系数据库都差不多