/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Hvordan afgøres om en record findes. (Uden~
Fra : Kim V


Dato : 01-08-01 15:17

Jeg har blandt andet lavet en Poll. Jeg gemmer brugerne navn sammen med
deres svar.
Hvis brugere allerede har stemt, så skal jeg ikke add en record, men blot
opdatere den gamle.

Et simpelt spørgsmål, hvordan afgøres om en record findes i en tabel?

Jeg laver idag en sql="SELECT bla bla WHERE user='login_id' bla bla
Der giver mig et tomt record set eller et recordset med en record.
Så fumler jeg lidt med
<%
on error resume next
rs.movefirst
if not rs.bof then
bla bla
%>

Det er lidt tumpet, hvordan gøres det pænt ?
Jeg render nemmelig ofte ind i situationen at skulle afgører om en record
findes
Håber ovenstående giver mening ?

Et alternativ kunne være at udstede en Delete hver gang, lige inden jeg
adder en record, men det er også grimt. Så forsøger jeg at slette en record,
der måske ikke findes





 
 
JH (01-08-2001)
Kommentar
Fra : JH


Dato : 01-08-01 16:08

> hvordan gøres det pænt ?

if not rs.eof then
' bruger findes
else
' bruger findes *ikke*
end if


Kim V (01-08-2001)
Kommentar
Fra : Kim V


Dato : 01-08-01 16:45

>if not rs.eof then
> ' bruger findes
>else
> ' bruger findes *ikke*
>end if


rs.eof er vel altid falsk, hvis jeg ikke bedre database cursoren om at gøre
et eller andet ?
Hvad skal jeg gøre umidlbart før testen. Som udgangspunkt står database
cursoren vel altid på BOF ?






Morten Sørensen (01-08-2001)
Kommentar
Fra : Morten Sørensen


Dato : 01-08-01 16:11

Hej Kim

Det er et stykke tid siden jeg har arbejdet med det her sidst, så bær over
med mig hvis nedenstående ikke er korrekt...


> Jeg har blandt andet lavet en Poll. Jeg gemmer brugerne navn sammen med
> deres svar.
> Hvis brugere allerede har stemt, så skal jeg ikke add en record, men blot
> opdatere den gamle.
>
> Et simpelt spørgsmål, hvordan afgøres om en record findes i en tabel?
>
> Jeg laver idag en sql="SELECT bla bla WHERE user='login_id' bla bla
> Der giver mig et tomt record set eller et recordset med en record.
> Så fumler jeg lidt med
> <%
> on error resume next
> rs.movefirst
> if not rs.bof then
> bla bla
> %>

Kan du ikke bare checke på om
IF(rs.Eof) Then
bla bla
Else
bla bla

Kan ikke huske om det er sådan if skrives, men i bund og grund mener jeg
bare du kan checke på om rs er ved eof med det samme...
For så vidt jeg ved så står du ved den første post som default hvis der da
er nogen poster i recordsettet, og hvis det er tomt ja så må du jo stå ved
eof.
Men hvis det ikke virker så må du lige sige det til mig, for som sagt så er
det noget tid siden jeg sidst rodede med ASP..
>
> Det er lidt tumpet, hvordan gøres det pænt ?
> Jeg render nemmelig ofte ind i situationen at skulle afgører om en record
> findes
> Håber ovenstående giver mening ?
>
> Et alternativ kunne være at udstede en Delete hver gang, lige inden jeg
> adder en record, men det er også grimt. Så forsøger jeg at slette en
record,
> der måske ikke findes

Ja det er nok ikke så smart

Håber du kan bruge det!

Mvh
Morten Sørensen




Kim V (01-08-2001)
Kommentar
Fra : Kim V


Dato : 01-08-01 16:52

>For så vidt jeg ved så står du ved den første post som default hvis der da
>er nogen poster i recordsettet, og hvis det er tomt ja så må du jo stå ved
>eof.
øh
Jeg må lige tjekke/lege lidt, jeg tror "pt." at jeg altid stå i BOF som
udgangspunkt.
Og at jeg skal udstede en rs.movefirst eller ligende for at komme til første
record.
Hvis det du skriver er rigtigt, er det heldigvis rimelig simpelt. Det lyder
faktisk også mest logisk ved nærmere eftertanke.





Allan Ebdrup (02-08-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 02-08-01 14:07

"Kim V" <nomail@lkkhjjhj.com> skrev i en meddelelse
news:3b680e0c$0$79033$edfadb0f@dspool01.news.tele.dk...
> Jeg har blandt andet lavet en Poll. Jeg gemmer brugerne navn sammen med
> deres svar.
> Hvis brugere allerede har stemt, så skal jeg ikke add en record, men blot
> opdatere den gamle.
>
> Et simpelt spørgsmål, hvordan afgøres om en record findes i en tabel?
>
> Jeg laver idag en sql="SELECT bla bla WHERE user='login_id' bla bla
> Der giver mig et tomt record set eller et recordset med en record.
[klip]

Hej Kim
Hvis du strater med at antage at brugeren findes kan du lave en opdatering,
ved denne opdatering kan du få at vide hvor mange records der var berørte af
opdateringen. Hvis det var 0 (nul) kan du indsætte en ny record for
brugeren.
Vi ender med noget i denne stil:

Dim objConnection, strSQL, intRecordsAffected
.... åben connection
strSQL = "UPDATE blah blah WHERE user='login_id'"
call objConnection.execute(strSQL, intRecordsAffected)
if intRecordsAffected=0 then
' Der var ingen record for brugeren, indsæt record for brugeren
strSQL = "INSERT blah blah"
call objConnection.execute(strSQL)
end if
objConnection.close
set objConnection = Nothing


Alternativt kan du ændre din sql="SELECT bla bla WHERE user='login_id'"
til: sql="SELECT COUNT(*) WHERE user='login_id'"
og benytte

Dim strSQL, objConnection, intCount, objRs

.... åben connection

strSQL = "SELECT COUNT(*) WHERE user='login_id'"
set objRs = objConnection.execute(strSQL)
intCount = objRs.fields(0).value ' Hent antallet af records for bruger ID
objConnection.close
set objConnection = Nothing
objRs.close
set objRs = Nothing 'ryd op

If intCount =0 then
' Bruger findes ikke - indsæt
Else
' Bruger findes - opdater
End if

Hvis du vil lave det lidt mere generelt kan du fx pakke checket af om en
bruger findes ned i en funktion, og knalde funktionen ned i sin egen .asp
fil som du så includer i toppen af din side. Det kan jo være du får brug for
funktionen på nogle andre af dine sider.

MVH
Allan Ebdrup



Søg
Reklame
Statistik
Spørgsmål : 177508
Tips : 31968
Nyheder : 719565
Indlæg : 6408576
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste