Jag får detta felmeddelande på flera sidor. Kan mn lägga till någon ra i global.asa så att tiden ökas.
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server Driver]Timeout expired
/td/admin/check.inc, line 4
------------------
Adde
PaceMedlem sedan juni 20019 024 inlägg Server.ScriptTimeout = TID
------------------
Peter D
emissionMedlem sedan dec. 19996 721 inlägg Nja, här verkar det vara SQL-servern som timeout:ar, så då beror det på en för tung sökning, alternativt licensieringsproblem.
För tung sökning. Emission du har säkert rätt men vad kan man göra åt saken? Vad menar du med licensiseringsproblem.
SQL-servern (7.0) ligger på Ballou internet service.
Tips på vad jag kan göra för att undvika problemet.
------------------
Adde
På denna lösenordskontroll fil check.inc
Blir felt oftast, men även på andra sidor.
<%
' Öppna dataförbindelsen
Set con = Server.CreateObject("ADODB.Connection")
con.open "xxxxxx", "xxxxxxx", "xxxxxxx"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM users2"
RecSet.Open Visa, Con, adOpenStatic, adLockOptimistic
X = FALSE
Do Until X = TRUE OR RecSet.EOF
If RecSet("Username") = Session("Username") Then
X = TRUE
Exit Do
End If
RecSet.MoveNext
Loop
If X = TRUE Then
Y = FALSE
Do Until Y = TRUE OR RecSet.EOF
If RecSet("Password") = Session("Password") Then
Y = TRUE
Exit Do
End If
RecSet.MoveNext
Loop
End If
If X = FALSE Then
Response.Write "Du har anget ett felaktigt användarnamn!"
ElseIf Y = FALSE Then
Response.Write "Du har anget ett felaktigt lösenord!"
End If
If X = TRUE AND Y = TRUE AND Session("access") = "A" Then
ELSE
RecSet.Close
con.Close
set RecSet = nothing
set con = nothing
Response.redirect "fel_inloggning.asp"
End If
RecSet.Close
Con.Close
set RecSet = nothing
set con = nothing
%>
------------------
Adde
LarsGMedlem sedan dec. 200012 464 inlägg Jag skrev om koden, så att det blir färre databasaccesser.
<%
' Öppna dataförbindelsen
Set con = Server.CreateObject("ADODB.Connection")
con.open "xxxxxx", "xxxxxxx", "xxxxxxx"
sql = "select password from user2 where username = '" & session("username") & "'"
set recset = con.execute(sql)
login = false
if recset.eof then
Response.Write "Du har anget ett felaktigt användarnamn!"
else
if recset("password") <> session("password") then
Response.Write "Du har anget ett felaktigt lösenord!"
else
login = true
end if
End If
RecSet.Close
con.Close
set RecSet = nothing
set con = nothing
if not login then
Response.redirect "fel_inloggning.asp"
End If
%>
Om du har väldigt många användare lagrat så kan det ta lite tid.
IDG?
------------------
essentitia preter non sans multiplicandum
Det är bara 4 olika användare.
Var min kod riktigt dåligt skriven?
Har du Några förslag vad man kan göra åt timeout expired felet.
------------------
Adde
LarsGMedlem sedan dec. 200012 464 inlägg Om du bara har 4 poster så borde du inte råka ut för timeout även om du använder din kod. (Med så få poster borde det inte bli någon nämnvärd prestandaskillnad mellan din och min kod.) Det låter som databashanteraren är rejält överlastad.
Det finns någon egenskap på kommando/connection man kan sätta för att öka ut timeout. Kommer inte ihåg utantill vad den heter men du kan ju söka på timeout+ado hos msdn.
r:
Ett problem med din kod är att den godkänner att man loggar in med ett namn och någon annans lösenord.
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 10 aug 2001]
Jag tippar på att det är någon annan på webbhotellet som slöar ner SQL-Servern.
Det ligger kanske ett 40-tal datbaser på samma server.
------------------
Adde
cyprysMedlem sedan dec. 20003 563 inlägg Eller så kanske ballou inte är känt för att köpa in all den bästa utrustningen.
Kan vara de som satt gränser p.g.a. priset av licensen eller likn.
------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.