webForumDet fria alternativet
Logga in / Bli medlem

RecordSet

ASP

3 svar · 248 visningar · startad av eriks

Medlem sedan apr. 20011 418 inlägg
Trådstart#1

Hej! Jag vill kolla om en identisk post i databasen redan är inlagd. Jag skriver:

connection osv....
SQLStmt = "SELECT Datum, Tid FROM Visa"
Set RS = Connection.Execute(SQLStmt)

if RS("Datum") <> " & Datum & " And RS("Tid") <> " & Tid & " then

Response.Write "Tiden läggs upp"

else
Response.Write "Tiden är redan upplagd"
end If

Nu jämförs väl bara det inmatade värdet (request) med det första i databasen. Hur ska jag skriva (loopa antagligen eller) för att det inmatade värdet ska jämföras med alla poster i databasen?

Tack! /Erik

Medlem sedan juni 20003 169 inlägg
#2

do until rs.EOF

sql-skrafs

rs.movenext
loop
Medlem sedan juli 20003 825 inlägg
#3

Man kan göra som Wiberg... men det är inte rätt! :-) Wiberg vet nog hur man gör.

SQLStmt = "SELECT * FROM [visa] WHERE [datum] <> #" & request("datum") & "# AND [tid] <> #" & request("tid") & "#;"
Set RS = Connection.Execute(SQLStmt)
on error resume next

IF RS.EOF THEN
-- '## UPDATE
ELSE
-- '## CANT update
END IF

---
Tips
1. datum kan vara ett reserverat ord. (Man kan använda reserverade ord inom klamrar)
2. Använd now() i stället. Då har du både datum och tiden i samma post. (Kanske inte passar i ditt sammanhang.)

Medlem sedan juni 20003 169 inlägg
#4

Eclipses sätt är betydligt enklare och bättre än det sättet som jag beskrev ovan. :)

Skrev som jag gjorde eftersom jag inte ville skriva om din kod helt och hållet utan byggde bara på den princip som du redan påbörjat.

Men Eclipses variant är som sagt mycket bättre och det är den som jag själv brukar använda. :)

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