Avatar billede bjarkekr Nybegynder
02. juli 2003 - 13:33 Der er 19 kommentarer og
1 løsning

Store problemer med While løkke

Nogen der kan løse denne her??? Jeg skriver asp i JScript

Hvis jeg laver et alm. SQL kald:
SQL= "SELECT * FROM spillerdb WHERE id=1;";
res= Conn.Execute(SQL);

Virker det.. Jeg kan også udskrive til siden...

Hvis jeg tilgengæld laver en løkke:
while(!res.EOF){
  email=res("email").Value+"";
  Response.write(email+";<BR>");
res.MoveNext();
}
Så virker det ikke... Hvad fanden kan der være galt???
Avatar billede jpvj Nybegynder
02. juli 2003 - 13:37 #1
Nu er jeg ukyndig i JScript, men hvis jeg kigger på res.EOF, er EOF så en property eller en metode på res? Hvis det er en metode, burde det måske hedde res.EOF()
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 13:41 #2
Det gør det ikke... Sidder med Active Server Pages bogen fra teknisk forlag... :-)

Jeg ved at koden sådan set er skrevet korrekt. Det virker lokalt på min egen server, men det virker ikke på mit webhotel. Derfor er jeg interreseret i om andre har haft samme problem før, så jeg kan identificere fejlen (som jo må ligge på webhotellet)...
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 13:42 #3
Hvordan ville koden se ud i VBscript??? Det kan være jeg kan teste lidt med det..
Avatar billede paultodobom Nybegynder
02. juli 2003 - 13:44 #4
Hvilken fejl får du?
Avatar billede paultodobom Nybegynder
02. juli 2003 - 13:47 #5
vbkode:

SQL = "SELECT * FROM spillerdb WHERE id=1"
Set res = Conn.Execute(SQL)

While Not res.EOF
  email = res("email").Value & ""
  Response.Write email & ";<BR>"
  res.MoveNext()
Wend

Bemærk iøvrigt, at JScript er case-sensitiv. I din write i din Response skal være med stort W: Response.Write()
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 13:47 #6
Jeg får ingen fejl... Den er bare MEGET lang tid om at hente data ud fra databasen:
http://www.kolonist.dk/emails.asp
En side der bare henter nogle emails fra databasen... Lad den læse et par minutter, så kommer der noget frem.

Her er koden fra emails.asp
SQL= "SELECT * FROM spillerdb ORDER BY id;";
res= Conn.Execute(SQL);

while(!res.EOF){
email=res("email").Value+"";

if(email==null || email==""){

}else{
    if(email.indexOf("@")!=-1){
        Response.write(email+";<BR>");
    }
}

res.MoveNext();
}
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 13:50 #7
Response.write Skal ikke med stort w... :-) har også brugt det masser af gange.. Det er ikke et problem.
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 14:09 #8
Det samme sker når jeg bruger VB Script...
http://www.kolonist.dk/test3.asp

Kode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>VB</title>
</head>
<body>
<%
// Skaber DSNLess forbindelse til Databasen
    Conn = Server.CreateObject("ADODB.Connection")
    Conn.open = "DRIVER={MySQL};SERVER=sql01.starthotel.dk;DATABASE=*****;UID=******;PWD=******;"
 
SQL = "SELECT * FROM spillerdb ORDER BY id"
Set res = Conn.Execute(SQL)

While Not res.EOF
  email = res("email").Value & ""
  Response.Write email & ";<BR>"
  res.MoveNext()
Wend
%>
</body>
</html>
Avatar billede paultodobom Nybegynder
02. juli 2003 - 14:12 #9
http://www.kolonist.dk/emails.asp svarer ikke. Nu har den kørt i mindst 5-10 min. Hvis du udkommenterer while løkken og bare udskriver det første element i recordset'et hvad sker der så?
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 14:17 #10
Så udskriver den det fint..
http://www.kolonist.dk/test2.asp

kode:

<% @language="JavaScript" %>
<%
// Skaber DSNLess forbindelse til Databasen
Conn = Server.CreateObject("ADODB.Connection");
Conn.open = "DRIVER={MySQL};SERVER=sql01.starthotel.dk;DATABASE=web1788;UID=web1788;PWD=19494wp311;";
    Response.write("connection established!!<BR>");
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
    <title>test</title>
</head>
<body>
<%
SQL= "SELECT * FROM spillerdb WHERE id=1;";
res= Conn.Execute(SQL);
  Response.write("SQL string done!!<BR>");
  Response.write("SQL="+SQL+"<BR>");
  Response.write("email="+res("email").Value+"<BR>");
%>
</body>
</html>
Avatar billede paultodobom Nybegynder
02. juli 2003 - 14:34 #11
Prøv at udkommentere alt i løkken undtagen R.W og rem.MoveNext; altså således:

while(!res.EOF)
{
  Response.write(email + ";<BR>");
  res.MoveNext();
}
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 14:38 #12
http://www.kolonist.dk/emails.asp
Kode:
SQL= "SELECT * FROM spillerdb ORDER BY id;";
res= Conn.Execute(SQL);

while(!res.EOF)
{
  Response.write(res("email").Value+ "<BR>");
  res.MoveNext();
}
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 14:39 #13
stadig det samme...
Avatar billede paultodobom Nybegynder
02. juli 2003 - 14:54 #14
har du mulighed for at sende mig databasen?
Avatar billede paultodobom Nybegynder
02. juli 2003 - 14:54 #15
nåh nej sql server. jeg troede det var en access
Avatar billede paultodobom Nybegynder
02. juli 2003 - 15:04 #16
Prøv at indsætte koden:

var MAX = 9; //hvor max er højeste antal poster i db'en
for (i=0; i<MAX; i++)
{
  Response.Write(res("email").Value + "<BR>");
  res.MoveNext();
}
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 15:23 #17
Har prøvet... Også samme resultat..
Avatar billede paultodobom Nybegynder
02. juli 2003 - 15:30 #18
Har du prøvet at lave en side der kun åbner en forbindelse til databasen og ikke andet? Prøv for at checke om det er dér kæden hopper af.
Avatar billede bjarkekr Nybegynder
02. juli 2003 - 15:32 #19
Det kan den sagtens... www.kolonist.dk/test2.asp
Laver en connection og udskriver en lille tekst. Derefter laver den et SQL kald og udskriver det... Det kan den sagtens..
Avatar billede bjarkekr Nybegynder
01. maj 2006 - 09:53 #20
lukker
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester