Avatar billede matthiasmarkussen Nybegynder
19. juli 2006 - 15:18 Der er 7 kommentarer

Skal der her bruges løkker? og i så fald hvordan?

Jeg har en formular med bla. 6 x 2 felter hvor man indtaster stk og reservedel/varenummer eksempelvis

2 x 1111
2 x 3333
4 x 4444
5 x 6666
6 x 2222
1 x 1234

Felterne står som standard til 0 x "blank"!

Når dette er indtastes skulle man trække X stk fra den aktuelle beholdning af den pågældende vare...

Det virker fint for "felt 0" (det første), ved brug af

SQLstmt = "UPDATE lager_aktuelbeholdning
SET antal  = antal - " & request.form("antal0") & "
WHERE varenummer = '" & request.form("res0") & "'"

eftersom der kun er 6 felter tænkte jeg at en meget dum /let løsning ville være at sætte update 6 gange i træk dvs :

SQLstmt = "UPDATE lager_aktuelbeholdning
SET antal  = antal - " & request.form("antal0") & "
WHERE varenummer = '" & request.form("res0") & "'"

SQLstmt = "UPDATE lager_aktuelbeholdning
SET antal  = antal - " & request.form("antal1") & "
WHERE varenummer = '" & request.form("res1") & "'"

SQLstmt = "UPDATE lager_aktuelbeholdning
SET antal  = antal - " & request.form("antal2") & "
WHERE varenummer = '" & request.form("res2") & "'"

Osv osv.....

Men så opdateres kun den sidste indtastning - med andre ord kun et varenummer.
hvordan laver man lige en løkke (mine løkker er der gået knuder på indtil videre hehe) der kører det igennem, og gerne tager højde for hvis der eksemplvis ikke indtastes en fuld formular

2 x 1111
3 x 2222
0 x
0 x
0 x
0 x

Takker.... det er måske såre simpelt - men jeg synes ikke lige bogen foran mig hjælper synderligt :-)
Avatar billede teepee Nybegynder
19. juli 2006 - 22:42 #1
Hvad bruger du ASP, T-SQL eller hvad? Du kan jo altså godt benytte samme ASP connection til at fyre flere statements af mellem dine SQLstmt tildelinger hvis du ikke vil bruge en løkke.
Avatar billede matthiasmarkussen Nybegynder
20. juli 2006 - 08:07 #2
Ja, bruger asp - har ikke det fjerneste mod at bruge løkke, kan bare ikke få kontrueret en der virker :-)
Avatar billede matthiasmarkussen Nybegynder
20. juli 2006 - 10:24 #3
Er bestemt ikke en haj til skidtet, men hvis jeg laver noget i den stil:

if request.form("antal0") > 0 then
SQLstmt = "UPDATE lager_aktuelbeholdning SET antal  = antal - " & request.form("antal0") & " WHERE varenummer = '" & request.form("res0") & "'"

else if request.form("antal1") > 0 then
SQLstmt = "UPDATE lager_aktuelbeholdning SET antal  = antal - " & request.form("antal1") & " WHERE varenummer = '" & request.form("res1") & "'"

else
response.write "blablabla"
end if
end if

Så er det stadig kun den ene der opdateres....
Avatar billede teepee Nybegynder
20. juli 2006 - 10:29 #4
du skal execute mellem dine variabeltildelinger
Avatar billede matthiasmarkussen Nybegynder
20. juli 2006 - 10:32 #5
Du må meget undskylde - men hva menes med det :-)
Avatar billede matthiasmarkussen Nybegynder
20. juli 2006 - 10:46 #6
altså på en eller anden måde med Set rs=conn.Execute(SQLstmt)?
(fandt lidt på w3schools)
Avatar billede matthiasmarkussen Nybegynder
20. juli 2006 - 10:58 #7
Hiphurra.... fik det til at virke ved

if request.form("antal0") > 0 then
SQLstmt1 = "UPDATE lager_aktuelbeholdning SET antal  = antal - " & request.form("antal0") & " WHERE varenummer = '" & request.form("res0") & "'"
Set rs1=conn.Execute(SQLstmt1)
else
response.write ""
end if

benyttet x antal gange
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
Computerworld tilbyder specialiserede kurser i database-management

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