webForumDet fria alternativet

Sql sats

10 svar · 297 visningar · startad av Qimen

QimenMedlem sedan juni 20015 009 inlägg
#1

Hej

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 ??

cyprysMedlem sedan dec. 20003 563 inlägg
#2

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.

QimenMedlem sedan juni 20015 009 inlägg
#3

Kan jag inte köra någon typ datediff på datumet jag har i shyra?

QimenMedlem sedan juni 20015 009 inlägg
#4

re: glömde en sak... om man inte har tillräckligt på pixlar, alltså att det värdet går på minus, då ska fältet hepp uppdateras till 1

cyprysMedlem sedan dec. 20003 563 inlägg
#5

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.

QimenMedlem sedan juni 20015 009 inlägg
#6

ok. Men jag kan inte det alls det du skrev först :/

Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Qimen skrev:

ok. Men jag kan inte det alls det du skrev först :/

Menar du lagrade procedurer så kan du nästan glömma det om du inte kör med Ms Sql.
Menar du något annat kanske du kan förklara vad du inte kan.

cyprysMedlem sedan dec. 20003 563 inlägg
#8

Qimen skrev:

ok. Men jag kan inte det alls det du skrev först :/

Menar du skriva till textfil osv?

QimenMedlem sedan juni 20015 009 inlägg
#9

oj kanske var lite otydlig. Jag menar det med att skriva till en text fil och bara köra den en gång om dagen.

Jesper TMedlem sedan nov. 20017 144 inlägg
#10

Något liknande kanske:

<%
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
%>
Jesper TMedlem sedan nov. 20017 144 inlägg
#11

Om du inte kan använda den fysiska sökvägen så får du använda: fso.OpenTextFile(Server.MapPath("datum.txt"), ForReading)

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)