用存储过程写
    如先用Substring截取它的长度,然后再写普通的INSERT语句或是返回dm1后3位即可

解决方案 »

  1.   

    是哪种数据库?ORACLE:
    update table1 set dm2=substr(dm1, length(dm1)-3, 3)
      

  2.   

    我使用的query1,所以要用SQL语句写,可我这样写还说出错,不知道是什么原因。
       query1.close;
       query1.sql.clear;
       query1.sql.add(Format('update dwdm set dm2=substr(dm1, length(dm1)-3, 3)));
       query1.open;
      

  3.   

    使用下面这句不能将dm2的内容代入dm1中,但能将dm1清空,当然dm2是有内容的。
       query1.sql.add(format('update dwdm set dm1="%s"',[copy(query1dm2.value,4,3)]));
    我主要是想将dm2的后3位数字(字符型)的代入dm1(字符型)中使用下面这句却能将ppo全部代入dm1中
       query1.sql.add(format('update dwdm set dm1="%s"',['ppo']));
      

  4.   

    你使用的什么数据库? sqlserver,oracle,sybase?  query1.close;
      query1.sql.clear; oracel,sql server: aaa='update dwdm set dm2=substr(dm1, length(dm1)-3, 3)';
            sql server: aaa='update dwdm set dm2=right(dm1,3)'   query1.sql.add(aaa);
      query1.ExecSQL;
      

  5.   

    数据库名是:dwdm.db,就是用delphi设计出来的。
      

  6.   

    说了半天你也没说出你的数据库为paradox的本地数据库。 aaa='update dwdm set dm2=SUBSTRING(dm1 from  4 to 6)'local sql 跟 sql server ,oracle的 sql 语法可不大一样啊。