|
| Update med værdien +1 Fra : Thomas K |
Dato : 02-01-05 18:05 |
|
Jeg prøver på at opdatere min access database på en asp side. Min
tabel hedder "overskrifter" og jeg vil gerne have at kolonnen
"Svar" skal opdateres med værdien +1.
Det skal bruges til at se hvor mange besvarelser der har været på
et indlæg, så hvis der er en som besvare et nyt indlæg, bliver
kolonnen "Svar" ændret til 1...Næste besvarelse ændre værdien til
2 osv osv.
Jeg har prøvet med nedenstående linie, men jeg er vist lidt galt
på den da det slet ikke fungere:
strSQL = "Update overskrifter set Svar (value = value + 1) Where
ID = " & Request.Querystring("ID")
Fejl:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
UPDATE-sætningen.
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jens Gyldenkærne Cla~ (02-01-2005)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 02-01-05 18:28 |
|
Thomas K skrev:
> strSQL = "Update overskrifter set Svar (value = value + 1) Where
> ID = " & Request.Querystring("ID")
Det er enklere end som så:
strSQL = "Update overskrifter set Svar = Svar + 1 where
ID = " & Request.Querystring("ID")
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Thomas K (02-01-2005)
| Kommentar Fra : Thomas K |
Dato : 02-01-05 19:10 |
|
> Jens GyldenkærneClausen wrote:
> strSQL = "Update overskrifter set Svar = Svar + 1 where
> ID = " & Request.Querystring("ID")
Smukt, takker Jens!
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jens Rosenkvist (02-01-2005)
| Kommentar Fra : Jens Rosenkvist |
Dato : 02-01-05 23:27 |
|
Jens Gyldenkærne Clausen wrote:
> Det er enklere end som så:
>
> strSQL = "Update overskrifter set Svar = Svar + 1 where
> ID = " & Request.Querystring("ID")
Jeg takker også.
Jeg har hele tiden lavet det, så jeg først har hentet værdien fra
databasen og derefter lagt en til.
Men det her er jo smartere. :)
| |
Casper Bang (03-01-2005)
| Kommentar Fra : Casper Bang |
Dato : 03-01-05 13:16 |
|
> Jeg takker også.
> Jeg har hele tiden lavet det, så jeg først har hentet værdien fra
> databasen og derefter lagt en til.
> Men det her er jo smartere. :)
Og sikrere :) Der er mindre risiko for at en anden bruger har hentet de
samme data fra databasen på samme tid, så den ene af opdateringerne bliver
overskrevet :)
| |
Jens Peter Rosenkvis~ (14-03-2005)
| Kommentar Fra : Jens Peter Rosenkvis~ |
Dato : 14-03-05 11:16 |
|
Jens Gyldenkærne Clausen wrote:
> Det er enklere end som så:
>
> strSQL = "Update overskrifter set Svar = Svar + 1 where
> ID = " & Request.Querystring("ID")
Hvis man har tre felter A, B og C og gerne vil have A/B = C, hvordan
skal det så gøres på denne måde?
| |
Jens Gyldenkærne Cla~ (14-03-2005)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 14-03-05 11:28 |
|
Jens Peter Rosenkvist skrev:
> Hvis man har tre felter A, B og C og gerne vil have A/B = C,
Hvad mener du med A/B = C?
Skal C tildeles værdien af A/B eller skal du tjekke om A/B er lig C?
Det første kan gøres sådan:
UPDATE tabel SET C = A/B
Det andet kan fx være
SELECT C FROM tabel WHERE C = A/B
NB: Det er normalt ikke en god ide at gemme beregnede værdier i en tabel
- hvis du har A og B i tabellen i forvejen, kan du altid beregne C i en
forespørgsel når du skal bruge den:
SELECT A, B, A/B as C FROM tabel
På den måde gemmer man ikke overflødig information og man sikrer sig at
der ikke opstår inkonsistens i beregningen (hvis man fx opdaterer C uden
at opdatere A eller B).
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jens Peter Rosenkvis~ (14-03-2005)
| Kommentar Fra : Jens Peter Rosenkvis~ |
Dato : 14-03-05 17:34 |
|
Jens Gyldenkærne Clausen wrote:
> Hvad mener du med A/B = C?
Undskyld, har lige siddet og skrevet opgave i et sprog der gemmer
værdien af det til venste i variablen til højre.
Mener selvfølgelig C = A/B
Det var også derfor det ikke virkede, da jeg prøvede det.
> NB: Det er normalt ikke en god ide at gemme beregnede værdier i en tabel
> - hvis du har A og B i tabellen i forvejen, kan du altid beregne C i en
> forespørgsel når du skal bruge den:
>
> SELECT A, B, A/B as C FROM tabel
>
Problemet er, at jeg skal " ORDER BY C", så at sige. Skal jeg så ikke
have værdien gemt i databasen?
| |
Jens Gyldenkærne Cla~ (14-03-2005)
| Kommentar Fra : Jens Gyldenkærne Cla~ |
Dato : 14-03-05 22:32 |
|
Jens Peter Rosenkvist skrev:
>> SELECT A, B, A/B as C FROM tabel
> Problemet er, at jeg skal " ORDER BY C", så at sige.
Ikke noget problem:
SELECT A, B FROM tabel ORDER BY A/B
Du kan sagtens sortere efter et beregnet udtryk. Det der kan
forvirre lidt er at man i nogle databaser ikke kan bruge felt-alias
i udtryk. Altså hvis du nu både vil have vist værdien A/B og
sorteret efter den, kan man i nogle databaser skrive:
SELECT A, B, A/B as C ORDER BY C
- mens man i andre (bl.a. Access og MSSQL) skal skrive udtrykket
begge steder:
SELECT A, B, A/B as C ORDER BY A/B
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html
| |
Jens Peter Rosenkvis~ (16-03-2005)
| Kommentar Fra : Jens Peter Rosenkvis~ |
Dato : 16-03-05 15:03 |
|
Jens Gyldenkærne Clausen wrote:
> SELECT A, B FROM tabel ORDER BY A/B
Takker. :) Altid hurtig og brugbar hjælp fra din side. :)
| |
|
|