Avatar billede Slettet bruger
30. maj 2002 - 14:48 Der er 22 kommentarer og
1 løsning

SQL hente nuværende

Hej eksperter....


jeg har denne sql:

SQL_POINTSVAR = "update bruger set point =" & (point + request.form("point")) & " where id=" & request.form("svarid2")

hvor der står point, skal den tage det tal der stå i databsen lige nu, hvordan ordnes dette ?
Avatar billede tmceu Praktikant
30. maj 2002 - 14:51 #1
Lyder som noget med "SELECT Point FROM Bruger WHERE [ID]=" & request.form("svarid2")
Avatar billede webbe Nybegynder
30. maj 2002 - 14:52 #2
sql = "SELECT * FROM bruger WHERE Id="&request.form("svarid2")
Set rs = Connect.Execute(sql)

SQL_POINTSVAR = "update bruger set point =" & Cint(rs("Point") + request.form("point")) & " where id=" & request.form("svarid2")
Connect.Execute(SQL_POINTSVAR)

Det burde kunne gøre det. ;0)
Avatar billede z42cool Nybegynder
30. maj 2002 - 14:53 #3
UPDATE bruger SET point=point+" & Request.Form("point") & " WHERE id=" & Request.Form("svarid2")
Avatar billede webbe Nybegynder
30. maj 2002 - 14:54 #4
Eller:

sql = "SELECT * FROM bruger WHERE Id="&request.form("svarid2")
Set rs = Connect.Execute(sql)

gammelPoint = Cint(rs("Point"))
Point = Cint(Request.Form("point"))

NyPoint = Cint(gammelPoint + Point)

SQL_POINTSVAR = "update bruger set point =" & NyPoint & " where id=" & request.form("svarid2")
Connect.Execute(SQL_POINTSVAR)
Avatar billede Slettet bruger
30. maj 2002 - 14:55 #5
z42cool..... den virker ikke med  det var det der var tanken og undgå to sql
Avatar billede Slettet bruger
30. maj 2002 - 14:56 #6
webbe>> man burde kunne lave det i en sql, efter hvad jeg ved &:-D
Avatar billede z42cool Nybegynder
30. maj 2002 - 14:58 #7
Webbe>> Ydelsesmæssigt er det en meget ineffektiv løsning. Problemet kan klares med et kald til execute og ingen indeksering af et recordset. Du bruger 2 kald til execute + en indeksering af et recordset!
Avatar billede webbe Nybegynder
30. maj 2002 - 14:58 #8
Ikke hvis du skal bruge en gammel point-værdi - så skal du jo hente den først.

Mit forslag nummer 2 var bare for at lave en lidt detaljeret illustration af hvad der faktisk skal til. ;0)
Avatar billede z42cool Nybegynder
30. maj 2002 - 14:58 #9
quetis>> Det virker på min MSSQL server. Hvilken database bruger du?
Avatar billede Slettet bruger
30. maj 2002 - 14:59 #10
*GG* jeg bruger access &:-D
Avatar billede Slettet bruger
30. maj 2002 - 14:59 #11
den henter ikke gamle point, men skriver point &:-D
Avatar billede webbe Nybegynder
30. maj 2002 - 14:59 #12
z42cool:

Hvordan ville du så lave mit eksempel?
Avatar billede webbe Nybegynder
30. maj 2002 - 15:00 #13
questis:

HUH???

Det er altså IKKE et system hvor der ligges nye point oven i gamle???
Avatar billede Slettet bruger
30. maj 2002 - 15:02 #14
webbe>> jo men forklarede lige fejlen på z42coll's ide &:-D

jo der står et tal i feltet som skal opdateres ved at tage det tal og ligge den request.form til..... i en SQL
Avatar billede z42cool Nybegynder
30. maj 2002 - 15:03 #15
quetis>> Det virker nu også med min access.....

SQL_POINTSVAR = "update bruger set point=point+" & request.form("point") & " where id=" & request.form("svarid2")

Jeg antager at såvel point som id er af typen tal?
Avatar billede z42cool Nybegynder
30. maj 2002 - 15:05 #16
Webbe>> Jeg vil lave det med en samlet UPDATE query. Hvis et felt indgår i et udtryk i en tildeling, så vil sql anvende felt værdien inden den samlede UPDATE query afvikles!
Avatar billede Slettet bruger
30. maj 2002 - 15:05 #17
jo det gør den da også &:-D havde lige glemt en lille detalje &:-D
Avatar billede Slettet bruger
30. maj 2002 - 15:06 #18
takker for din hjælp z42cool.... det var perfekt &:-D
Avatar billede z42cool Nybegynder
30. maj 2002 - 15:07 #19
quetis>> Vil du ikke lige prøve med:

SQL_POINTSVAR = "update bruger set point=point+" & request.form("point") & " where id=" & request.form("svarid2")

Response.write(SQL_POINTSVAR)

og så paste den udskrevne sql sætning her?
Avatar billede z42cool Nybegynder
30. maj 2002 - 15:07 #20
:-) Selvfølgelig!
Avatar billede Slettet bruger
30. maj 2002 - 15:08 #21
denne her du vil have ?

update bruger set point=point+30 where id=2
Avatar billede tmceu Praktikant
30. maj 2002 - 15:10 #22
Og jeg som troede, at du bare ville se dine point, fordi du skrev "tage det tal der stå i databsen lige nu" :-)
Avatar billede Slettet bruger
30. maj 2002 - 15:12 #23
tmceu>> *GG* så havde jeg nok ikke en så lang sql &:-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester