Format <> width. The dictionary format is a *default* to use in displays, but has no control over what is stored in the field. One can have an X(8) format and put 3000 characters in the field. The format which actually controls display is the one in the program doing the display ... this is only the default if nothing is specified there. SQL width is entirely independent of that. SQL is upset if you try to read something wider than the width. So, one wants the SQL width at least as wide as the actual data, whatever the source. E.g., you might have a memo field where the default format was X(30) to show just the beginning if you didn't say anything else, but in selected places you would use an editor widget to see the whole thing. But, if you then stick 3000 characters into the field, you need the SQL width to be at least 3000 to avoid an error.