webForumDet fria alternativet

Fel med tecken från SQL-databas...

ASP

2 svar · 164 visningar · startad av brw

Medlem sedan juli 2000619 inlägg
Frågan#1

Har lite funderingar om kolumner i en tabell i enSQL-databas.

Jag har gjort en nyhetsfunktion och använder 4 kolumner

1 för rubrik
1 för ingress
1 för datum
1 för texten

Problemet jag får uppstår när använder mig utav fältet "char" och ställer in att t ex ingressen skall vara på 400 tecken. Om den inte är på 400 tecken och jag sparar en som bara är 200 tecken så fungerar det utmärkt.

Men det är när jag har gjort redigeringsfunktionen och plockar upp det i ett formulär så blir det 200 "mellanslag" efter sista tecknet i ingressen så att det kommer upp i 400...
Använder jag fel fält eller finns det någon lösning på det?
Det är likadant för rubrikfältet där jag använder mig av max 100 tecken så skapas det massa tomma tecken när jag skall redigera.

------------------
Ingenting är omöjligt, bara en utmaning.

Medlem sedan juni 200032 967 inlägg
#2

om det är microsoft sql server du använder så är 'this behaviour is by design', som de så fint brukar uttrcyka det.

du skall använda varchar, då blir fältlängden så lång som innehållet.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

Medlem sedan dec. 19996 721 inlägg
#3

Ja, det är så char ska funka, och det som skiljer char från varchar. Anledningen till att char funkar som det gör är att databasen då kan reservera ett visst minnes-/lagringsutrymme åt ett char-fält i databasen, men för varchar så måste både värdet och fältlängden lagras, uppdateras och kollas vid SELECT.

Dessutom finns det en hel del system som alltid utgår ifrån att ett värde är t.ex. 400 tecken långt.

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