无限级目录数据库结构与方法一例

王朝asp·作者佚名  2006-01-09
宽屏版  字体:  |  |  | 超大  

Folder 表:

Folderid:目录ID,自动编号

FolderParentID:上级目录ID,Int

FolderName:目录名称,Varchar

FolderDescription:目录说明,Varchar

File 表:

FileID:文档ID,自动编号

FileFolderID:所属目录ID,Int

FileName:文档名称,Varchar

FileDescription:文档内容,Varchar或备注(ntext)

function GetAllChildID(id)

'取得FolderID为id的目录下所有子目录的FolderID,以半角逗号分开

dim arrID

arrID = id

Set rsdir = Conn.Execute("Select FolderID,FolderParentID from [Folder] where FolderParentID = " & id & "")

if rsdir.eof and rsdir.bof then

set rsdir = nothing

GetAllChildID = arrID

exit function

else

while not rsdir.eof

arrID = arrID & "," & GetAllChildID(rsdir("FolderID"))

rsdir.movenext

wend

end if

set rsdir = nothing

GetAllChildID = arrID

end function

'从表File中取得某个目录下所有文档的Sql

dim AllChildID

AllChildID = GetAllChildID(5) '取得FolderID为5下所有目录的FolderID

AllfileSql = "Select FileID,FileName from [File] where FileFolderID in ("& AllChildID &")"

?

function FolderPath(id)

'得到一个目录的完整路径

dim Pathstr,NewPathstr

Set rsdir = Conn.Execute("Select FolderID,FolderName,FolderParentID from [Folder] where FolderID = " & id)

if rsdir.bof and rsdir.eof then

Pathstr = ""

else

Pathstr = "<a href=""Folder.asp?FolderID=" & rsdir("FolderID") &""">" & rsdir("FolderName") & "</a> > " & Pathstr

if rsdir("FolderParentID") <> 0 then

Pathstr = FolderPath(rsdir("FolderParentID")) & Pathstr

end if

end if

NewPathstr = Pathstr

set rsdir = nothing

FolderPath = NewPathstr

end function

dim folderpathstr

folderpathstr = FolderPath(67)

response.write folderpathstr '输出 (技术文档 > Web开发 > ASP > Code Sample > 表单 > )

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有