Jag har en tabell, t_forening, som innehåller lite standard fält.
Jag har en tabell till, t_Pref, som har relation via portId och Id, där det finns
två ja/nej-fält.
Jag har inga problem om bägge fälten skall vara ifyllda, men om bara den ena,
eller bägge är ofyllda, då får jag ett error. Jag vet att jag tänker fel men
jag kan inte komma på hur jag skall göra detta smidigt.
sKlient=Request("Klient")
if LEN(sKlient)=0 then
sKlient=False
End IF
sHaveURL=Request("HaveURL")
if LEN(sHaveURL)=0 then
sHaveURL=False
End IF
SQL ="SELECT Id FROM t_Pref WHERE Id =" & Request("ID")
SET RS=Connection.Execute(SQL)
IF RS.EOF THEN
SQL = "INSERT INTO t_Pref(Id,Klient,HaveURL) VALUES (" &Request("ID")& ","
&Request("Klient")& "," &Request("HaveURL")& ")" '& " " & ")"
Connection.Execute(SQL)
ELSE
SQL = "Update t_Pref "
SQL = SQL & " Set Klient =" &sKlient& ",HaveURL=" &sHaveURL& " WHERE Id
= " & RS("ID")
Connection.Execute(SQL)
END IF
OBS jag har inte brytt mig om SQLInjection ännu, det kommer...
Hur jag än gör, så blir det galet, och därför försöker jag nu på ett annat sätt.
Det är inget bra sätt, det blir mer databasanrop än vad som var meningen.
'jag lägger först in ett id med en insert
SQL = "INSERT INTO t_Pref (Id) VALUES (" &RS("portId")& ")"
Connection.Execute(SQL)
'sen tar jag varje fält för sig via en sub
CALL UppdateRec("Klient",Request("Klient"),RS("portId"),"ja/nej")
CALL UppdateRec("HaveURL",Request("HaveURL"),RS("portId"),"ja/nej")
CALL UppdateRec("Free",Request("Free"),RS("portId"),"ja/nej")
CALL UppdateRec("EpostSend",Request("EpostSend"),RS("portId"),"ja/nej")
CALL UppdateRec("Desc",Request("Desc"),RS("portId"),"sText")
'subben ser ut så här
Sub UppdateRec(fName,reqName,sId,typ)
on error resume next
if LEN(reqName)>0 then
SELECT CASE typ
CASE "sText"
SQL="Update t_Pref SET " &fName& " = '" &reqName& "' WHERE Id = " &sId
CASE "tal","ja/nej"
SQL="Update t_Pref SET " &fName& " = " &reqName& " WHERE Id = " &sId
END SELECT
connection.Execute(SQL),intRecEff,128
End Sub
Ny fungerar nästan allt utom när jag skall lägga till text i Desc, där det är
tänkt att det skulle fixa sig i SELECT CASE.
Jag får följande error:
Error #-2147217900
Error desc. -> Syntaxfel i UPDATE-uttryck.
'Utskrivna SQLer ser ut så här:
Update t_Pref SET HaveURL = True WHERE Id = 74
Update t_Pref SET EpostSend = True WHERE Id = 74
Update t_Pref SET Desc = 'sdf' WHERE Id = 74
Database Errors Occured
Error #-2147217900
Error desc. -> Syntaxfel i UPDATE-uttryck.
JAg kan inte se något fel så jag vore väldigt tacksam för lite hjälp...
Nej, du kan använda din första kod med lite förändringar.
I ASP-koden ska du skriva de booleska värdena som strängar, dvs "False" istället för False.
Använd variablerna du sätter, inte direkt request i sql-frågan, både i insert och update. Använder du request direkt där spelar det ju ingen som helst roll att du sätter variabler först.
133 ms totalt · 3 externa anrop · v20260731065814-full.b746b907