Avatar billede misbruger Nybegynder
09. marts 2004 - 09:27 Der er 15 kommentarer og
1 løsning

varchar (8000) bliver truncated

Jeg har en tabel hvor der er en varchar(8000)
Når jeg henter den ud gennem en SP i f.eks. QA, bliver feltet truncated til en varchar(8000)

Det er ligegyldigt om jeg declarer feltet i min SP som varchar(8000) output eller ej.

Hvordan kan det være at jeg ikke kan få hele texten ud?
Er der nogen speciel årsag til det?

Thanx!
Avatar billede misbruger Nybegynder
09. marts 2004 - 09:28 #1
Undskyld...

Rettelse:
"bliver feltet truncated til en varchar(255)"
Avatar billede venne Nybegynder
09. marts 2004 - 09:31 #2
QA har en begrænsning på hvor brede kolonner den viser. Se under Tools - Options - Results.

Derudover burde der ikke være nogen begrænsning.
Avatar billede trer Nybegynder
09. marts 2004 - 09:31 #3
Det er fordi Query Analyzer har en option der bestemmer hvor lange output felter der skal vises.

Du finder den i menuen TOOLS, OPTIONS, RESULTS - der sætter du MAXIMUM CHARACTERS PER COLUMNS
Avatar billede misbruger Nybegynder
09. marts 2004 - 09:37 #4
Ok, men problemet er umiddelbart også i min app.

App. er i ASP.NET, og hvis jeg prøver at binde mit DataTablet (ASP.NET default data handler) direkte med et datagrid, bliver texten også truncated.....?
Avatar billede trer Nybegynder
09. marts 2004 - 09:39 #5
Du har en sikkert en tilsvarende option du kan sætte i din asp kode...
Avatar billede misbruger Nybegynder
09. marts 2004 - 09:40 #6
Endvidere så hjalp det ikke at sætte "Maximum characters per columns" = 8192
Avatar billede misbruger Nybegynder
09. marts 2004 - 09:48 #7
...altså i QS, feltet bliver stadig vist som 255
Avatar billede trer Nybegynder
09. marts 2004 - 09:50 #8
Max er 8000 ikke 8192 - og du har husket at udvide din grid til at vise samtlige data?

Men check lige med en SELECT LEN(kolonne) FROM TABEL at der reelt er mere en 255 tegn i kolonnen...  Det hjælper jo ikke hvis dine data er trunkeret ved indsættelse...
Avatar billede arne_v Ekspert
09. marts 2004 - 09:53 #9
Husk også at 8000 er max. for VARCHAR, men at max. for hele row'en er 8060 !
Avatar billede misbruger Nybegynder
09. marts 2004 - 09:59 #10
Hvis jeg tager feltet i Enterprise Manager, så kan jeg viser den hele texten

I QS bliver hele texten ikke vist, jeg kan se det ved at det stopper midt i et ord.

...og det er ikke fordi jeg ikke expander colonnen i visningen :)

SELECT LEN(FieldText) AS Text FROM PageText WHERE (Indeks = 3726)
Returnere 1294 (f.eks)
Avatar billede venne Nybegynder
09. marts 2004 - 10:05 #11
Sker det kun når du bruger din sp, eller også hvis du laver en select direkte i QA?
Avatar billede misbruger Nybegynder
09. marts 2004 - 10:07 #12
hehe har fundet fejlen :(

I min stored procedure, hentede jeg texten fra en tabel, men såfremt værdien er null, henter jeg texten fra en anden.

Jeg havde umiddelbart ikke fået saved den ene tabel, så der stod feltet til at være en varchar(255)

I skal have tak for vejledningen :)

Ang. points, så kan I dele i porten (mangler svar fra arne & venne)
Avatar billede arne_v Ekspert
09. marts 2004 - 10:13 #13
Jeg kan vist ikke tilkomme point i denne omgang så jeg frafalder
Avatar billede venne Nybegynder
09. marts 2004 - 10:35 #14
Jeg springer også over - det var jo noget helt andet, som du selv fandt ud af.
Avatar billede misbruger Nybegynder
09. marts 2004 - 10:45 #15
Så forfalder de trer

Tak skal i alligevel have.
Avatar billede trer Nybegynder
09. marts 2004 - 13:31 #16
Strengt taget burde jeg jo heller ikke have points... men det er jo så lidt sent at sige :-)
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