Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:11 Der er 16 kommentarer og
1 løsning

Hvorfor må jeg ikke opdatere???

Jeg har en database(databasen fra en webshop) hvori der er et felt jeg skal opdatere med en værdi. Men jeg må ikke opdatere feltet hvis jeg udtrækker feltet med et felt som hedder OrdreID. Jeg har altså en sql sætning som ser således ud:
strSQL = "Update orders set "
strSQL = strSQL & "status= '"& z &"' "
strSQL = strSQL & " where orderID='"& brugernavn &"'"

men den kommer med den fejl:  Datatyperne stemmer ikke overens i kriterieudtrykket.
Prøver jeg derimod at udtrække rækken hvori feltet er, med et andet felt fra tabellen, virker et fint nok.....hvordan kan det være?????  Der er desuden nogle relationer mellem de enkelte tabeller, her indgår OdrerID, man kan det virkelig have noget af sige??? Nogle ideer?
Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:12 #1
feltet orderID er primær nøgle og har datatypen Autonummerering
Avatar billede doc404 Novice
06. juni 2002 - 22:13 #2
OrderId er sandsynligvis en tal variable og du sammenligner med en tekst variable i dit sql statement
Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:19 #3
hvordan er det nu man konverterer en variabel indeholdende em værdi om til et tal???
Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:20 #4
eller omvendt
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:22 #5
Cint = Tal
Cstr = streng
Avatar billede tmceu Praktikant
06. juni 2002 - 22:23 #6
Du kan bruge eks. CInt(værdi), CDbl(værdi) nummeriske eller CStr(værdi) for tekst.
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:23 #7
Nu er det bare at din sql sætning sammenligner orderId med en streng, idet du har sætter '' rundt om variablen. Det skal du ikke gøre
Avatar billede tmceu Praktikant
06. juni 2002 - 22:24 #8
Men hvis OrderID er et nummerisk felt, hjælper det vel ikke meget at konvertere et brugernavn ?
Avatar billede tmceu Praktikant
06. juni 2002 - 22:25 #9
Jeg tror jeg fremover vil kalde mig "godtnok's ekko" :-)
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:31 #10
ahh tmceu, du forklarer det lidt bedre end jeg gør. Jeg er nok lidt doven :-)
Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:49 #11
jeg kan ikke få det til at fungere.....orderID feltet er af datatypen Autonummerering....brugernavn kan fx have værdien 101 . Jeg har altså flg kode:
brugernavn="101"
strSQL = "Update orders set "
strSQL = strSQL & "status= '"& z &"' "
strSQL = strSQL & " where orderID='& brugernavn &'"
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:53 #12
Brugernavn = 101
strSQL = "Update orders set "
strSQL = strSQL & "status= '"& z &"' "
strSQL = strSQL & " where orderID="& brugernavn
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:55 #13
brugernavn = 101
z = "Etellerandet"
din Sql streng kommer så til at se sådan her ud:

Update orders set status='etellerandet' where orderId=101
Avatar billede jesperbaldur Nybegynder
06. juni 2002 - 22:56 #14
super...nu virker det...godtnok---> skriv lige et svar
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:58 #15
Sætningen vil virke såfremt z er en streng og feltet status er en streng og variablen Brugernavn er numerisk.

Hvis vi skulle gå helt ned i detajler, så kunne den også skrives på denne her måde:

strSQL = "Update orders set "
strSQL = strSQL & "status= '"& CStr(z) &"' "
strSQL = strSQL & " where orderID="& CDbl(brugernavn)

Det er dog altid en god idé at tjekke det variablerne indeholder, inden man bygger Sql sætningen.
Avatar billede godtnok Nybegynder
06. juni 2002 - 22:59 #16
Jeg har vist svaret :-)
Avatar billede jesperbaldur Nybegynder
07. juni 2002 - 13:01 #17
ups...det havde jeg ikke set
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