在数据库编程中,A字段为关键字,根据A来判断B字段的变化,且把变化修改到数据库中。
我运用如下语句,对英文和数字的改变都能达到如期的效果,可是但B字段改为中文时,数据未能如期更改,为何?
如果语句有问题,那对英文和数字的改变也不应该成立才对啊。
str0 string;
str1 string;
query1.close;
query1.sql.clear;
query1.SQL.Add('update LIHAO.LIHAO set B='''+str1+'''');
query1.SQL.Add('where A='''+str0+'''');
query1.ExecSQL ;请帮助我!

解决方案 »

  1.   

    如果用的是char的字符串类型的话有的时候会多出空格来,建议用varchar或是用trim函数将空格过滤掉
      

  2.   

    我用的是oracle数据库,
    字段名称就是A,B
    在oracle数据库里定义这两个字段为:
    A varchar2(100),
    B varchar2(100);
    现在我把命令改成:
        query1.SQL.Add('update LIHAO.LIHAO set D= :D');
        query1.SQL.Add('where A= :A');
        query1.ParamByName('A').asstring:=str0;
        query1.ParamByName('D').asstring:=str3;
    那么中文可以保留到数据库里去了,
    但是有一个奇怪的现象就是:
    对其他的中文文字几乎都可以保留到数据库里,
    但我随便输了一大串中文,
    却发现"三“这个字符变成了空格?奇怪!奇怪!
      

  3.   

    我用oracle的企业管理器发现”三“这个文字,
    在数据库里表示为”?“,
    而其他中文文字在里面也是以乱码的形式储存,
    但这些文字读出来在stringgrid里,表示的是正常的文字。
    惟独字符“三”在stringgird里,显示为空格!
    当然也许还有其他的字符我还没有发现有问题吧!何解?何解?何解?何解?