/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Trundholm - storskrald.asp?
Fra : Tim Bregning Karlsen


Dato : 11-02-04 14:38

www.trundholm.dk / Teknik, Miljø & Ejendom / Affald / Storskrald_søg er
der en formular hvor man kan indtaste et vejnavn, f.eks. Oddenvej eller
Lyngvej etc. og få svar på hvilke datoer der hentes Storskrald i kommunen.

Formularen sender en request der hedder "vej" som skal matche databasens
"adresse".

Bag formularen ligger en storskrald.asp som henter de records der matcher i
en Access database. Data kommer fra en forespørgsel der hedder
qrystorskrald.

Databasen er OK
Connection er OK, men hvis der er flere records med samme vejnavn var det
meningen at de skulle loope indtil alle var listet under hinanden. Det er
kun den sidste record der bliver listet.

Navne der burde returnere flere linier er f.eks.

Oddenvej
Lyngvej
Ellingevej
Egebjergvej


Hvorfor looper den ikke? Hvad kan fejlen være?

Her er hele asp-filen:

--------------------------------------------

<%@ Language=JScript %>

<!--#INCLUDE VIRTUAL="nethotel-include/webOffice/stdsrc/wop/stdIni.asp" -->

<!--#INCLUDE FILE="kundeIni.asp" -->

<HTML>

<HEAD>

<TITLE> Storskrald </TITLE>

<META NAME="Generator" CONTENT="Microsoft FrontPage 4.0">

<META NAME="Author" CONTENT="Trine Pedersen">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

</HEAD>

<BODY BGCOLOR="#FFFFFF">

<%=infoTopHtmlTekst%>

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>

Const adLockPessimistic = 2

Const adOpenStatic = 3

Const adCmdTable = &H0002

Dim objConn

Dim objRec


Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "DSN=www_odsherredportal_dk"

Set objRec = Server.CreateObject("ADODB.Recordset")

objRec.Open "qrystorskrald", objConn, adOpenStatic, adLockPessimistic,
adCmdTable

objRec.Find "adresse='" & request("vej") & "'"


If objRec.EOF Then

Response.write "<br>Vejen blev ikke fundet, kontroller at du har stavet
navnet præcist..."

Else

Response.Write "<br>Der bliver hentet storskrald på " & objRec("adresse") &
"&nbsp;" & objRec("husnummer")

Response.Write "<br> den: " & objRec("dato1") & ", " & objRec("dato2") & "
og den: " & objRec("dato3") & " - 2004."

objRec.MoveNext

strAdresse1 = LCase (objRec("adresse"))

strAdresse2 = LCase (request("vej"))

Do While strAdresse1=strAdresse2

Response.Write "<br>test" & objRec("adresse") & "&nbsp;" &
objRec("husnummer")

Response.Write "<br> den: " & objRec("dato1") & ", " & objRec("dato2") & "
og den: " & objRec("dato3") & " - 2004."

objRec.MoveNext

strAdresse1 = LCase (objRec("adresse"))

strAdresse2 = LCase (request("vej"))

Loop

End If

objRec.Close

objConn.Close

Set objRec = Nothing

Set objConn = Nothing

</SCRIPT>

<br><br>

<button OnClick="javascript:history.go(-1)">Tilbage</button>

</BODY>

</HTML>

----------------------------------------------------------------------------
---------------

Hilsen fra

Tim



 
 
Jens Gyldenkærne Cla~ (11-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-02-04 14:54

Tim Bregning Karlsen skrev:

> Her er hele asp-filen:

Hm - det havde været bedre hvis du kun havde sendt udvalgte linjer
- fx dem der håndterer dataudskrivningen.


> objRec.Open "qrystorskrald", objConn, adOpenStatic,
> adLockPessimistic, adCmdTable
>
> objRec.Find "adresse='" & request("vej") & "'"


Helt generelt er det en dårlig ide at hente alle poster fra
databasen og derefter søge i dem med Find-metoden. Det er langt
mere effektivt at bruge databasen som søgeværktøj:

Dim strSQL
strSQL = "SELECT * FROM qrystorskrald WHERE adresse = '" & _
   request.form("vej") & "'"




> objRec.MoveNext

Jeg ved ikke hvordan MoveNext opfører sig når du har brugt find -
men hvis du skifter til en SELECT-forespørgsel skulle det gerne
komme til at virke.


> Do While strAdresse1=strAdresse2

Du glemmer at tjekke for objRec.EOF her. Tilsyneladende fungerer
movenext ikke som forventet med Find, men hvis den fungerede, ville
du få problemer med EOF på et tidspunkt.


> strAdresse2 = LCase (request("vej"))

Der er ingen grund til at requeste vej-oplysningen mere end én
gang. Den ændrer sig jo ikke i din løkke. Gem oplysningen i en
variabel og brug den når det er nødvendigt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Tim Bregning Karlsen (11-02-2004)
Kommentar
Fra : Tim Bregning Karlsen


Dato : 11-02-04 15:36

Tak for hurtigt svar!

Jeg vil prøve det du foreslår, men jeg må nok erkende at det er lidt for
"langhåret" for mig. Jeg har "arvet" asp-filen efter en fratrådt kollega -
men foreløbig tak for vejledningen.

Tim



Jens Gyldenkærne Cla~ (11-02-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 11-02-04 15:51

Tim Bregning Karlsen skrev:

> Tak for hurtigt svar!

Velbekomme.


> Jeg vil prøve det du foreslår, men jeg må nok erkende at det
> er lidt for "langhåret" for mig.

Du kan prøve dig frem stille og roligt - men overvej at kigge på fx
html.dk's asp-tutorial, hvor mange grundlæggende ting er forklaret.


NB: Læs gerne min signatur.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Tim Bregning Karlsen (12-02-2004)
Kommentar
Fra : Tim Bregning Karlsen


Dato : 12-02-04 17:12

Tak for de gode råd - jeg har fundet ud af hvad fejlen var.

Mine data kom fra en forespørgsel og ikke en tabel. Derfor står adressen kun
1 gang.

Nu har jeg i første omgang kopieret hele outputtet fra forespøgslen til en
tabel - så virker det fint!

Tim



Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste