How are you retreiving the back-end data? With a updatable Remote View? I have had trouble with RVs on the backend. They do not seem to pass .NULL. and they pad character fields with trailing blanks. Therefore a varchar field becomes the maximum field width even with only one character.
Try using SQL passthrough, that works the way its supposed to. I have gotten away from using RVs with updates.
Software engineers are trained to read and understand code; they are not trained in mind reading. Document the purpose not just the functionality.