Har en tabell som heter Anvandare. Där har jag ett fält som heter bostadshyra (tal). Sedan har jag även ett datumfält som heter shyra, det finns även ett fält som heter pixlar (tal).
Hur ska jag göra så att värdet i pixlar minskas med värdet ifrån bostadshyra och så ska den bara göra det en gång per dag på alla användare ??
SQL = "UPDATE Anvandare SET pixlar = pixlar - bostadshyra"
För att det endast skall köras en gång per dag så skulle du kunna skapa en stored procedur och lägga in denna i schemaläggaren. (MS SQL)
Om du inte har den möjligheten så kan du alltid köra en lite mindre snygg variant att varje dygn så körs denna kod såfort en användare kommer in på sidan.
Och när denna kod körs så skriver du in dagens datum i t.ex. en textfil.
'Lite lättare att skriva koden kanske? ;)
if textfilens_första_rad = dagens_datum then
' Du behöver inte köra något alls!
else
' Här kör du koden
' Här skriver du in dagens datum i textfilen.
end if
/r Detta kräver att du har lite besökare på sidan
Om ingen går in på sidan på 2 dygn så kommer koden inte att köras två gånger som det är tänkt, utan bara en gång.
Jo självklart.
Men om du skall ha den så att SQL-satsen körs varje gång någon kommer in på sidan så tar ju det lite resurser.
Den kan alltså komma att köras flera gånger per dag, utan att det egentligen uppdateras något eftersom det bara görs första gången.
<%
Dim idag
Set fso = CreateObject("Scripting.FileSystemObject")
Set fil = fso.OpenTextFile("c:\datum.txt", ForReading)
idag = fil.ReadAll
fil.close
if not Cdate(idag) = date() then
'databaskrafs
SQL = "UPDATE Anvandare SET pixlar = pixlar - bostadshyra"
'Annat databaskrafs
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
set objFile = objFSO.OpenTextFile( "C:\datum.txt", 2 )
objFile.Write date()
end if
%>