So habe ich eine Liste von Elementen, die ich aus einer Datenbank ziehen, die auf eine sehr spezifische und komplizierte Weise sortiert werden müssen. Um dies zu bekämpfen, habe ich ein Objekt erstellt, das alle Informationen aus dem Datensatz enthält und diese nach Arrays organisiert, die ich in der gewünschten Reihenfolge ausdrucken kann. Das Problem ist, dass nach meinem "do while rs.eof", wo ich alle Objekte auf das setze, was ich brauche, sie fallen nicht in den Geltungsbereich, wenn die Schleife endet, auch wenn die Arrays selbst nicht. Ich habe überprüft, dass die Objekte in der Schleife gesetzt werden und sie funktionieren, aber sie hören einfach auf, zu dem Zeitpunkt zu sein, an dem ich zu Response.Write() komme. Ich schließe den Anfang der Schleife nicht ein, weil es mehr oder weniger die else-Anweisung ist, die mit dem geänderten Array kopiert wurde. Irgendwelche Tipps?Objekt bleibt außerhalb des Geltungsbereichs in Vbscript/asp classic
Else
ReDim Preserve f0(Ubound(f0)+1)
Set tab = new TabletHelper
Set f0(Ubound(f0)) = tab
item = rs("Item")
dest = rs("Destination")
time = rs("DateTime")
f0(Ubound(f0)).setItem(item)
f0(Ubound(f0)).setLocation(dest)
f0(Ubound(f0)).setDateTime(time)
End If
rs.movenext
loop
rs.Close
If Ubound(a045) > 0 then
for i = 1 to Ubound(a045)
Response.Write("<tr><td>"&a045(i).iNum()&"</td><td>"&a045(i).dest()&"</td><td>"&a045(i).dateT()&"</td></tr>")
next
Welches Objekt? Sie haben 'f0' * (was ein' Array' ist) * in der Schleife gesetzt, aber Sie versuchen, danach auf 'a045' * (was auch ein' Array' ist) * zuzugreifen ... was ist das? Im Idealfall sollten Sie eine [MCVE] bereitstellen, die dies nicht ist. – Lankymart
Der TabletHelper wäre das Objekt. Es ist ein Objekt, das 3 Datenmember (Strings) enthält und das wars. Ich habe mir Sorgen gemacht, zu viel Code aufzunehmen, der nicht wichtig war und viel zu viel weggelassen wurde. Darauf muss ich in Zukunft mehr Rücksicht nehmen. – Naiya55
Warum legen Sie das Tablet Helper-Objekt in der Recordset-Schleife fest? Ich würde es vor der Schleife setzen und (re) es innerhalb der Schleife benutzen. –