我希望有人可以帮助我想出这个,因为我被卡住了。
我们正在慢慢地将ASP Classic网站迁移到.NET Web应用程序。我偶然发现了以下功能。该函数将返回由hml a-tags组成的字符串数组。
Private Function getFullPathLinks(lNodeId, sPath, sDocTemplate)
Dim sql, recordSet, rsTmp
Dim arrPath, sResult
Dim lDocId
lDocId = getDocumentId(lNodeId)
sql = "SELECT parent_id, label FROM wt_node WHERE (node_id = " & lNodeId & ")"
Set recordSet = execSqlCache(oConn,sql,Array(),Array("wt_node"))
If Not (recordSet.Bof And recordSet.Eof) Then
If sDocTemplate <> "" Then
sPath = sPath & "|" & "<a href='" & sDocTemplate & "?nodeid=" & lNodeId & "&documentid=" & lDocId & "'>" & recordSet("label") & "</a>"
Else
sPath = sPath & "|" & recordSet("label")
End If
getFullPathLinks recordSet("parent_id"), sPath
End If
recordSet.Close
Set recordSet = Nothing
arrPath = arrReverse(Split(sPath,"|"))
sResult = Join(arrPath,sPathDelimiter)
If Right(sResult,Len(sPathDelimiter)) = sPathDelimiter Then sResult = Left(sResult,Len(sResult)-Len(sPathDelimiter))
getFullPathLinks = sResult
End Function
该函数最后调用自身,这在我的.NET实现中无法正常工作,我们使用DataReader与SQL数据库进行通信。
我可以使用与上面相同的结构,而是使用除DataReader之外的其他东西来实现这一目标吗?
答案 0 :(得分:1)
我不确定您使用的SQL Server版本,但是您是否看过SQL中的递归查询?它旨在检索单个db调用中的分层数据。看看:
http://msdn.microsoft.com/en-us/library/ms186243(v=sql.105).aspx