26. oktober 2004 - 18:31Der er
5 kommentarer og 1 løsning
Timeout expired
Hej
jeg har følgende kode:
<% Server.ScriptTimeout = 1000
i = i + 7
strSQL = "SET DATEFORMAT DMY SELECT * FROM LINKS_FSH WHERE " & commonSQLType & " AND PUBLISH > '" & Date() & "' AND PICTURE NOT LIKE '%/grafik/henvisning/diverse/no_pic.gif%' ORDER BY PUBLISH" set rs = dataConn.execute(strSQL)
while not (rs.eof or rs.bof) strSQL = "SET DATEFORMAT DMY UPDATE LINKS_FSH SET PUBLISH = '" & date() + round(i) & "' WHERE ID = " & RS("ID") RESPONSE.WRITE strSQL & "<BR>" dataConn.execute(strSQL) . . . %>
Den stopper ved den sidste linie (dataConn.execute(strSQL)) første gang den kommer til den. Og så skriver den:
Microsoft OLE DB Provider for SQL Server error '80040e31' Timeout expired
Sql-strengen er: SET DATEFORMAT DMY UPDATE LINKS_FSH SET PUBLISH = '02-11-2004' WHERE ID = 7768
Og når jeg kører den i Enterprise så virker det fint. Mystisk. Hvad er fejlen?
Jeg vil tro at din connection der jo holder et åbent recordset holder en lås på LINKS_FSH forhindrer dig i at lave UPDATE på LINKS_FSH. Prøv at lave et separat connection objekt til hhv. din SELECT og din UPDATE statement.
Lav et recordset der ikke låser: Set Com = Server.CreateObject("ADODB.Command") Com.ActiveConnection = dataConn Com.CommandText = strSQL Set rs = Server.CreateObject("ADODB.Recordset") rs.Open Com, , 0, 1
- Alt dette i stedet for set rs = dataConn.execute(strSQL)
Efterfølgende skal du så sige rs.Close Set rs = Nothing Set Com = Nothing
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.