webForumDet fria alternativet
Logga in / Bli medlem

Sql sats

ASP

10 svar · 297 visningar · startad av Qimen

Medlem sedan juni 20015 009 inlägg
Trådstart#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 ??

Medlem 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.

Medlem sedan juni 20015 009 inlägg
#3

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

Medlem 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

Medlem 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.

Medlem sedan juni 20015 009 inlägg
#6

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

Medlem 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.

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

Medlem 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.

Medlem 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
%>
Medlem 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)

268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)