SQL-Abfrage mittels VBScript

Luzie

Erfahrenes Mitglied
Torgath hat gesagt.:
Hab ich schon gemacht... *g* Deshabl sieht es nun so aus, wie es aussieht...

das glaube ich nicht, dass Du das gemacht hast. Du hast das Script von Falz in Deines angepasst. Beim Umschreiben von Objektnamen und Variablen passieren da Fehler.

Du fragst in der do-while-Schleif intcounter ab und nirgends wird der Zähler aktiviert.

Du setzt die vb-Konstanten auf die Werte 1,1 fest, wobei im Script eindeutig 3,3 steht.
Count würde ich nicht als Variablennamen einsetzen. das hat in vbscript (auch in anderen Scriptsprachen) eine eigene Bedeutung und das könnten Fehler geben..

Der Table-End-Tag liegt noch in der While-Schleife

Die Suche wird nicht über die Blätterlinks fortgesetzt.

und und und ...

Hier hättest Du Dir echt Arbeit sparen können, wenn Du das Script als Vorlage genommen hättest und Deine Abfrage dort angepasst hättest.

Ich habe mir lang überlegt, ob ich hier noch antworte. Es liegt oft an der Bequemlichkeit der User, sich das Scirpt nochmals zur Brust zu nehmen und es mit dem Original zu vergleichen. :rolleyes:
 

Torgath

Mitglied
Danke Luzie... hab versucht mir deine Kritik zu Herzen zu nehmen und deshalb auch möglichst alleine daran gearbeitet.
Mag zwar noch nicht 100% fehlerfrei sein, finde aber bisher keine Fehler mehr und bin deshalb ganz zufrieden.
Hier die mehr oder weniger fertige Version:

Code:
<%@ Language=VBScript %>
<%
dim vname ' ---
dim vfirstname ' ---
dim vplz ' ---
dim counter ' ---
counter = 1
dim intpagecounter
intpagecounter = 1
'dim counter1 ' ---
'dim c ' ---
dim pagesize ' --- Definieren der Seitengröße (Anzahl Datensätze pro Seite)
pagesize = 5
dim actpage
actpage = Request("PN")
vname = Request("fname")
if vname <> "" Then 
    strCond = "and  name = " & chr(34) & vname & chr(34) 
End if
vfirstname = Request("ffirstname")
if vfirstname <> "" Then 
    strCond = strCond & " and  firstname = " & chr(34) & vfirstname & chr(34) 
End if
vplz = Request("fplz")
if vplz <> "" Then 
    strCond = strCond & " and  plz = " & chr(34) & vplz & chr(34) 
End if
set ors = CreateObject("ADODB.RECORDSET") 'ors = objetrecordset
set Ocn = CreateObject("ADODB.Connection") 'ocn = objectconnect
ors.PageSize = pagesize
ors.CacheSize = pagesize
ocn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\adb.mdb;"'Verbindung zur Datenbank wird erstellt
ors.Open "Select * from adressbook where 1=1 " & strCond & " order by ID ",ocn,3,3
if actpage = "" or not isnumeric(actpage) or cint(actpage) > cint(ors.PageCount) then
actpage = 1
end if
dim datarec
datarec = ors.RecordCount
dim maxpage
maxpage = fix(datarec/pagesize)
if (maxpage*pagesize) < datarec then maxpage = maxpage + 1
if counter > maxpage then counter = maxpage 
%>
<%
sub arrowleft
if cint(actpage) <= 1 then
 response.Write Server.HTMLEncode("<<")
else
 Response.Write "<a href=""list.asp?PN=" & actpage - 1 & """>" & Server.HTMLEncode("<<") & "</a>"
end if
end sub

sub arrowright
if cint(actpage) < cint(maxpage) then
    Response.Write "<a href=""list.asp?PN=" & actpage + 1 & """>" & Server.HTMLEncode(">>") & "</a>"
else
    response.Write Server.HTMLEncode(">>")
end if
end sub

sub sitenumber
for intpagecounter = 1 to ors.PageCount
if cint(intpagecounter) = cint(actpage) then
 Response.Write intpagecounter & ""
else
 Response.Write "<a href=""list.asp?PN=" & intpagecounter & """> " & intpagecounter & " </a>"
end if
next
end sub
%>
<%
        if not ors.EOF then
        ors.AbsolutePage = actpage
        end if
        %>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<table border=1 align=center>
<tr>
<th bgcolor="#b9b9b9" colspan="12">Adressliste; Seite <%=actpage%>; Anzahl Datensätze: <%=datarec%>; <%=maxpage%></th>
</tr>
<tr>
    <td>ID</td>
    <td>Vorname</td>
    <td>Name</td>
    <td>Strasse</td>
    <td>Nummer</td>
    <td>PLZ</td>
    <td>Ort</td>
    <td>Telefon</td>
    <td>Fax</td>
    <td>E-Mail</td>
    <td>Editieren</td>
    <td>Löschen</td>
</tr>
<%
if ors.RecordCount > 0 then
    do while not ors.EOF and counter <= pagesize%>
        
        <tr>
            <td>
            <%=ors("id")%>
            </td>
            <td>
            <%=ors("firstname")%>
            </td>
            <td>
            <%=ors("name")%>
            </td>
            <td>
            <%=ors("street")%>
            </td>
            <td>
            <%=ors("number")%>
            </td>
            <td>
            <%=ors("plz")%>
            </td>
            <td>
            <%=ors("location")%>
            </td>
            <td>
            <%=ors("phone")%>
            </td>
            <td>
            <%=ors("fax")%>
            </td>
            <td>
            <%=ors("e-mail")%>
            </td>
            <td>
            <%response.Write "<a href=""edit.asp"">"%>Editieren<%response.Write "</a>"%>
            </td>
            <td>
            <%response.Write "<a href=""delete.asp"">"%>Löschen<%response.Write "</a>"%>
            </td>
        </tr>
        <%counter = counter + 1
        ors.MoveNext
    loop
else
    response.Redirect "default.asp"
end if
%>
</table>
<table align=center>
<tr>
<td>
<%
'response.Write "<a href=""list.asp"">" & Server.HTMLEncode("<<") & "</a>"
arrowleft
%>
</td>
<td>
<%
sitenumber
%>
</td>
<td>
<%
'response.Write "<a href=""list.asp"">" & Server.HTMLEncode(">>") & "</a>"
arrowright
%>
</td>
</tr>
</table>
<br>
<br>
<center><a href="default.asp">Start</a></center>
 

<%ors.Close
set ors = nothing
ocn.Close
set ocn = nothing
%>
</BODY>
</HTML>
 

Luzie

Erfahrenes Mitglied
Huhu

die Kritik ist nicht bös gemeint, aber ich habe manchmal das Gefühl, als wenn manche User einfach etwas zu bequem werden :D

Die Auslagerung der Blätterlinks in Prozeduren finde ich persönlich sehr gut. Ein kleiner Schritt in Richtung variable sein.
 

Torgath

Mitglied
Ich nahms auch nicht als böse auf! Ich nahms wie gesagt als Kritik auf und versuchte daraus das Beste zu machen! :)

Ich nehme die Sache mit den Blätterlinks übrigens als Lob auf! :)
 
Zuletzt bearbeitet: