我用的delphi+sqlserver,在设计数据库时,有些字段是char型,比如说定义的长度是6个字节,而我只输入3个字节,那么在存储的时候sqlserver默认就会在该字段后自动补齐于下的3个空格,而反映到数据感知组件上(比如说DBEdit)时,DBEdit显示的也有空格,不知道这个空格在显示时如何去掉?

解决方案 »

  1.   

    在DataSetFieldGetText事件中写:Text := Trim(Sender.Value);
      

  2.   

    那这样的字段很多,每一个dbedit控件都要写一个这样的事件,那我会疯的!
      

  3.   

    每一个dbedit控件都要写一个这样的事件
    ---------------------------------
    这个东东不是写在DBEdit里的....另:
    可以写成一个过程:
    procedure TForm1.SomeStringFieldGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      Text := Trim(Sender.Value);
    end;然后把每个字段的GetText事件指向这个过程就行了。
    我不信你复制Text := Trim(Sender.Value);这句代码也能疯
      

  4.   

    改数据库当然可以,我改用的int型,问题是我们经理他说他们一向用的char型,而且不怎么用varchar,说会影响效率.虽然用int型暂时解决了问题,但我还是非常想知道他是怎么消除数据库char字段里多于的空格的
          谢谢楼上的这位兄弟,我用的是D7,双击DBEdit出现字段编辑器,随便选中一个字段,在左边的对象观察器里就一个popupMemu事件,没有出现SetText和GetText事件,怪了
      

  5.   

    取出的时候就把空格去掉
    select trim(aaa) from table
      

  6.   

    SQL Server 没有trim函数,应该是rtrim()
      

  7.   

    Select Rtrim(Ltrim()) From Tablename
      

  8.   

    让我感到奇怪的是前面我说的问题消失了,就是说DBEdit里显示char字段没有出现空格了,不真的不理解啊,最后我把以前用int类型的都换回了char字段,都没有出现空格,不理解!!!