表a
levelcode
  1010001
  1010002
  101001002
我现在要把where levelcode like '001%'的记录
换成
  AAAA0001
  AAAA0002
  AAAA001002
也就是把前面为101换成AAAA,这样子的语句该怎么写。  TempQry.SQL.Text := 'Update MSPostionClass Set LevelCode=:Code+SUBSTRING(LevelCode,Len(:Code)+1,len(levelCode)) where LevelCode like :oldCode';
  Showmessage(TempQry.SQL.Text);
  TempQry.Parameters.ParamByName('Code').Value := LevelCode;
  TempQry.Parameters.ParamByName('oldCode').Value := OldLevelCode + '%';
  TempQry.ExecSQL;提示:不正常定义参数对象,提供不一致或不完整的信息。

解决方案 »

  1.   

    好像在Access 不支持substr这个函数,如果可以的话可以这样
    update a set levelcode='AAA'+substr(levelcode,3,length(levelcode)-2) where levelcode like '001%'
      

  2.   

    我是问TempQry.SQL.Text 的语句该怎么写,我就是那个
    分号和加号,该怎么个写法有点乱。
    查询中的两个字符串的合并怎么个写法,
    只能认到:Code+substr(levelcode,3,length(levelcode)-2)
    而提示,找不到:Code的参数
      

  3.   

    你先用静态的方式试一下,把SQL语句直接写到query里,然后看paramter那个属性里面的参数情况