The memo field can hold various type of data including html, rtf, and other formated text. Since the DBGrid has no text formating abilities it would unwise to allow something to show that makes no sense to the end user by default. That is why you have to make a conscious decision to show data on a dbgrid. It is better that way, making sure that you have full control over the result instead of getting unwanted results.
So can a varchar, I don't see the difference except that a memo can be of unlimited size.
Most databases have a separate blob type for handling data other than text and they have a type for for big text, i.e. PostreSQL has the text type.
In most RDBMS the text type at it's base is a blob, but a blob meant for storing text.
So I really disagree with the whole [MEMO] thing and think the DBgrid should handle it in a better way, The Lazarus DBgrid is already considerably better than the Delphi DBgrid, so why
keep the [MEMO] behavior from the stock delphi DBgrid? The lazarus DBgrid shows booleans as checkboxes automaticly, why not [MEMO]
Just my opinion on the matter.
Later,
Snorkel