Avatar billede puppetmaster Nybegynder
05. marts 2002 - 09:37 Der er 8 kommentarer og
1 løsning

SQL, tal og UPDATE

Jeg er ved at lave en artikel database og er løbet ind i følgende problem:
(uddrag af koden)

artikler_id = 126

SQLEditArtikel="UPDATE Artikler SET opdateret_af = '" & brugernavn & "' , opdateret_d = '" & opdateret_d & "', titel = '" & titel & "', beskrivelse = '" & beskrivelse & "',  resume = '" & resum & "', hardware_id = '" & hardware_id & "', kategori = '" & kategori & "' WHERE artikler_id = artikler_id"
(de andre felter bliver hentet via request.form())
Når jeg kører ovenstående, bliver SAMTLIGE poster i databasen opdateret!
Hvis jeg i stedet sætter artikler_id = 126 i SQL strengen, er det kun den aktuelle post der bliver opdateret. Hvis jeg sætter artikler = request.form ("artikler_id") i "initialiseringen", bliver samtlige poster også opdateret.
Problemet ligger vel i hvordan værdien af artikler opfattes, men jeg kan ikke rigtig selv se løsningen! :(
Avatar billede puppetmaster Nybegynder
05. marts 2002 - 09:47 #1
Kom nu, jeg ved I ved hvordan det skal gøres! ;)
Avatar billede coltau Juniormester
05. marts 2002 - 09:47 #2
Prøv det her:

SQLEditArtikel="UPDATE Artikler SET opdateret_af = '" & brugernavn & "' , opdateret_d = '" & opdateret_d & "', titel = '" & titel & "', beskrivelse = '" & beskrivelse & "',  resume = '" & resum & "', hardware_id = '" & hardware_id & "', kategori = '" & kategori & "' WHERE artikler_id = " & request.form ("artikler_id")

Så gør den det korrekt.
Avatar billede puppetmaster Nybegynder
05. marts 2002 - 09:52 #3
Nej, så brokker den sig over afslutningen på strengen....

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'artikler_id ='.
/helpdesk/editartikel.asp, line 17
Avatar billede puppetmaster Nybegynder
05. marts 2002 - 09:55 #4
Ved du hvordan man typecast'ere?
Tænkte det kunne løse problemet, hvis den overførte variabel bliver betragtet som en streng

artikler_id = request.form("artikler_id")
Avatar billede coltau Juniormester
05. marts 2002 - 09:58 #5
Fejlen viser at der mangler en operator i slutningen. Det betyder at request.form("artikler_id") er blank. !
Du skal derfor være sikker på at denne asp-side bliver kaldt sådan: side.asp?artikler_if=126
Gør den det. ?
Avatar billede coltau Juniormester
05. marts 2002 - 10:00 #6
Man behøver ikke at anvende typecast i ASP. Ikke særlig tit.
Avatar billede puppetmaster Nybegynder
05. marts 2002 - 10:11 #7
Hmmm..... :( beklager meget, det virker nu, du havde ganske ret, jeg fik ikke "overført" variablen fra formularen! (puha, det er ALT for tidligt på dagen til den slags problemer! :( )
Tak.
Avatar billede coltau Juniormester
05. marts 2002 - 10:14 #8
Du har ret - jeg går ud og henter kaffe. )
Avatar billede puppetmaster Nybegynder
05. marts 2002 - 10:14 #9
;)
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