Jyske Bank er rykket ind i Glaskuben på Kalvebod Brygge, et markant byggeri i hjertet af København. Knap 1.000 arbejder her, heraf 200 i IT, med nye rammer for samarbejde, innovation og udvikling.
For Each Item In Request.Form Response.Write Item & ": " & Request.Form(Item) & "<br>" Next
Item er nøglen til formfeltet i Request.Form collection-objektet (dvs. en streng) og den har ikke nogen egenskaber, derfor fejler koden som w13 foreslog.
Jeg mener stadig, det skal være Item.Name, men tror du har ret i Request.Form(Item). Hvis ikke Request.Form(Item) virker, skal det være Request.Form(Item.Name)
Ja, vi kan jo kun tage udgangspunkt i det du viser os, så om den skal se anderledes ud er jo svært at gætte... ;-)
Men bort set fra det, kan jeg se du skal være overordentlig opmærksom på apostroffer, for det lader til at være en lille svaghed du har (se efter ART=) ;-)
loConn.Execute "UPDATE Landinger SET " & kstype & "='" & ksantal & "' WHERE ART='" & Hart &"' AND Havn='" & Havn & "'"
Ja, du kan bruge ADODB.Command i stedet, da du ikke skal håndtere felternes typer på samme måde som med traditionel strengsammensætning af SQL-sætninger. Command-objektet er også mere sikker mod SQL-injections (som din SQL er yderst sårbar overfor).
Et eksempel på brugen af Command (jeg antager at længden på dine strenge er max 50 tegn, det skal du naturligvis selv korrigere til det rigtige :-)):
set cmd = Server.CreateObject("ADODB.Command") set cmd.ActiveConnection = ditConnectionObjekt cmd.CommandType = adCmdText cmd.CommandText = "UPDATE Landinger SET [" & kstype & "] = ? WHERE ART = ? AND Havn = ?" cmd.Parameters.Append cmd.CreateParameter("@kstype", adVarChar, adParamInput, 50, ksantal) cmd.Parameters.Append cmd.CreateParameter("@art", adVarChar, adParamInput, 50, hart) cmd.Parameters.Append cmd.CreateParameter("@havn", adVarChar, adParamInput, 50, havn) call cmd.Execute()
Hvis du skal kunne bruge ADO-konstanterne som jeg har gjort her, skal du enten inkludere nedenstående META-tag i den ASP-fil hvor du bruger konstanterne, eller i toppen af din global.asa (så skal du ikke tænke på det andre steder i den applikation):
Jeg vil anbefale dig at google lige på ADODB.Command, der findes mange kilder som omhandler brugen af command-objeket i forbindelse med interaktion med databaser. Evt. tage en tur omkring MSDN og kigge på referencemanualerne til ADO.
Det er en kendt sag at Command-objektet er mere sikkert end den meget brugte strengsammensætningsmetode og som du kan se fra mit eksempel ovenfor, er der ikke en eneste apostrof involveret i at opdatere dine data...
Stengsammensætning er en metode som (efter min mening) kun bør benyttes i statiske (dvs. der ikke ingår variable i SQL-sætningen) eller meget lukkede scenarier (altså hvor der ikke er noget direkte brugerinput involveret i din SQL-sætning).
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.