Quotes in een query
Het probleem: woorden met quotes in een database opslaan gaat mis. Bijvoorbeeld het woord fotos toevoegen gaat goed, het woord foto's toevoegen geeft een fout.
Dit gebeurt wanneer een gegeven dat een gebruiker invoert deel uit gaat maken van een query die de informatie wegschrijft in een database.
Hoe dit op te lossen
Door de quotes in het gegeven te verdubbelen zal de fout niet langer optreden. Dit kan eenvoudig gebeuren met het Replace commando.
strVariabele = "de foto's"
strVariabele = Replace(strVariabele, "'", "''")
"'" = een enkele quote binnen aanhalingstekens.
"''" = twee enkele quotes binnen aanhalingstekens. Het replace commando vervangt zo de enkele-quote door 2 keer een enkele quote.
Nog een voorbeeld
Onderstaand voorbeeld gaat er van uit dat een bezoeker zijn naam typt in een formulier en dat er een geldige query moet worden gemaakt om die naam op te kunnen slaan in een database.
'// Bepalen wat de bezoeker heeft ingetypt in een veld in een formulier.
strFormulierveld = Request.Form("Achternaam")
'// Eventuele quotes verdubbelen opdat ze in een query geldig zijn.
strFormulierveld = Replace(strFormulierveld, "'", "''")
Nu kan het gegeven worden gecombineerd met een query, bijvoorbeeld:
strSQL = "INSERT INTO tbl_Bezoekers (Achternaam) Values ('" & strFormulierveld & "')"
Deze query kan zonder problemen worden uitgevoerd, ook wanneer de bezoeker quotes in zijn/haar achternaam heeft staan.
|