先建立了一个MSTDataModule,然后让一个ADOdataset跟一个基表(SQL server7.0)相连,让DataSetProvider跟这个ADODataSet相连。
  客户端使用ClientDataSet跟MTSDataModule中的那个数据集(基表)对应,客户端提供对基表的显示、修改操作。
  修改的时候碰到一个奇怪的问题:如果一个数据项是Varchar(6)类型,修改后该数据项的值即使小于6个字符,经过更新(ApplyUpdates)后,数据库中存放的却是永远是6个字符的串,不足6个的后面则为空字符。
  请问这是怎么回事,如何解决呢?   

解决方案 »

  1.   

    Varchar类型不该这样啊,可能是因为ADODataSet补齐的吧
      

  2.   

    我看過討論
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=2277732
      

  3.   

    看了这个讨论了。最后绕路走了,还是没有从根本上解决。可惜SQL Server没有Oracle好,可以自动删除空格。
      

  4.   

    MS_SQL数据库上击右键,选择属性,选择选项页,选中“自动收缩(N)”就可以了!!!