select orgnr from inloggningar where orgnr ='" & Session("orgnr") & "' order by datum LIMIT 1
Ändra till:
SELECT TOP 1 orgnr FROM inloggningar WHERE ornnr = '" & Session( "orgnr" ) & "' ORDER BY datum"
Hela koden skulle jag skriva så här:
strSQL = "select count( * ) from inloggningar where orgnr = '" & Session("orgnr") & "'"
intLogs = Connect.execute( strSQL )( 0 )
if intLogs <= 10 then
strSQL = "insert into inloggningar(orgnr, datum, status, ip) values('" & Session("orgnr") & "','"& NOW() &"','0','"& Request.ServerVariables("REMOTE_ADDR") &"')"
else
strSQL = "UPDATE inloggningar SET datum = '" & NOW & "' WHERE orgnr IN (SELECT TOP 1 orgnr FROM inloggningar WHERE orgnr = '" & Session( "orgnr" ) & "' ORDER BY datum ASC)"
end if
Connect.execute( strSQL )
Då slipper du skapa ett extra Recordset. Jag tror att det ska fungera. :)
Använder man Access bör man omsluta datumvärden med brädgårdar.
Annars; vad är det för datatyp på de olika fälten? Text-/-strängtyper skall omslutas med apostrofer, taltyper skall inte omslutas med någon typ av literaler.
strSQL = "select count( * ) from inloggningar where orgnr = " & Session("orgnr")
intLogs = Connect.execute( strSQL )( 0 )
if intLogs <= 10 then
strSQL = "insert into inloggningar(orgnr, datum, status, ip) values(" & Session("orgnr") & ",#"& NOW() &"#,'0','"& Request.ServerVariables("REMOTE_ADDR") &"')"
else
strSQL = "UPDATE inloggningar SET datum = #" & NOW & "# WHERE orgnr IN (SELECT TOP 1 orgnr FROM inloggningar WHERE orgnr = " & Session( "orgnr" ) & " ORDER BY datum ASC)"
end if
Connect.execute( strSQL )
Så, menar han. Notera brädgårdarna ( # ) runt datumvärdet och att jag inte använder enkelfnuttar runt tal-värdet för 'orgnr'.
strSQL = "select count( * ) from inloggningar where orgnr = " & Session("orgnr")
intLogs = Connect.execute( strSQL )( 0 )
if intLogs <= 10 then
strSQL = "insert into inloggningar(orgnr, datum, status, ip) values(" & Session("orgnr") & ",#"& NOW() &"#,'0','"& Request.ServerVariables("REMOTE_ADDR") &"')"
else
strSQL = "UPDATE inloggningar SET datum = #" & NOW & "# WHERE orgnr IN (SELECT TOP 1 orgnr FROM inloggningar WHERE orgnr = " & Session( "orgnr" ) & " ORDER BY datum ASC)"
end if
Connect.execute( strSQL )
strSQL = "UPDATE inloggningar SET datum = #" & Now & "# WHERE orgnr IN (SELECT TOP 1 orgnr FROM inloggningar WHERE orgnr = " & _
Session( "orgnr" ) & " ORDER BY datum)"
Organisationsnummer är så stora så de är för stora för datatypen heltal, så det måste nog lagras som text som nämnts ovan. Att i asp-kod eller dylikt omvandla till long enligt StevePs förslag har ingen betydelse. Det är ändå en sträng som skickas som SQL-fråga.