ADO记录中为分类结构,即比如某一商品大类下有一小类,小类下又有一小类...依此类推
那么我现在如何用ADO进行操作,这些操作包括增删改,请给个代码,范例,谢谢

解决方案 »

  1.   

    首先,数据库结构要合理,关于数据库结构可以参考:
    http://expert.csdn.net/Expert/topic/2569/2569905.xml?temp=.2151453
      

  2.   

    另外,下面这篇文章我也建议你看看:
    http://www.microsoft.com/china/community/Columns/Lihonggen/1.mspx
      

  3.   

    http://www.sijiqing.com/vbgood/code/index.asp?action=read&id=242
    一个管理VB源码的数据库吐血推荐
    可以任意添加删除
      

  4.   

    CREATE procedure prcDelete(@vSourceID varchar(30),@Table varchar(20), @iOK int output)
    as
    declare @level int
    declare @SQLString nvarchar(500)
    set @SQLString=N'select vID from '+@Table +' where vID = '''+ltrim(rtrim(@vSourceID))+''''
    exec(@SQLString)
    if @@rowcount > 0
    begin
    set @level=0
    select @vSourceID as vID,@level as level into #t
    set @SQLString=N'insert #t select vID,@level from '+@Table +' where vParentID in (select vID from #t where level=@level-1) '
    while @@rowcount > 0
    begin
    set @level=@level+1
             exec sp_executesql @SQLString,N'@level int',@level
    end
    set @SQLString=N'delete from '+@Table +' where vID in (select vID from #t) '
    begin tran
    exec sp_executesql @SQLString
    if @@error<>0 goto Err
    commit
    select @iOK=0
    return
    Err:
       rollback
       select @iOK=1
    end
    else
    begin
    select @iOK=1
    end
      

  5.   

    或者
    CREATE procedure prcDelete(@vSourceID varchar(30),@Table varchar(20), @iOK int output)
    as
    declare @iDepth int
    declare @SQLString nvarchar(500)
    set @SQLString=N'select vID from '+@Table +' where vID = '''+ltrim(rtrim(@vSourceID))+''''
    exec(@SQLString)
    if @@rowcount > 0
    begin
        set @SQLString=N'select @iDepth=iDepth from '+@table+ ' where vID = '''+ltrim(rtrim(@vSourceID))+''''
    exec sp_executesql @SQLString,N'@iDepth int output',@iDepth output 
    select @vSourceID as vID,@iDepth as iDepth into #t
    set @SQLString=N'insert #t select vID,iDepth from '+@Table +' where vParentID in (select vID from #t where iDepth=@iDepth-1)'
    while @@rowcount > 0
    begin 
    set @iDepth=@iDepth+1
             exec sp_executesql @SQLString,N'@iDepth int',@iDepth
    end
    set @SQLString=N'delete from '+@Table +' where vID in (select vID from #t) '
    begin tran
    exec sp_executesql @SQLString
    if @@error<>0 goto Err
    commit
    select @iOK=0
    return
    Err:
       rollback
       select @iOK=1
    end
    else
    begin
    select @iOK=1
    end