Som gør at man kommer videre til en side der skal vise flere oplysninger om det emne man har valgt at klikke på. Men istedet for jeg denne fejl:
ADODB.Field (0x80020009) Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /aftenskolen/kursus_s_info.asp
Det er jo svært at sige lige nøjagtig hvor i din kode fejlen kommer Men fejlen betyder at du prøver at skrive noget ud fra et recordset som er tomt Det er altid en god ide at tjekke på om det er tomt først fx sådan her --- Sql = "SELECT * FROM Hold WHERE Holdnr=" & IDnr Set rs = Conn.Execute(Sql) If Not rs.Eof Then //rs er ikke tom og der kan skrives ud fra det Else //rs er tom og der kan ikke hentes noget ud End if
Men jeg kan ikke ud fra det du har skrevet sige om det er rs eller rs100 der skal tjekkes på Men humlen er at du et og andet sted har en sql sætning som ikke returnerer noget, fx hvis der ikke er noget Holdnr = IDnr , og du derefter spørger til rs("Holnr") Ja så får du en fejl fordi der ikke er noget rs("Holdnr") :o)
Den siger at der ikke er noget data, men det kan altså ikke passe. Jeg tester med et Holdnr der hedder 521-700, og når jeg kigger i databasen er den der altså!
På den side man kommer fra hedder recordsættet rs100 og på den side man kommer til hedder det bare rs. Kan det være et problem? Grunden til det hedder rs100 er at jeg har flere recordsets på den side man kommer fra.
er du sikker på det er sat Prøv skrive din sql ud, altså -- Sql = "SELECT * FROM Hold WHERE Holdnr=" & IDnr response.write Sql Set rs = Conn.Execute(Sql) -- Hvad type er Holdnr i øvrigt? for det kan da ikke være et tal hvis værdien er 521-700
Altså, fejlen er klar, den betyder at du prøver hive Holdnr ud af et tomt recordset! Du må få et linje nummer på din fejl medelelse så du kan se specifikt hvilken linje det er, så du kan se om det er rs100, eller rs eller rs"noget andet" ... Derfra må du kunne gå baglæns og se om du får dit recordset omdøbt ved en fejl eller får hentet noget du ikke regner med eller lign
Det er ikke så klart for mig. Er ret ny med det her :-) Men nu kom jeg da videre, røg fra fejl i linie 9 til fejl i linie 74 :-)
Her får jeg følgende fejl:
ADODB.Recordset (0x800A0CC1) Item cannot be found in the collection corresponding to the requested name or ordinal. /aftenskolen/kursus_s_info.asp, line 74
Linien ser således ud:
<td class="8pt" valign="top"><%=rs("Slutdag")%> den <%=rs("Slutdato")%></td>
Er det en problem hvis dataen den henter indeholder tegn som - og : ?
Man skal prøve at lære at læse fejlmeddelelserne :o) Så kommer det til en lige pludselig så bare rolig :o) Din fejl 13:54;04 siger at den forventede at stengen sluttede Hvis du ser på din streng 13:54:04 og min 13:55:01 så vil du se en forskel I asp er en streng omklamret af gåseøjne, et og (&) benyttes til at sætte strenge sammen med variable. Da din streng i forhold til min manglede et & efter IDnr så regnede asp med at strengen var slut efter variablen, men da asp fandt "'" så melder den fejl Det kan du jo tygge lidt på ;o) --- Den nye fejl siger at den ikke kan finde den aktuelle post i recordsættet i forhold til det navn man har bedt om Med andre ord kan den ikke finde "Slutdag" eller måske "Slutdato" i recordsettet "rs" Da den kun giver linje nummeret kan jeg ikke sige hvilken en som fejler Men fejlen betyder på dansk at "Slutdag"/"Slutdato" ikke findes i den tabel du har søgt i. Det kan så betyde at du måske har skrevet rs hvor du mener rs100 det er jeg så ikke sikker på Men den kan ikke finde enten slutdag eller slutdato i resultatet af din query
Det betyder ingenting om din streng indeholder "-" eller ":" Det eneste der kan betyde noget er hvis den indeholder html kode som "<b>" med mere Så vil det nemlig blive fortolket som html kode
ok for fejlen betyder altså at en Slutdag eller Slutdato ikke findes Men det er case sensitive Så er du sikker på det ikke hedder SlutDag eller SlutDato eller lign i tabellen?
Hmm det er altså det fejlen betyder, så med mindre du har talt linjerne forkert og det måske er et felt i linjen oven over så forstår jeg det ikke Du kan evt prøve at skrive alle dine felter ud lige neden under dit sql kald altså . Sql = "SELECT * FROM Hold WHERE Holdnr='" & IDnr & "'" Set rs = Conn.Execute(Sql) response.write "Slutdag:"&rs("Slutdag")&"<br>" response.write "Slutdag:"&rs("Slutdato")&"<br>" osv osv med alle dine felter
ja det er jo det, nogen gange ser man sig blind på en lille ting og her er så et lille svar :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.