webForumDet fria alternativet

RecordSet

3 svar · 248 visningar · startad av eriks

eriksMedlem sedan apr. 20011 356 inlägg
#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

WibergMedlem sedan juni 20002 540 inlägg
#2

do until rs.EOF

sql-skrafs

rs.movenext
loop

------------------
"Datorer behöver i framtiden inte väga mer än 1,5 ton."
Popular Mechanics, 1949

EclipseMedlem sedan juli 20003 741 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.)

------------------
"Never underestimate your opponents." - Name the movie.

WibergMedlem sedan juni 20002 540 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. :)

------------------
"Datorer behöver i framtiden inte väga mer än 1,5 ton."
Popular Mechanics, 1949

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb