Когда я вызываю эту функцию, все работает, пока я не пытаюсь рекурсивно вызывать функцию снова. Другими словами, если я раскомментировал строку:Что не так с этой рекурсивной функцией ASP?
GetChilds rsData("AcctID"), intLevel + 1
Тогда функция ломается.
<%
Function GetChilds(ParentID, intLevel)
Set rsData= Server.CreateObject("ADODB.Recordset")
sSQL = "SELECT AcctID, ParentID FROM Accounts WHERE ParentID='" & ParentID &"'"
rsData.Open sSQL, conDB, adOpenKeyset, adLockOptimistic
If IsRSEmpty(rsData) Then
Response.Write("Empty")
Else
Do Until rsData.EOF
Response.Write rsData("AcctID") & "<br />"
'GetChilds rsData("AcctID"), intLevel + 1
rsData.MoveNext
Loop
End If
rsData.close: set rsData = nothing
End Function
Call GetChilds(1,0)
%>
* Отредактировано после обратной
Спасибо всем,
Другие, чем обычная ошибка:
Error Type: (0x80020009) Exception occurred.
Я не был уверен, что вызывает проблемы. Я понимаю, что это, вероятно, связано с несколькими факторами.
- Не закрывать соединение и пытаться повторно открыть такое же соединение.
- Множество параллельных подключений к базе данных.
Содержание базы данных выглядит следующим образом:
AcctID | ParentID
1 Null
2 1
3 1
4 2
5 2
6 3
7 4
Идея заключается в том, чтобы я мог иметь мастер-счет с счетам ребенка, и те, по уходу за детьми Счета могут иметь дочерние счета своих собственных. В конце концов будет еще одна главная учетная запись с ParentID Null, у которой будут собственные дети. Имея это в виду, я собираюсь сделать это правильно?
Спасибо за быстрые ответы.
Спасибо всем,
Другие, чем обычная ошибка:
Error Type: (0x80020009) Exception occurred.
Я не был уверен, что вызывает проблемы. Я понимаю, что это, вероятно, связано с несколькими факторами.
- Не закрывать соединение и пытаться повторно открыть такое же соединение.
- Множество параллельных подключений к базе данных.
Содержание базы данных выглядит следующим образом:
AcctID | ParentID
1 Null
2 1
3 1
4 2
5 2
6 3
7 4
Идея заключается в том, чтобы я мог иметь мастер-счет с счетам ребенка, и те, по уходу за детьми Счета могут иметь дочерние счета своих собственных. В конце концов будет еще одна главная учетная запись с ParentID Null, у которой будут собственные дети. Имея это в виду, я собираюсь сделать это правильно?
Спасибо за быстрые ответы.
Вы получили сообщение об ошибке? – 2008-11-18 19:48:28
Функция застревает или возвращает ошибку? Вы проверили данные для циклов? – 2008-11-18 19:57:04