Avatar billede aero Nybegynder
28. december 2005 - 13:21 Der er 12 kommentarer og
1 løsning

vil kun vise resultat for første record går ikke videre

Hej jeg har en side som henter noget data fra en anden side..
http://www.billundfodbold.dk/bif/team&results/get_main_program_to_db_test.asp?page=40-33
eller
http://www.billundfodbold.dk/bif/team&results/get_main_program_to_db_test.asp?page=21-16

De link henter dataen som den skal og ser jo godt ud...
Men når jeg så vil gemme dataen i en database og sletter alle response.write linjer som laver oversigten til de 2 link så vil den kun gemme/hente fra første record i min db:

Oldboys A
243808 14-04-04 19:00 Vejle B Vejle Kammeraterne Nordre Stadion, Vejle 1-0
243811 21-04-04 19:00 Haderslev FK 2 Vejle B Haderslev Stadion 2-4
243818 28-04-04 19:00 Vejle B Kolding IF Nordre Stadion, Vejle 5-2
243823 05-05-04 19:00 Vejle FC Vejle B Vestre Stadion 3-3
243828 12-05-04  Vejle B Oversidder Nordre Stadion, Vejle
243832 26-05-04 19:00 AGF, Aarhus Vejle B AGF's anlæg 5-0
243838 02-06-04 19:00 Vejle B Søvind GIF Nordre Stadion, Vejle 3-2
243840 09-06-04 19:00 Haderslev FK 1 Vejle B Haderslev Stadion 4-4
243848 16-06-04 19:00 Vejle B Vinding SF Nordre Stadion, Vejle UHT
243858 11-08-04 19:00 Vejle B Haderslev FK 2 Nordre Stadion, Vejle UHT
243861 18-08-04 19:00 Kolding IF Vejle B Kolding Stadion 2-3
243868 25-08-04 19:00 Vejle B Vejle FC Nordre Stadion, Vejle UHT
243874 01-09-04  Oversidder Vejle B
243850 01-09-04 19:00 Vejle Kammeraterne Vejle B Søndre Stadion 2-10
243878 08-09-04 18:30 Vejle B AGF, Aarhus Nordre Stadion, Vejle 1-4
243881 15-09-04 19:00 Søvind GIF Vejle B Søvind Stadion 1-2
243888 22-09-04 18:00 Vejle B Haderslev FK 1 Nordre Stadion, Vejle 1-5
243893 29-09-04 18:00 Vinding SF Vejle B Vinding Stadion 4-6


hvorfor tager den ikke den ikke 2. record og køre den gennem så jeg også får gemt data fra Olboys B...den virker jo når jeg laver en alm. response.write men ikke når jeg på en anden side sletter response.write og sætte strSQL linjer ind.

Håber nogle kan hjælpe..
Min kode er
<% Response.Buffer = True %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
Dim page
page = Request.QueryString("page")
Response.Buffer = True
Session.LCID = 1030
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<!--#include file="../include/dsn.asp"-->
<%
Call OpenDB

strSQL = "SELECT [TID], [Name], [Year], [Link2] FROM List"
if request.querystring("page") = "40-33" then
strSQL = strSQL & " WHERE [Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Year] NOT LIKE '10'"
strSQL = strSQL & " AND [Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Year] NOT LIKE '4'"
elseif request.querystring("page") = "21-16" then
strSQL = strSQL & " WHERE [Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Year] NOT LIKE '10'"
strSQL = strSQL & " AND [Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Year] NOT LIKE '4'"
elseif request.querystring("page") = "14-10" then
strSQL = strSQL & " WHERE [Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Year] NOT LIKE '4'"
elseif request.querystring("page") = "8-4" then
strSQL = strSQL & " WHERE [Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Year] NOT LIKE '10'"
End If
strSQL = strSQL & " ORDER BY [Team ID] ASC;"
Set objRS = objConn.Execute(strSQL)

  Do While Not objRS.EOF
 
  strLine = objRS("Link2")
  strTN = objRS("Name")
 
  Set re = New RegExp
  re.Global = True
  re.Pattern = "teamid=(\d+).*poolid=(\d+)"

  Set matches = re.Execute(strLine)

  For Each m In matches
    strtid = m.SubMatches(0)
    strpid = m.SubMatches(1)
  Next
     
  Dim strResult
  strUrl1 = "http://www.dbu.dk/sr/programTeam.aspx?teamid="
  strUrl2 = "&poolid="
  strUrl3 = "&year=2004"
   
  Set HttpObj = Server.CreateObject("AspHTTP.Conn")
  HttpObj.Url = trim("  "&strUrl1&strtid&strUrl2&strpid&strUrl3&"  ")
  HttpObj.FollowRedirects = True
  HttpObj.RequestMethod = "GET"
  HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
  strResult = HttpObj.GetURL
 
  Dim Read, ReadEnd, Matchnumber, Matchdate, Hometeam, Awayteam, Playground, Score

    Read = instr(1,strResult,"PROGRAM START")
    Read = instr(Read,strResult,"<table")
  Read = instr(Read,strResult,"</table")
    Read = instr(Read,strResult,"<table")
 
    while Read > 0
    Score = "&nbsp;"

      Read = instr(Read,strResult,"linkUl") + 8
      ReadEnd = instr(Read,strResult,"<")
      Matchnumber = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
    ReadEnd = instr(Read,strResult,"<")
    Matchdate = mid(strResult,Read,ReadEnd-Read)
   
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
    ReadEnd = instr(Read,strResult,"<")
    Hometeam = mid(strResult,Read,ReadEnd-Read)
   
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
    ReadEnd = instr(Read,strResult,"<")
    Awayteam = mid(strResult,Read,ReadEnd-Read)
   
    Read = instr(Read,strResult,"<span")
      Read = instr(Read,strResult,">") + 1
    ReadEnd = instr(Read,strResult,"<")
    Playground = mid(strResult,Read,ReadEnd-Read)
   
    Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
    ReadEnd = instr(Read,strResult,"<")
    Score = mid(strResult,Read,ReadEnd-Read)
   
    Playground = Replace(Playground, "'", "\")
   
    strSQL = "SELECT count(*) AS antal FROM Program"
    strSQL = strSQL & " WHERE [Number] = '" & Matchnumber & "'"
    Set objRS = objConn.Execute(strSQL)

      If objRS("antal") = 0 Then
      strSQL = "INSERT INTO Program (Number, Date, HTeam, ATeam, Ground, TScore, Name) VALUES ('" & Matchnumber & "', '" & Matchdate & "', '" & Hometeam & "', '" &Awayteam& "', '" & Playground & "', '" & Score & "', '" & strTN & "')"
      Else
      strSQL = "UPDATE Program SET TScore = '" & Score & "'"
    strSQL = strSQL & " WHERE [Number] = '" & Matchnumber & "'"
      End If
      objConn.Execute(strSQL)
     
      Read = instr(Read,strResult,"<table")
  wend
  objRS.MoveNext
  Loop 
  Set HttpObj = nothing
Call CloseDB
Response.Write("Data'en er nu gemt i databasen")
%>
</body>
</html>
Avatar billede erikjacobsen Ekspert
30. december 2005 - 20:05 #1
Du skal kalde din anden anvendelse af objRS for noget andet.
Avatar billede aero Nybegynder
30. december 2005 - 20:47 #2
tænker du på
If objRS("antal") = 0 Then
og ned !?
Avatar billede erikjacobsen Ekspert
30. december 2005 - 20:51 #3
Nej, anden gang du går i gang med objRS:

    strSQL = "SELECT count(*) AS antal FROM Program"
    strSQL = strSQL & " WHERE [Number] = '" & Matchnumber & "'"
    Set objRS = objConn.Execute(strSQL)
Avatar billede aero Nybegynder
30. december 2005 - 20:58 #4
okay, så ændre jeg objRS til objRSprogram i

  strSQL = "SELECT count(*) AS antal FROM Program"
    strSQL = strSQL & " WHERE [Number] = '" & Matchnumber & "'"
    Set objRS = objConn.Execute(strSQL)

      If objRS("antal") = 0 Then
      strSQL = "INSERT INTO Program (Number, Date, HTeam, ATeam, Ground, TScore, Name) VALUES ('" & Matchnumber & "', '" & Matchdate & "', '" & Hometeam & "', '" &Awayteam& "', '" & Playground & "', '" & Score & "', '" & strTN & "')"
      Else
      strSQL = "UPDATE Program SET TScore = '" & Score & "'"
    strSQL = strSQL & " WHERE [Number] = '" & Matchnumber & "'"
      End If
      objConn.Execute(strSQL)

Men så kommer dne med en fejl

ADODB.Recordset error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/bif/team&results/get_main_program.asp, line 169
det er objRS.MoveNext ved
wend
  objRS.MoveNext
  Loop 

skal den hede
wend
  objRSprogram.MoveNext
  Loop 

eller !?
Avatar billede erikjacobsen Ekspert
30. december 2005 - 21:07 #5
Hvis det er den første objRS du laver om skal den .movenext du har "nederst" også bruge det nye navn.
Men ellers vis din kode, så vi ikke skal gætte.
Avatar billede aero Nybegynder
30. december 2005 - 21:11 #6
Altså min første objRS henter jo "link2" de steder hvor year er mellem 40 og 33 og det er den ved 2 recorder..
De 2 recorder bliver så kørt gennem den der SubMatches hvor der trækkes 2 tal ud af "link2" de 2 tal sættes så ind i min ASPHTTP kode og bliver kørt og der hender den så en liste til linket i dette tilfælde "oldboys A" og når den har hente alle dataer om dette hold så kan den så køre næste rocorde igennem ASPHTTP og gemme dataen i min database og det er så "Oldboys B" som den ikke kommer til.
Avatar billede erikjacobsen Ekspert
30. december 2005 - 21:28 #7
Det er vel også det jeg kan læse mig til. Men har du forstået hvad jeg foreslår? Og hvad har du lavet det om til?
Avatar billede aero Nybegynder
30. december 2005 - 21:31 #8
Okay du/i får lige en kopi af min kode som den ser ud nu og ændrede det objRS.MoveNext til objRSProgram.MoveNext og den skriver alt dataen fra første record i min database som den skal men kommer ikke videre til record 2 som den køre ud i en timeout selvom min kode som ikke har en sql sætning men en response.write kode køre det uden problemmer.
http://www.billundfodbold.dk/bif/team&results/get_main_program_to_db_test.asp?page=40-33

og den kode som køre men sql er her.
http://www.billundfodbold.dk/bif/team&results/get_main_program_to_db.asp?page=40-33

min kode er nu....
<% Response.Buffer = True %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
Dim page
page = Request.QueryString("page")
Response.Buffer = True
Session.LCID = 1030
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
</head>
<body>
<!--#include file="../include/dsn.asp"-->
<%
Call OpenDB

strSQL = "SELECT [Team ID], [Team_Name], [Team_Year], [Team_Link2] FROM List"
if request.querystring("page") = "40-33" then
strSQL = strSQL & " WHERE [Team_Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Team_Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '10'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '4'"
elseif request.querystring("page") = "21-16" then
strSQL = strSQL & " WHERE [Team_Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Team_Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '10'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '4'"
elseif request.querystring("page") = "14-10" then
strSQL = strSQL & " WHERE [Team_Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Team_Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '8'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '5'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '4'"
elseif request.querystring("page") = "8-4" then
strSQL = strSQL & " WHERE [Team_Link2] NOT LIKE '%program%'"
strSQL = strSQL & " AND [Team_Link2] NOT LIKE '%position%'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '40'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '33'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '21'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '18'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '16'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '14'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '12'"
strSQL = strSQL & " AND [Team_Year] NOT LIKE '10'"
End If
strSQL = strSQL & " ORDER BY [Team ID] ASC;"
Set objRS = objConn.Execute(strSQL)

  Do While Not objRS.EOF
 
  strLine = objRS("Team_Link2")
  strTN = objRS("Team_Name")
 
  Set re = New RegExp
  re.Global = True
  re.Pattern = "teamid=(\d+).*poolid=(\d+)"

  Set matches = re.Execute(strLine)

  For Each m In matches
    strtid = m.SubMatches(0)
    strpid = m.SubMatches(1)
  Next
     
  Dim strResult
  strUrl1 = "http://www.dbu.dk/sr/programTeam.aspx?teamid="
  strUrl2 = "&poolid="
  strUrl3 = "&year=2004"
   
  Set HttpObj = Server.CreateObject("AspHTTP.Conn")
  HttpObj.Url = trim("  "&strUrl1&strtid&strUrl2&strpid&strUrl3&"  ")
  HttpObj.FollowRedirects = True
  HttpObj.RequestMethod = "GET"
  HttpObj.UserAgent = "Mozilla/2.0 (compatible; MSIE 3.0B; Windows NT)"
  strResult = HttpObj.GetURL
 
  Dim Read, ReadEnd, Matchnumber, Matchdate, Hometeam, Awayteam, Playground, Score

    Read = instr(1,strResult,"PROGRAM START")
    Read = instr(Read,strResult,"<table")
    Read = instr(Read,strResult,"</table")
    Read = instr(Read,strResult,"<table")
   
    while Read > 0
      Score = "&nbsp;"

      Read = instr(Read,strResult,"linkUl") + 8
      ReadEnd = instr(Read,strResult,"<")
      Matchnumber = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
      ReadEnd = instr(Read,strResult,"<")
      Matchdate = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
      ReadEnd = instr(Read,strResult,"<")
      Hometeam = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">")
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
      ReadEnd = instr(Read,strResult,"<")
      Awayteam = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<span")
      Read = instr(Read,strResult,">") + 1
      ReadEnd = instr(Read,strResult,"<")
      Playground = mid(strResult,Read,ReadEnd-Read)
     
      Read = instr(Read,strResult,"<td")
      Read = instr(Read,strResult,">") + 1
      ReadEnd = instr(Read,strResult,"<")
      Score = mid(strResult,Read,ReadEnd-Read)
     
      Playground = Replace(Playground, "'", "\")
     
      strSQL = "SELECT count(*) AS antal FROM Main_Team_Program"
      strSQL = strSQL & " WHERE [Match_Number] = '" & Matchnumber & "'"
      Set objRSProgram = objConn.Execute(strSQL)

      If objRSProgram("antal") = 0 Then
      strSQL = "INSERT INTO Main_Team_Program (Match_Number, Match_Date, Home_Team, Away_Team, Play_Ground, Total_Score, Team_Name) VALUES ('" & Matchnumber & "', '" & Matchdate & "', '" & Hometeam & "', '" & Awayteam & "', '" & Playground & "', '" & Score & "', '" & strTN & "')"
      Else
      strSQL = "UPDATE Main_Team_Program SET Total_Score = '" & Score & "'"
      strSQL = strSQL & " WHERE [Match_Number] = '" & Matchnumber & "'"
      End If
      objConn.Execute(strSQL)
     
      Read = instr(Read,strResult,"<table")
    objRSProgram.MoveNext
    wend
    Loop   
  Set HttpObj = nothing
Call CloseDB
Response.Write("Data'en er nu gemt i databasen")
%>
</body>
</html>
Avatar billede erikjacobsen Ekspert
30. december 2005 - 21:39 #9
Lav
    objRSProgram.MoveNext
    wend
    Loop   
om til
    wend
    objRS.MoveNext
    Loop
Avatar billede aero Nybegynder
30. december 2005 - 21:49 #10
ErikJacobsen
1000 mange gange tak nu virker det som det skal....
hvis du vil have noget cash for dette så læg venligst et svar i det spm. du kiggede på får du kom herover ellers læg venligst et svar her..

og igen 1000 Mange gange tak det virker.

GODT nytår til dig..
læg dog evt et svar i det andet spm. så du kan få point minimum derfra også..
Avatar billede erikjacobsen Ekspert
30. december 2005 - 21:56 #11
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.

Du bør nok sætte en
  objRSProgram.Close
ind så du får ryddet lidt op efter brug.
Avatar billede aero Nybegynder
30. december 2005 - 23:15 #12
ja efter

Set HttpObj = nothing ik' !?

men tak alligevel og godt nytår Erik
Avatar billede erikjacobsen Ekspert
30. december 2005 - 23:27 #13
Faktisk efter end if:

If objRSProgram("antal") = 0 Then
....
endif

hvor du ikke har noget at bruge objRSProgram længere i den while løkke
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
Kurser inden for grundlæggende programmering

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