我在Delphi6中使用ADOQuery的Post方式存储数据到数据库的NVarchar字段类型中,发现存进去后会自动补空格,比如我存的是“AAA”,那么存到数据库中会自动变成"AAA      ",后面一堆空格,这个问题请哪位告诉告诉我怎么解决??注意:
1、请不要告诉我不用Post或者不用Nvarchar字段而用Varchar字段,我有不得已的原因必须这么作
2、请不要告诉我使用Delphi7,我知道Delphi7没有这个问题,但我不能用Delphi7
3、请不要告诉我取出来的时候再去Trim,我的这种字段非常多,每个字段Trim简直无法忍受请高手帮助解决,谢谢

解决方案 »

  1.   

    又不能用Varchar类型,又不能Trim;如果数据库中字段为Char类型还是会自动补空格的;
    LZ到底想怎么样?
      

  2.   

    Nvarchar不会自动填充空格符,定长char类型才是不足长度时自动用空格填充。
    那说明是你前台提交时候把空格写进去的,可以先检查一下你的表是否有触发器
    对其进行操作,前台开发代码是否有问题? 进行单步调试一下看赋值时的字符串
    内容。
      

  3.   

    同意WangZWang的解说,揭帖吧。
      

  4.   

    nvarchar没问题的吧,没碰到过这样的问题,如WangZWang所说试试看
      

  5.   

    打开SQL的跟踪(事件查看器),看发住SQL服务器是些什么SQL语句.
      

  6.   

    怎么又问了一遍,不是告诉你了吗,要不你就换成varchar,要是用采用三层的话可以考虑把DataSetProvider中ResolveToDataSet设成True,牺牲点效率,也能解决你的问题。这个是D6的bug,非常常见的问题。
      

  7.   

    WangZWang(先来) ( ) 信誉:100    Blog  2006-8-31 18:45:01  得分: 0  
      
    Nvarchar不会自动填充空格符,定长char类型才是不足长度时自动用空格填充。
    那说明是你前台提交时候把空格写进去的,可以先检查一下你的表是否有触发器
    对其进行操作,前台开发代码是否有问题? 进行单步调试一下看赋值时的字符串
    内容。都说了,我是用的D6,D7不会有这个问题  
    DunDao(Foolish) ( ) 信誉:100    Blog  2006-9-1 16:41:54  得分: 0  
      
    怎么又问了一遍,不是告诉你了吗,要不你就换成varchar,要是用采用三层的话可以考虑把DataSetProvider中ResolveToDataSet设成True,牺牲点效率,也能解决你的问题。这个是D6的bug,非常常见的问题。就是因为没有办法用varchar阿,我的数据库里面存的是多种语言的东西,有中文、有日文,必须用unicode,至于三层,我们没有使用三层