请指下,一个AdoQuery+Access 查询更新语句
表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;
提示:不正常定义参数对象,提供不一致或不完整的信息。
问题点数:30、回复次数:5Top
1 楼huiwww(十足菜鸟)回复于 2005-07-26 15:04:45 得分 10
好像在Access 不支持substr这个函数,如果可以的话可以这样
update a set levelcode='AAA'+substr(levelcode,3,length(levelcode)-2) where levelcode like '001%'Top
2 楼huiwww(十足菜鸟)回复于 2005-07-26 15:05:50 得分 0
哦,不好意思,将3改为4,将2改为3Top
3 楼HelpMeNow(混口飯吃)回复于 2005-07-26 15:13:41 得分 0
我是问TempQry.SQL.Text 的语句该怎么写,我就是那个
分号和加号,该怎么个写法有点乱。
查询中的两个字符串的合并怎么个写法,
只能认到:Code+substr(levelcode,3,length(levelcode)-2)
而提示,找不到:Code的参数Top
4 楼dabaicai(烈士暮年)回复于 2005-07-26 15:17:43 得分 20
你先用静态的方式试一下,把SQL语句直接写到query里,然后看paramter那个属性里面的参数情况Top
5 楼HelpMeNow(混口飯吃)回复于 2005-07-26 15:39:59 得分 0
参数情况是:Code+substr(levelcodeTop




