错误类型:表达式中 'Replace' 函数未定义,请教替代的语句,排名在最前的正确替代语句直接给全部分

vodown 2012-07-17 01:47:25
开发工具:delphi 7,数据库:access
语句目的:将access的‘课时’表中的‘时长’字段格式化,如将原来的 45分20秒,转换为45:20。这是我写的语句

ADOQuery1.SQL.Clear ;
ADOQuery1.SQL.Add('update 课时 set 时长=REPLACE(REPLACE(时长,''分'','':''),''秒'','''') where 时长 like ''*秒*''');
ADOQuery1.execsql;



执行以上语句报错:错误类型:表达式中 'Replace' 函数未定义。
但是相应SQL语句在access是正确执行的,网上查到原因:replace 是ACCESS的内部函数,在ADO通过ODBC来访问的时候不可用。
请帮助:有什么替代?办法?请给出具体替代语句

发了两次都被和谐了,说是有敏感字,终于找到可能的敏感字了?看出来没? "替代0办法",呵呵
...全文
342 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
vodown 2012-07-22
  • 打赏
  • 举报
回复
结贴给分,谢谢!
vodown 2012-07-18
  • 打赏
  • 举报
回复
楼上的办法可行,但是执行效率比较低,此贴再留两天,没有更好的办法就给分
jiajiajing6 2012-07-17
  • 打赏
  • 举报
回复
procedure TForm1.TranslateClick(Sender: TObject);
function strReplace(str: string): string;
begin
Result:= StringReplace(str,'分',':',[rfReplaceAll]);
Result:= StringReplace(Result,'秒','',[rfReplaceAll]);
end;
begin
with ADOQuery1 do begin
SQL.Close;
SQL.Text:='select * from 课时';
Open;
First;
while not Eof do begin
Edit;
FieldByName('时长').Value:= strReplace(fieldbyname('时长').AsString);
Post;
Next;
end;
end;
end;
vodown 2012-07-17
  • 打赏
  • 举报
回复
有没有代码?
kaikai_kk 2012-07-17
  • 打赏
  • 举报
回复
在ACCESS里面建一个查询执行吧
或者在程序中全部查询出来,再循环edit/post更新
formater 2012-07-17
  • 打赏
  • 举报
回复
可以在while not eof里面,取出时长,replace后再update

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧