webForumDet fria alternativet

en fråga :)

ASP

11 svar · 202 visningar · startad av Cactuz

Medlem sedan okt. 2001670 inlägg
Frågan#1

jag behöver ett script som först kollar om dagens datum finns någonstans i kolumnen datum... om den finns ska den bara köra en update... om den inte finns måste den ju först köra en insert för att kunna uppdatera så den ska då köra en insert o sen en update.

Medlem sedan dec. 20003 563 inlägg
#2
<%
Set RS = conn.execute("SELECT * FROM tabell WHERE datum = '"&date&"' ")
' Om datumet är i textform.
if RS.eof then
 KÖR INSERT
else
 KÖR UPDATE
end if
Set RS = nothing
%>

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

Medlem sedan okt. 2001670 inlägg
#3

allså... den ska inte kolla om datum är tom... för det kan ligga andra datum n dagens.. den ska kolla om dagens datum står...

[Redigerat av Cactuz den 26 jan 2002]

Medlem sedan dec. 20003 563 inlägg
#4

ehh ja.

If rs.eof betyder ifall end_of_fields
Alltså ifall det finns några poster som upfyller datum = date, alltså ifall dagens datum finns i någon post i kolumnen [datum]?
Om inte lägg till en som har det.
Annars uppdatera den poster som har datumet.
Låter som en version av en besöksräknare? :)

------------------
MVH // Cyprys
Cyprys
Synd att du inte kan köpa en voodoojordglob och sedan snurra på den fort som fan och skrämma skiten ur alla.

Medlem sedan okt. 2001670 inlägg
#5

ahh.. nu sr jag... kollade fel innan :)

besöksräknre? vad snackar du om? ;)

Medlem sedan okt. 2001670 inlägg
#6

får felmeddelandet:

Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: 'conn'

Medlem sedan feb. 20012 412 inlägg
#7

hej, posta lite kod.

Du har antagligen två olika namn eller fel namn på ditt connectionobjekt någonstans.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan okt. 2001670 inlägg
#8
<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("counter.mdb")

Set RS = conn.execute("SELECT * FROM besok WHERE Datum = '"&date&"'")
' Om datumet är i textform.
if RS.eof then

SQL = "INSERT INTO besok (Datum) VALUES ('" & datum &"')"
con.execute(SQL)

besok = "UPDATE besok set Antalbesok = Antalbesok + 1 WHERE Datum = '"&datum&"'"
Set rs = db.execute(besok)

else

besok = "UPDATE besok set Antalbesok = Antalbesok + 1 WHERE Datum = '"&datum&"'"
Set rs = db.execute(besok)

end if
Set RS = nothing
%>
Medlem sedan juni 20019 024 inlägg
#9

Set RS = db.execute("SELECT * FROM besok WHERE Datum = '"&date&"'")

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

Medlem sedan feb. 20012 412 inlägg
#10

hej, du har 3 olika namn på ditt connectionobject. Con, conn och db.

Eftersom du skapat det som db så ändra alla till det namnet.

red: och utöver Pace ändring:

SQL = "INSERT INTO besok (Datum) VALUES ('" & datum &"')"
db.execute(SQL)

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

[Redigerat av jorgen den 26 jan 2002]

Medlem sedan dec. 200012 464 inlägg
#11

Som jorgen sade,så har du blandat namnen

<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("counter.mdb")
Set RS = db.execute("SELECT * FROM besok WHERE Datum = '"&date&"'")
' Om datumet är i textform.
if RS.eof then

SQL = "INSERT INTO besok (Datum,antalbesok) VALUES ('" & datum &"',1)"
db.execute(SQL)

else

besok = "UPDATE besok set Antalbesok = Antalbesok + 1 WHERE Datum = '"&datum&"'"
db.execute(besok)

end if
Set RS = nothing
%>

Det är ju också onödigt att först göra insert och sen direkt efteråt göra update på samma tabell.

red:
Det är onödigt att ställa select-frågan också

<%
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("counter.mdb")

sql = "UPDATE besok set Antalbesok = Antalbesok + 1 WHERE Datum = '"&datum&"'"
db.execute sql,rows,128

if rows = 0 then
SQL = "INSERT INTO besok (Datum,antalbesok) VALUES ('" & datum &"',1)"
db.execute SQL,,128 
end if

%>

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 26 jan 2002]

Medlem sedan mars 20015 287 inlägg
#12

OT!
En stilla kommentar till LarsG's svar.

Om du skulle kika över all min kod jag skrivit skulle du nog kunna reducera den till en fjärdedel, max...

Imponerande gång på gång, både i enklare o tyngre frågor.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 26 jan 2002]

261 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)