/ 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
Sætte false efter 2 minuter?
Fra : Thomas Brejner


Dato : 19-05-03 17:40

Ok... nu er jeg ved at gå amok over denne kode. Det er meningen at den skal
sætte false hvis der er gået mere end 2 minuter fra det tidspunkt der står i
onlinetime og den tid det er nu. Men den gør slet ingen ting :(
Ved i hvad fejlen er?
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("profil/profil.mdb")
Conn.Open DSN
strSQL = "Select * from profil where Datediff('n', onlinetime, Now) < 1"
Set rs = Conn.Execute(strSQL)
If rs.EOF Then
else
End if
Do While not rs.EOF
RS.Update
RS("online") = False
RS.Update
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing
%>




 
 
Torben Brandt (19-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 19-05-03 18:04

Thomas Brejner wrote:
> Ok... nu er jeg ved at gå amok over denne kode.

Det skal nu nok kunne lade sig gøre...

> Det er meningen at den skal
> sætte false hvis der er gået mere end 2 minuter fra det tidspunkt der står i
> onlinetime og den tid det er nu. Men den gør slet ingen ting :(
> Ved i hvad fejlen er?
> <%
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("profil/profil.mdb")
> Conn.Open DSN
> strSQL = "Select * from profil where Datediff('n', onlinetime, Now) < 1"
> Set rs = Conn.Execute(strSQL)
> If rs.EOF Then
> else
> End if

Hvad er lige præcis meningen med de 3 linier herover :)

> Do While not rs.EOF
> RS.Update
> RS("online") = False
> RS.Update
> rs.MoveNext
> Loop
> Conn.Close
> Set Conn = Nothing
> %>

Du vil sætte online = False, hvis der er gået mere end 2 min. Men i
stedet trækker du de poster ud, hvor der er gået mindre end 1 min..!

Prøv i stedet at lade databasen klare det hele:
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("profil/profil.mdb")
Conn.Open DSN
strSQL = "UPDATE profil SET online = False WHERE Datediff('n',
onlinetime, Now) > 2"
Conn.Execute(strSQL)

mvh Torben


Thomas Brejner (19-05-2003)
Kommentar
Fra : Thomas Brejner


Dato : 19-05-03 18:11

Hmm jamen skal kode så bare være:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("profil/profil.mdb")
Conn.Open DSN
strSQL = "UPDATE profil SET online = False WHERE Datediff('n',
onlinetime, Now) > 2"
Conn.Execute(strSQL)
%> og så ikke mere? er lidt noob til det med datediff osv, men håber da jeg
lære det en dag :)



Torben Brandt (19-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 19-05-03 18:36

Thomas Brejner wrote:
> Hmm jamen skal kode så bare være:
> <%
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("profil/profil.mdb")
> Conn.Open DSN
> strSQL = "UPDATE profil SET online = False WHERE Datediff('n',
> onlinetime, Now) > 2"
> Conn.Execute(strSQL)
> %> og så ikke mere? er lidt noob til det med datediff osv, men håber da jeg
> lære det en dag :)

Learning by doing

Ja, i stedet for den kode du postede i første indlæg i denne tråd, der
skriver du bare ovenstående (og så lige conn.close() og set conn = Nothing).
Prøv at indsætte det, og skriv igen, hvis det ikke fungerer (og skriv
hvad der ikke fungerer).

Din strategi var at tage alle de poster ud, du ville rette i og sætte
online til False og opdatere i databasen.
Her beder vi databasen opdatere alle posterne uden at trække dem ud.

Du kan læse mere om DateDiff på [1]:
<URL:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsfctDateDiff.asp?frame=true>


[1] Det er godt nok til VBS, men de tre første argumenter fungerer på
samme måde i SQL.

Torben


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

Månedens bedste
Årets bedste
Sidste års bedste