webForumDet fria alternativet

MS sql 2005: varChar(max): Försöker hämta data från ett varChar(max).

ASP

3 svar · 559 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hej, jag försöker lagra websidor in ett fält i en databas. Sidorna kan bli långa och därför har jag valt datatypen varChar(max) i databasen. När jag försöker hämta ut data som ligger i det fältet så fungerar det inte:

sql = "SELECT page_url, created_date, page_full_source FROM T_page WHERE page_id = " &iPageId 
response.write "<hr>117: " &sql  &"<hr>"
set rsPage = objCon.execute(sql)
%>
<li> <%=rsPage("page_url")%>
<li> <%=rsPage("created_date")%>
<li> "<%=rsPage("page_full_source")%>"

Output...

http://google.se/
2008-11-16 12:13:00
""

Byter jag datatyp till varChar(5000) så fungerar koden ovan. Vad gör jag för fel? Visst måste det gå att hämta fler än 8000 tecken?

Medlem sedan mars 20041 505 inlägg
#2

Vad använder du för Provider, dvs. hur ser din ConnectionString ut?

Många kör med "Driver={SQL Server}" och då används MSDASQL (OLE DB Provider for ODBC) tillsammans med någon gammal ODBC-driver, det är inte att föredra.
SQL Server 2005 introducerar nya "max-typer": varchar(max), char(max) mfl. och jag tror inte ODBC fixar detta.

Eftersom ADO i grunden faktiskt jobbar med just OLEDB så rekommenderar jag att köra den nya OLEDB-providern SQL Server Native Client som skeppas med SQL 2005 och nyare.
Här är en ConnectionString med SQL-login för SQL Server 2005 som jag har kört ett tag, funkar perfekt med varchar(max):

Provider=SQLNCLI;Network Address=[B]server[/B];Initial Catalog=[B]databas[/B];User ID=[B]användare[/B];Password=[B]lösenord[/B];Connect Timeout=10;DataTypeCompatibility=80;Current Language=Svenska;
Medlem sedan dec. 20051 056 inlägg
#3

Min connection string ser ut så här:

ObjCon.ConnectionString = "Driver={SQL Native Client}; Server=matlab\sqlexpress; Database=seo; Uid=sys_sql;Pwd=hemligt;"
Medlem sedan dec. 20051 056 inlägg
#4

Bekräftar härmed att proxy verkar ha rätt. Ändrar jag driver till provider=sqlncli så fungerar det .

Tack för din expertese (hmm stavas det så?) :)

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