--或者在查询分析器中执行
exec sp_refreshview '你的视图名'

解决方案 »

  1.   

    我没有用插入语句,我是用recordset取得源表的结构,然后就把窗体上的值根据字段名,自动赋给recordset,再然后通过recordset的update更新数据库。主表中我是用上面的方法做的,明细表我就是直接插入语句。用下面的存储过程:
    create procedure pi_oc_order
    @ordeID_vch varchar(50),
    @mateID_vch varchar(50),
    @amount_num numeric(20,3),
    @getAmnt_num numeric(20,3),
    @sumItm_num numeric(20,3),
    @Re_vch varchar(200)
    as
    set nocount on
    insert into oc_orderitm values(@ordeID_vch,@mateID_vch,@amount_num,@getAmnt_num,@sumItm_num,@Re_vch)
    set nocount off
    go
      

  2.   

    现在发现都没有错,而是在recordset从视图中取数据时,没有取到数据,绑定到mshflexgrid时,recordset还没有打开,但是我已经执行了select语句。下面时语句:
    strSql = ""
            strSql = "execute ps_get_queryed_itm '" & mVleStr.DLStr(lvwQuery.SelectedItem) & "'"
            If Rst.State = adStateOpen Then Rst.Close
            Rst.Open strSql, gCnn, adOpenKeyset, adLockOptimistic, adCmdText
      

  3.   

    存储过程:
    ps_get_queryed_itm 的代码
      

  4.   

    谢谢大家了。create procedure ps_get_queryed_itm
    @id varchar(50)=''
    as
    declare @view as varchar(50)
    declare @sql  as nvarchar(4000)
    select @view=tbl_name_vch from sy_tbl_set where sign_vch=left(@id,2)
    set @view='vw_'+@view+'itm'
    set @sql='select * from '+@view+' where 单号='''+@id+''''
    exec sp_executesql @sqlgo
      

  5.   

    create procedure ps_get_queryed_itm
    @id varchar(50)=''
    as
    declare @view as varchar(50)
    declare @sql  as nvarchar(4000)
    select @view=tbl_name_vch from sy_tbl_set where sign_vch=left(@id,2)
    set @view=N'vw_'+@view+'itm'
    set @sql=N'select * from '+@view+' where rtrim(单号)=N'''+@id+''''
    exec sp_executesql @sqlgo
    ??????