webForumDet fria alternativet

Stäng som klipps av efter 255 tecken

ASP

5 svar · 263 visningar · startad av Mattias Nordin

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

Hej,

Jag använder en textarea med rich text tillägg för att editera information och sedan stoppa in den i en access 2007 databas.

Läser jag sedan ur databasen och försöker skriva ut <%=rs("min_text")%> så visas bara de 255 första tecknen. Vad kan det bero på?

När jag editerar sidan i min textarea så fungerar det. I databasen finns det mer är 255 tecken sparade.

Hur printar jag ut hela meddelandet?

:stud

Medlem sedan dec. 20051 056 inlägg
#2

Provade med att göra en ny sida för att vara säker på att det inte var något annat inblandat. Men fortfarande returneras en sträng på 255 tecken. Fälttypen är av typen memo. Räknar jag antalet tecken som jag försöker läsa så är det 2530 tecken i databasen.

<%'===== G E T   C A S E  ===== 
sql = "SELECT T_staff.staff_name, T_case.status_id, T_case.cust_priority_id, T_case.staff_priority_id, T_case.case_subject, T_case.add_date, T_case.case_description, T_customer.customer_name, T_priority_staff.staff_priority_num, "&_
" T_priority_customer.cust_priority_num, T_status.status_label, T_case.case_id, T_category_1.category_label, T_priority_customer.cust_priority_description "&_
" FROM ((((((T_case LEFT JOIN T_category ON T_case.category_id = T_category.category_id) "&_
" LEFT JOIN T_priority_customer ON T_case.cust_priority_id = T_priority_customer.cust_priority_id) "&_
" LEFT JOIN T_staff ON T_case.staff_id = T_staff.staff_id) "&_
" LEFT JOIN T_customer ON T_case.customer_id = T_customer.customer_id) "&_
" LEFT JOIN T_status ON T_case.status_id = T_status.status_id) "&_
" LEFT JOIN T_priority_staff ON T_case.staff_priority_id = T_priority_staff.staff_priority_id) "&_
" LEFT JOIN T_category AS T_category_1 ON T_case.category_id = T_category_1.category_id "&_
" WHERE (((T_case.case_id)= " &sCaseDbId &")) "&_
" GROUP BY T_staff.staff_name, T_case.staff_priority_id, T_case.status_id, T_case.cust_priority_id, T_case.case_subject, T_case.case_description, T_customer.customer_name, T_priority_staff.staff_priority_num, T_priority_customer.cust_priority_num, "&_
" T_status.status_label, T_case.case_id, T_case.add_date, T_category_1.category_label, T_priority_customer.cust_priority_description "&_
" ORDER BY T_priority_staff.staff_priority_num,  T_priority_customer.cust_priority_num; "
'response.write "<li><b>SELECT list:</b> " &sql 
set rsCustomerCase = ObjCon.execute(sql) %>%>

<hr>
<%=rsCustomerCase("case_description")%>
<hr>

output skrev:

--------------------------------------------------------------------------------
dsjfkl dsajlöfjdash fjkldsahfj kdhsajkf hdsjaklhfj kdsahfjhdsa jkfhjdksla hjfkldshjfk lhdsajkfh jkdsahfj hsdajdsjfkl dsajlöfjdash fjkldsahfj kdhsajkf hdsjaklhfj kdsahfjhdsa jkfhjdksla hjfkldshjfk lhdsajkfh jkdsahfj hsdajdsjfkl dsajlöfjdash fjkldsahfj kdhs
--------------------------------------------------------------------------------

Medlem sedan sep. 2006867 inlägg
#3

Vad är det för datatyp på kolumnen i Access?

Medlem sedan dec. 20051 056 inlägg
#4

memo typ. Och det är bevisligen mer än 255 tecken sparade i databasen :(

Medlem sedan sep. 2006867 inlägg
#5

Sökte på "Access pm" här på wF och @nders tipsar här: http://www.webforum.nu/showthread.php?t=132365&highlight=access+pm

Medlem sedan dec. 20051 056 inlägg
#6

Tack Headbug! Detta var en jobbig en...

Min SQL fråga var väldigt stor och joinade in massor med tabeller. Trodde att jag skulle kunna lösa min uppgift med en fråga. I detta fall så är det nog inte något problem att lopa en dedikerad fråga för att plocka ut memo fältet. Blir nog ändå inte mer än fyra frågor på sidan.

How do I work around the 255 character limitation with Access ADO
Jul 26th, 2001 18:18
Steve Herold, Sam Rosenberg, http://www.deja.com/usenet

In some cases, fields in an Access database will be truncated to 255
characters if accessed through ADO in your web page. This is a
Microsoft bug, and generally occurs if your SQL statement is too
complex (i.e. joins, multiple field returns, etc.)

For example:

select distinct i.ref, i.cdname, i.name, i.address, i.desc from appcd
cd, internet i, Datasource ds where cd.info_cat = 'cat1' and cd.cdname
= i.cdname and cd.cdname = ds.cdname order by i.name

You get the picture. Since this is a fairly complex SQL request, if
any of the fields requested was a Memo field, it would probably be
truncated.

A good workaround is to create a separate select statement for the Memo
fields only, with no joins:

select distinct i.ref, i.foo, i.bar, i.hum from cddoo cd, internet i,
Datasource ds where cd.gor = 'gor2' and cd. = i.cdname and cd.cdname =
ds.cdname order by i.name

set key = rs("ref")

select desc from internet where ref = "key"

Voila! No truncation.

I've been using memo fields in Access with ADO for months without any
problems. Some of this is documented in MS's Knowledge Base...but some
general rules should be
1. When doing an select alway place the memo field as the last field
in the list.
2. When doing an insert or update alway place the memo field as the
last field in the list.

Steve

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