快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

用排序串字段实现树状结构(存储过程)

加贴存储过程:
if exists (select * from sysobjects where id = object_id("lybsave"))
   drop proc lybsave
CREATE PROCEDURE [lybsave] @keyid int=0,@guestname varchar(20),@guestitle varchar(100),@guestcomm
text,@guestemail varchar(50)=\\'\\',@emailflag bit=0,@fromip varchar(15),@recimail varchar(50) OUTPUT
AS
DECLARE @ostr varchar(30),@rootid int,@lybid int,@ostrs varchar(30),@l tinyint,@tdt datetime,@putdate
varchar(10),@puttime varchar(5),@eflag bit
select @tdt=getdate()
select @putdate=convert(varchar(4),datepart(yy,@tdt))+\\'-\\'+left(\\'0\\'+convert(varchar(2),datepart(mm,@tdt)),2)
+\\'-\\'+left(\\'0\\'+convert(varchar(2),datepart(dd,@tdt)),2)
select @puttime=left(\\'0\\'+convert(varchar(2),datepart(hh,@tdt)),2)+\\':\\'+left(\\'0\\'+convert(varchar(2),datepart
(mi,@tdt)),2)
select @ostr=\\'\\',@rootid=0,@lybid=0,@l=0
if (@guestemail=\\'\\') select @emailflag=0
If @keyid=0  --发新贴
  goto newin
ELSE
begin
  SELECT @lybid=lybid,@rootid=rootid,@ostr=orderstr,@recimail=guestemail,@eflag=emailflag from guestbook
where lybid=@keyid
  IF @lybid=0  --回复贴没找到,当新贴发表
   goto newin
  ELSE
   BEGIN
    if (@eflag=0 and @guestemail<>\\'swuse@21cn.com abc\\') select @recimail=\\'\\'  --假如是版主回复且指定发邮件给提
问者,则不管发贴者是否要求回复,后面的abc相称于治理密码
    if (@rootid=0) select @rootid=@lybid
    select @ostrs=@ostr+\\'%\\',@lybid=0
    select top 1 @lybid=lybid,@ostrs=orderstr from guestbook where rootid=@rootid and (orderstr like
@ostrs) and lybid<>@keyid order by orderstr
    if (@lybid=0) select @ostr=@ostr+char(122)
    else
     begin
      select @l=len(@ostrs)
      select @ostr=left(@ostrs,@l-1)+char(ascii(substring(@ostrs,@l,1))-1)
     end
    goto newin
   end
end

newin:
    INSERT into guestbook
(guestname,guestitle,guestcomm,putdate,puttime,guestemail,emailflag,rootid,fromip,orderstr) values
(@guestname,@guestitle,@guestcomm,@putdate,@puttime,rtrim(@guestemail),@emailflag,@rootid,@fromip,@ostr)

删贴(剪枝)存储过程:

if exists (select * from sysobjects where id = object_id("lybdel"))
   drop proc lybdel
CREATE PROCEDURE [lybdel] @keyid int
AS
DECLARE @ostr varchar(30),@rootid int,@lybid int
select @ostr=\\'\\',@rootid=0,@lybid=0
SELECT @ostr=orderstr,@rootid=rootid,@lybid=lybid from guestbook where lybid=@keyid
if (@lybid<>0)
  BEGIN
    if (@rootid=0) select @rootid=@lybid
    SELECT @ostr=@ostr+\\'%\\'
    DELETE FROM guestbook where orderstr like @ostr and rootid=@rootid or lybid=@rootid
  END

返回类别: 教程
上一教程: flash投票程序 [ASP XML版]
下一教程: 改进性能和样式的24个ASP 技巧

您可以阅读与"用排序串字段实现树状结构(存储过程)"相关的教程:
· 用排序串字段实现树状结构(存储过程)
· 用排序串字段实现树状结构(库结构)
· 用排序串字段实现树状结构(例程??显示贴子内容)
· 用排序串字段实现树状结构(例程??显示树)
· 用排序串字段实现树状结构(例程??回复表单)
    微笑服务 优质保证 索取样品