Vinnaren i pepparkakshustävlingen!
2007-10-23, 15:55
  #1
Medlem
alvers avatar
Hej,

jag har gjort en blogg åt mig själv där jag skickar in nyheter i en accessdatabas. Läsare kan sedan kommentera nyheterna och vad jag ville skriva var en fråga som returnerade nyheterna samt hur många kommentarer de har kopplade till sig (självklart de som har noll kommentarer också vilket gjorde det lite svårare).

Jag skrev frågan

Kod:
SELECT news.id, news.headline, news.published, news.content, Count(comments.comment_id) AS CountComments
FROM news LEFT JOIN comments ON news.id=comments.comment_id
GROUP BY news.published, news.id, news.headline, news.content
ORDER BY news.published DESC;

Vad som inte fungerar dock är att den kapar alla nyheter i news.content efter 255 tecken, oavsett om de är 300 eller 3452364236 långa. Annars fungerar det som det ska. Någon som har en idé om vad som orsakar kapningen?
Citera
2007-10-25, 10:55
  #2
Medlem
Citat:
Ursprungligen postat av alver
Vad som inte fungerar dock är att den kapar alla nyheter i news.content efter 255 tecken, oavsett om de är 300 eller 3452364236 långa. Annars fungerar det som det ska. Någon som har en idé om vad som orsakar kapningen?

Det låter snarare som om du har valt fel datatyp till fältet news.content i databasen. 255 är maximalt vad du kan spara ner i typen "Text". Vill du ha längre texter än så får du använda "Memo"

Dessutom tycker jag du krånglar till det med SQL-frågan, att gruppera bara för att räkna en siffra på det sättet känns lite overkill och kostar mer i prestanda. Nu ska jag inte svära på att denna fråga funkar i Access då jag bara jobbar med SQL-server, men prova denna istället


Kod:
SELECT 
news.id, 
news.headline, 
news.published, 
news.content, 
CountComments = (SELECT Count(*) FROM comments WHERE comment_id = news.id)
FROM news 
ORDER BY news.published DESC;
Citera
2007-10-27, 01:33
  #3
Medlem
alvers avatar
Det har inte med datatypen att göra, jag kör för övrigt redan med memo.

Vad som gör det är en begränsning i access: (hittade efter lite googlande).
"Number of characters for a parameter in a parameter query 255".

Tack för ditt svar dock, ska testa din fråga senare.
Citera
2008-01-18, 05:13
  #4
Medlem
Citat:
Ursprungligen postat av alver
Det har inte med datatypen att göra, jag kör för övrigt redan med memo.

Vad som gör det är en begränsning i access: (hittade efter lite googlande).
"Number of characters for a parameter in a parameter query 255".

Tack för ditt svar dock, ska testa din fråga senare.

Det är väl inte en parameter som klipps utan resultatet ?
Access borde inte ha en begränsning på 256 i resultatet.
Om du har felet i MSSQLs verktyg så går det att ändra standardbegränsningen som jag tror är 256.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback