webForumDet fria alternativet

TIPS: Tomsträngskonkatenering

ASP

0 svar · 811 visningar · startad av emission

Medlem sedan dec. 19996 721 inlägg
Frågan#1

Tänkte en gång för alla ta upp ämnet med tomsträngskonkatenering...

konkatenering = sammanslagning (av strängar)

Man ser ofta i detta forum (och på andra liknande ställen) kod som ser ut så här


strSql = "SELECT * FROM table WHERE kolumn=" & strVar[b] & ""[/b]

Den fetmarkerade delen är helt onödig!! En tom sträng är en tom sträng är en tom sträng! Den tillför inget! Det man säger till VB-tolken är att

1. Ta strängen "SELECT * FROM table WHERE kolumn="
2. Lägg till värdet av strVar på slutet
3. Slutligen, lägg till en sak till....nämligen....ingenting

Finns det något tillfälle då tomsträngskonkatenering kan vara värdefullt? Jo, man kan använda det för att tvinga något att anta ett värde. Om man t.ex. har en kolumn i databasen som har NULL som värde, kan man sätta ihop det hämtade värdet med en tom sträng för att på så sätt säkerställa att man åtminstone får en tom sträng. Detta är särskilt nyttigt då man ska skicka in värdet i en funktion som inte gillar NULL-värden, t.ex. Server.HTMLEncode.

strText=Server.HTMLEncode(objRS("Message") [b] & ""[/b])

OBS! Det är egentligen bättre att inte returnera NULL i första läget eller att lösa problemet med en isnull-if-sats (både typkonvertering och konkatenering är svindyra operationer, bakom kulisserna)

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)