Avatar billede slash Nybegynder
24. oktober 2002 - 14:20 Der er 3 kommentarer og
1 løsning

Multiple text felter i samme tabel

Mojns.

Har hørt at flere text felter i én og samme tabel kan give problemer! Som sagt har jeg kun hørt flygtigt om det - men jeg kan ikke finde steder på nettet/bøger der siger at det giver problemer at fx. have 9 text felter i én tabel!! Hvad er jeres erfaringer med dette?? Kan det give problemer i forbindelse med selects, inserts, updates (al select, insert, update foregår fra .asp)??

Sagen er nemlig den, at der i min web-applikation findes 9 textarea's hvori brugere kan indtaste data! Dataene i én textarea kan snildt komme op på at indeholde 5000-15000 tegn - og idet SQL-server har en begrænsning på 8 K i row size er det noget fnidder fnadder!

Jeg er godt klar over at man kan begynde at kigge på designet af tabellerne i systemet, men dette vil jeg helst undgå idet komplektisteten i systemet er stor!
Avatar billede pierrehusted Nybegynder
24. oktober 2002 - 15:43 #1
Jeg mener ikke at SQL-Server i sig selv har nogen problemer med TEXT felterne.

Jeg har først oplevet problemer når jeg kombinerede SQL-Server med IIS og ASP.
Det jeg har oplevet er at TEXT felter skal være til sidst i RecordSettet og kun kan addresseres EEN gang i ASP.

D.v.s. at hvis du har en tabel der består af :

felt1 int
felt2 TEXT
felt3 int
felt4 varchar(300)
felt5 TEXT

Så skal du hente felterne sådan :

Select felt1, felt3, felt4, felt2, felt5 From tabel

Og så snart du har dannet RecordSettet (f.eks. ved navn RS) i ASP skal du lægge RS("felt2") og RS("felt5") over i nogle variabler og så bruge dem.



MS-SQL 2000 har også stadig nogle gamle fejl omkring VarChar. På et tidspunkt var største størrelse på VarChar 255 tegn. Så i en Eksport til en textfil i en DTS pakke tager kun de første 255 tegn med fra en VarChar - selv om feltet er større og indeholder mere data.
Sådan er der nok mangle underlige gamle fejl i MS-SQL
Avatar billede slash Nybegynder
24. oktober 2002 - 16:09 #2
Din betragtning med at TEXT felterne skal være sidst i recordsættet har jeg oxo hørt!

Jeg vil lave en test med dit forslag, specielt mht. at lægge recordsæt-felterne over i variabler - jeg bruger dem normalt direkte!

Jeg har snuset i min MSDN og kigget i SQL BOL, og der har jeg læst at hvis der ikke er mere end 8000 bytes i hvert TEXT felt kan man stadig lave normale SELECT, INSERT OG UPDATE operationer - uden man skal til at anvende READTEXT, WRITETEXT m.m. - er dette korrekt forstået?
Avatar billede pierrehusted Nybegynder
24. oktober 2002 - 16:29 #3
Det kan godt være...

Jeg har dog aldrig haft problemer med INSERT og UPDATE - og hvis jeg har gjort som ovenfor heller ikke med SELECT.

Men ja, der er mange underlige ting omkring 8000 tegn - nogle af dem mere dokumenterede end andre.
Avatar billede slash Nybegynder
25. oktober 2002 - 12:59 #4
Umiddelbart ser det ud til at virke OK! Dog bliver det spændende når applikationen sættes i produktion! Der kommer til at skulle arbejdes med store mængder data.. afhængig af antallet af brugere kan DB'en  wrost case vokse med små 4 GB :-) *HYDR*
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester