/ 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
While NOT personer.EOF, Wend fejl
Fra : Kurt G


Dato : 20-09-06 22:27

Så er der igen fejl:

Ifølge mit hefte skulle dette være OK:

<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM personoplysninger",database

While NOT personer.EOF
Response.write personer.fields("navn")
Response.write("<br>")
personer.MoveNext
Wend
%>

Men det giver serverfejlen:
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den
anmodede handling kræver en aktuel post.

Derimod virker dette OK:
<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM personoplysninger",database

For i = 1 to 8
Response.write personer.fields("navn")
Response.write("<br>")
personer.MoveNext
Next
%>

Burde det første ikke virke?

Mvh Kurt



 
 
Jørn Andersen (21-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 21-09-06 03:41

On Wed, 20 Sep 2006 23:26:46 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:

>While NOT personer.EOF
> Response.write personer.fields("navn")
> Response.write("<br>")
> personer.MoveNext
>Wend
>%>
>
>Men det giver serverfejlen:
>Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den
>anmodede handling kræver en aktuel post.

Har du prøvet med:
Do While NOT personer.EOF
Response.write personer.fields("navn")
Response.write("<br>")
personer.MoveNext
Loop

I VBScript Helpfile skriver de under While...Wend Statement:
Note The Do...Loop statement provides a more structured and flexible
way to perform looping.

Hvad forskellen er mellem de to har jeg aldrig rigtigt fattet. Jeg
bruger altid Do While ... Loop.


Mvh. Jørn

--
Jørn Andersen,
Brønshøj

Kurt G (21-09-2006)
Kommentar
Fra : Kurt G


Dato : 21-09-06 08:04

"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:bcu3h29lk2hggj9p8mmaaevahbl2eebmms@4ax.com...
> Har du prøvet med:
> Do While NOT personer.EOF
> Response.write personer.fields("navn")
> Response.write("<br>")
> personer.MoveNext
> Loop
>
> I VBScript Helpfile skriver de under While...Wend Statement:
> Note The Do...Loop statement provides a more structured and flexible
> way to perform looping.
>
> Hvad forskellen er mellem de to har jeg aldrig rigtigt fattet. Jeg
> bruger altid Do While ... Loop.
>
> Mvh. Jørn
>

Jeg har nu prøvet dette:
<%
Set personer = Server.CreateObject ("ADODB.Recordset")
personer.Open "SELECT * FROM personoplysninger",database
Do While NOT personer.EOF
Response.write personer.fields("navn")
Response.write("<br>")
personer.MoveNext
Wend
%>

Det giver en ny fejlmelding:
'En sætning var ventet'
ud for linien med Wend.

Hvor finder jeg VBScript Helpfile?

/Kurt



Jørn Andersen (21-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 21-09-06 09:29

On Thu, 21 Sep 2006 09:03:55 +0200, "Kurt G" <kurt@guldbaek.net>
wrote:

>Jeg har nu prøvet dette:
><%
>Set personer = Server.CreateObject ("ADODB.Recordset")
>personer.Open "SELECT * FROM personoplysninger",database
>Do While NOT personer.EOF
> Response.write personer.fields("navn")
> Response.write("<br>")
> personer.MoveNext
>Wend
>%>
>
>Det giver en ny fejlmelding:
>'En sætning var ventet'
>ud for linien med Wend.

Det er fordi der skal stå "Loop" i stedet for "Wend".
Det hedder "Do ... Loop" og "While ... Wend"


Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (21-09-2006)
Kommentar
Fra : Kurt G


Dato : 21-09-06 10:00

"Jørn Andersen" <jorn@jorna.dk> wrote in message
news:o8j4h25fm6smiftgfti26hcb8msnl11t70@4ax.com...
> On Thu, 21 Sep 2006 09:03:55 +0200, "Kurt G" <kurt@guldbaek.net>
> wrote:
>
>>Jeg har nu prøvet dette:
>><%
>>Set personer = Server.CreateObject ("ADODB.Recordset")
>>personer.Open "SELECT * FROM personoplysninger",database
>>Do While NOT personer.EOF
>> Response.write personer.fields("navn")
>> Response.write("<br>")
>> personer.MoveNext
>>Wend
>>%>
>>
>>Det giver en ny fejlmelding:
>>'En sætning var ventet'
>>ud for linien med Wend.
>
> Det er fordi der skal stå "Loop" i stedet for "Wend".
> Det hedder "Do ... Loop" og "While ... Wend"
>
>
> Good luck!
>
> --
> Jørn Andersen,
> Brønshøj
Det burde jeg jo have set.
Efter at have indsat Loop i stedet får jeg så igen:
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den
anmodede handling kræver en aktuel post.

Jeg tror ikke at EOF er sand, for fjerner jeg linierne med Do og Loop,
udskrives den første post i tabellen.
BOF er jo nok et flag for, at pegepinden står ti start af filen og det
passer jo godt nok. Hvad pokker kan man gøre ved der?
Jeg har prøvet at indsætte 'personer.MoveNext' som første linie i loop-en,
derved peges der hverken på første eller sidste record, men det gør ingen
forskel.

Tak for linkene!

/Kurt



Jørn Andersen (21-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 21-09-06 11:48

On Thu, 21 Sep 2006 10:59:55 +0200, "Kurt G" <kurt@guldbaek.net>
wrote:

>Det burde jeg jo have set.

Ja, sådan er det jo altid bagefter

>Efter at have indsat Loop i stedet får jeg så igen:
>Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den
>anmodede handling kræver en aktuel post.

Hmmm, den kan jeg ikke gennemskue, men kan du ikke fortælle:
1) Hvilken database bruger du?
2) Hvilket fejl-*nummer* får du?

3) I din: For i = 1 to 8 osv. - hvad sker der, hvis du skriver:
For i = 0 to 8 - ?
(svjh er recordsets 0-nummererede)

Jeg prøvede at søge på aspfaq.com efter "either BOF" og fik følgende:
<url:
http://classicasp.aspfaq.com/general/why-do-i-get-bof-or-eof-errors.html>
- som bl.a. anbefaler, at man bruger:
If Not objRs.Eof Then
Do While Not objRs.EOF
Response.write objRs.("navn") & "<br>"
objRs.MoveNext
Loop
Else
Resposne.Write "Hovsa"
End If
- hvilket jeg lige havde glemt, at jeg også altid gør ...

Altså: Man checker først, om der er .Eof og giver en fejlmeddelelse,
hvis der er.

Prøv at checke linket, og se om du bliver klogere.

Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (21-09-2006)
Kommentar
Fra : Kurt G


Dato : 21-09-06 13:53

>>Efter at have indsat Loop i stedet får jeg så igen:
>>Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet.
>>Den
>>anmodede handling kræver en aktuel post.
>
> Hmmm, den kan jeg ikke gennemskue, men kan du ikke fortælle:
> 1) Hvilken database bruger du?
MS Access

> 2) Hvilket fejl-*nummer* får du?
Serveren svarer dette på IE:
'Tekniske oplysninger (for supportteknikere)
a.. Fejltype:
ADODB.Field (0x80020009)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet.
Den anmodede handling kræver en aktuel post.
/kap3/eksempel3.asp

b.. Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
2.0.50727; InfoPath.1)

c.. Side:
GET /kap3/eksempel3.asp

d.. Klokkeslæt:
21. september 2006, 14:29:00

> 3) I din: For i = 1 to 8 osv. - hvad sker der, hvis du skriver:
> For i = 0 to 8 - ?
> (svjh er recordsets 0-nummererede)

Så kommer der endnu en record i slutningen af listen.
Det skal der vel også gøre, den starter jo i toppen, og der køres gennem
listen med 'personer.MoveNext'.

>
> Jeg prøvede at søge på aspfaq.com efter "either BOF" og fik følgende:
> <url:
> http://classicasp.aspfaq.com/general/why-do-i-get-bof-or-eof-errors.html>
> - som bl.a. anbefaler, at man bruger:
> If Not objRs.Eof Then
> Do While Not objRs.EOF
> Response.write objRs.("navn") & "<br>"
> objRs.MoveNext
> Loop
> Else
> Resposne.Write "Hovsa"
> End If
> - hvilket jeg lige havde glemt, at jeg også altid gør ...

Det ar jeg lige prøvet, og efter en del fejlmeldinger (min egen skyld) ser
det ud til at virke.

Jeg forventer mange flere af den slags problemer; det undrer mig, at
eksemplerne fra heftet ikke umiddelbart virker, ikke engang de filer, som
jeg henter fra heftets hjemmeside!

Tak for hjælpen.
Kurt



Jørn Andersen (21-09-2006)
Kommentar
Fra : Jørn Andersen


Dato : 21-09-06 09:39

On Thu, 21 Sep 2006 09:03:55 +0200, "Kurt G" <kurt@guldbaek.net>
wrote:

>Hvor finder jeg VBScript Helpfile?

Microsoft Windows Script Downloads
<url:
http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp>

Et stykke nede på siden er der et link til:
Windows Script 5.6 Documentation
<url:
http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en>

Der kan du hente en .chm-fil, som er "komprimeret HTML", dvs., samme
format som andre Windows Help Files (til XP og nyere).
Smid den et sted på din harddisk og lav et link til fx din Start menu,
Quick Start menu eller dit skrivebord.

Den indeholder dokumentation til både VBScript, JScript m.m. og er
efter min mening uundværlig, når man som jeg kun laver ASP på
fritidsbasis og ikke kan huske alle koder - eller den korrekte
syntaks. Jeg har den næsten altid åben, når jeg skriver ASP


Good luck!

--
Jørn Andersen,
Brønshøj

Ukendt (23-09-2006)
Kommentar
Fra : Ukendt


Dato : 23-09-06 02:43


"Jørn Andersen" <jorn@jorna.dk> skrev
>>Hvor finder jeg VBScript Helpfile?
>
> Microsoft Windows Script Downloads
> <url:
> http://msdn.microsoft.com/library/default.asp?url=/downloads/list/webdev.asp>
>
> Et stykke nede på siden er der et link til:
> Windows Script 5.6 Documentation
> <url:
> http://www.microsoft.com/downloads/details.aspx?FamilyId=01592C48-207D-4BE1-8A76-1C4099D7BBB9&displaylang=en>
>
> Der kan du hente en .chm-fil, som er "komprimeret HTML", dvs., samme
> format som andre Windows Help Files (til XP og nyere).
> Smid den et sted på din harddisk og lav et link til fx din Start menu,
> Quick Start menu eller dit skrivebord.

Når jeg åbner filen vil den kun vise mapperne(Oversigten).
Hvis jeg åbner et emne, kommer der ingen side frem...
Hvad skyldes det...???
Bjarne



Ukendt (23-09-2006)
Kommentar
Fra : Ukendt


Dato : 23-09-06 02:55


"bsn" <bsnsnabelaoncabledotdk> skrev
> Når jeg åbner filen vil den kun vise mapperne(Oversigten).
> Hvis jeg åbner et emne, kommer der ingen side frem...
> Hvad skyldes det...???

Fandt ud af det - Indholdet var blokeret...
Bjarne



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste