| är bara ett problem om du använder en accessdatabas.
Ett sätt är attt ersätta det med chr(124)
dvs om du har
sql = "insert into x values('|')"
så skall det översättas till
sql = "insert into x values('' & chr(124) & '')"
12 svar · 299 visningar · startad av Addeladde
Vad ska jag göra. Den tas ju bort i en funktion för att förhindra sql-injection men kan man lösa det på något sätt?
| är bara ett problem om du använder en accessdatabas.
Ett sätt är attt ersätta det med chr(124)
dvs om du har
sql = "insert into x values('|')"
så skall det översättas till
sql = "insert into x values('' & chr(124) & '')"
Men kan man lägga in det där i funktionen fixaTecken?
Det där fungerar ju sedan även med SQL-server eller hur?
Nej.
Alltså spelar det någon roll om jag kör den funktionen innan jag kör in det i databasen? vad är det som blir fel?
Ja, om du använder Access så kan det bli fel. Jag har publicerat en länk till en artikel som förklarar varför. Kanske ett drygt år tillbaka.
LarsG skrev:
Ja, om du använder Access så kan det bli fel. Jag har publicerat en länk till en artikel som förklarar varför. Kanske ett drygt år tillbaka.
Jag menade vad är det som blir fel om man kör funktionen
fixaTecken = replace(fixaTecken, "|", "' & chr(124) & '")
när man gör en insert i en sql-databas?
Just nu så gör jag så här för att ta bort tecknet '
sfix = Replace(Trim(sfix), "'", "''")
Kan man göra så här istället?
sfix = Replace(Trim(sfix), "'", "' & chr(39) & '")
fixaTecken = replace(fixaTecken, "|", "' + char(124) + '")
[tjat, med substans]
Eller, ännu hellre, parametriserade frågor :)
[/tjat, med substans]