Avatar billede ahjdp1 Nybegynder
21. oktober 2008 - 09:36 Der er 5 kommentarer og
1 løsning

Felter vil ikke udskrives fra MS SQL

Hej,

Jeg er skiftet fra Access til MS SQL og har et simpelt udtræk af en post i databasen. Når jeg når til at udskrive feltet "Description" sker der ikke mere, der er indhold i dette felt og de resterende. Er der nogen der har løsningen på den gåde.

Set rs = Conn.Execute("SELECT * From Merchants WHERE id = " & Request.Querystring("id") & "")
                    Response.Write rs("MerchantName") & "<br />"
                    Response.Write rs("ValidFrom") & "<br />"
                    Response.Write rs("ValidTo") & "<br />"
                    Response.Write rs("BranchID") & "<br />"
                    Response.Write rs("AccountingID") & "<br />"
                    Response.Write rs("Description") & "<br />"
                    Response.Write rs("logo") & "<br />"
                    Response.Write rs("url") & "<br />"
                    Response.Write rs("EPI") & "<br />"
Set rs = Nothing
Avatar billede fennec Nybegynder
21. oktober 2008 - 09:41 #1
Det er et "by design" problem som MS har lavet. Har desværre ikke et link til forklaringen.

Løsningen er at selecte dine nText felter til sidst på listen.

Forkert:
select id..., Description, Logo, url, EPI from ...

Rigtig:
select id..., Logo, url, EPI, Description from ...
Avatar billede fennec Nybegynder
21. oktober 2008 - 09:42 #2
... Det kan dog være du stadig oplaver problemet, selv om du sætter alle dine nText felter sidst på select listen. I det tilfælde bliver du nød til at gamme alle værdier i et array også bruge det i stedet.
Avatar billede fennec Nybegynder
21. oktober 2008 - 09:43 #3
Hvis du bruger MS-SQL 2005, så ændre dine nText felter til nVarchar(MAX). Så skulle du heller ikke opleve problemet.
Avatar billede erikjacobsen Ekspert
21. oktober 2008 - 09:56 #4
Man skal normalt tænke over 3 ting.

1) Lave sin SELECT med feltnavne (og ikke "*"), og tage de store felter (ntext og lignende) til sidst
2) Aflæse dem i samme rækkefølge som angivet i SELECT-en
3) Kun aflæse dem een gang - dvs. man typisk skal putte værdierne i variabler
Avatar billede ahjdp1 Nybegynder
21. oktober 2008 - 09:58 #5
Felterne er allerede nVarchar(MAX), men det hjalp at sætte nVarchar-felterne til sidst.

Tak for hjælpen. Smider du lige et svar.
Avatar billede fennec Nybegynder
21. oktober 2008 - 10:23 #6
Troede ellers de havde løst problemet med MAX typen, men det har de så åbentbart ikke :(

.o) <-- One Eyed Jack
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

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