Hier möchten wir ihnen typische ASP-Programmierfehler vorstellen, die sicherlich dem ein oder anderen ein Tipp sein mögen.
Manche dieser Hilfestellungen sind allerdings keine Fehler im engeren Sinne, sondern können z.B. Ihre Performance reduzieren oder die Wartbarkeit erschweren.
Datenbank Connection
Um die beste Performance zu erzielen und bei ggf. auftretenden Änderungen flexibel reagieren zu können, empfiehlt es sich ,eine Datenbank Connection in einer Include - Datei zu definieren (bspw. i_conn.asp) und diese in den entsprechenden Files einzubinden. Zudem macht es Sinn, die Connection innerhalb dieses Files bereits zu öffnen!
Recordsets I
Recordsets werden eingesetzt, um Daten aus einer Datenbank auszulesen und anzuzeigen. Aus Perfomancegründen ist es ratsam, diese direkt nach deren Verwendung zu schließen und auf "nothing" zu setzen!
Bsp:
rs.close
set rs = nothing
Recordsets II
Ein häufiger Fehler im Zusammenhang mit Recordsets ist eine falsche Do - While - Abfragen:
Sie sind allerdings sicher, wenn Sie folgende Struktur übernehmen:
DO WHILE NOT rs.EOF
....
rs.MOVENEXT
LOOP
Häufig wird das EOF (end of file - also das leere Recordset) nicht abgefangen, bei leeren Abfrageergebnissen tritt dann ein Fehler auf.
Recordsets III
Vermeiden Sie Recordset - Funktionen wie MoveFirst o.ä., wenn möglich, da dies zu Performanceverlust führen kann und diese zudem nicht immer verfügbar sind!
"Normale" DO - WHILE - SCHLEIFE
DO WHILE bedeutet so viel wie "mache xxx, so lange yyy erfüllt ist" und gerade die Nicht - Erfüllung von "yyy" führt häufig zu Endlosschleifen, sodass die ASP - Seite zu einem Time - Out gelangt. Der nachfolgende Code wird nicht mehr ausgeführt und eine Fehlerseite erscheint. In diesem Fall exisitiert keine Abbruchbedingung oder die Abbruchbedingung wird niemals erfüllt.
Bsp.
a = 1
DO WHILE a = 1
response.write "
" & a
LOOP
Dies würde eine Endlosschleife produzieren, da keine Abbruchbedingung besteht.
Aanders im folgenden Beispiel:
a = 1
DO WHILE a < 10
response.write "
& a
a = a + 1
LOOP
In diesem Beispiel wird a ausgegeben, so lang a kleiner als 10 ist. Die Zeile a = a + 1 sorgt hierbei dafür, dass sich a bei jedem Durchlauf erhöht, bis die Bedingung a kleiner 10 schließlich nicht mehr erfüllt ist und die Schleife verlassen wird.
