请教delphi6中使用sql语句update的问题?
我的语句
Query4.SQL.Add('update mobilehouse set obadjustprise.ascurrency=strtocurr(edit1.text)');
Query4.SQL.Add(' where mobid=query3.Fields[0].AsString ') ;
Query4.execsql;
运行时出现如错误提示:xxx has raised exception class edbengine error with 'message gernerl sql error'
无法使用列前缀‘mobajustprise’此前缀必须于update子句中‘mobilehouse’中的对象匹配
请问是什么问题?
问题点数:0、回复次数:11Top
1 楼lqdmafeng()回复于 2002-12-01 14:20:10 得分 0
为什么不这样写啊:
Query4.SQL.Add('update obadjustprise set ascurrency=strtocurr(edit1.text)');
Query4.SQL.Add(' where mobilehouse.mobid=query3.Fields[0].AsString ') ;
Top
2 楼yisong(嵩)回复于 2002-12-01 14:27:45 得分 0
mobilehouse是表的名字 obadjustprise 是字段的名字 ascurreny是因为是money类型的字段才这样写的Top
3 楼yisong(嵩)回复于 2002-12-01 14:39:05 得分 0
而且他还说strtocurr是不可识别的函数Top
4 楼hahafan(注意!此人前途迷茫)回复于 2002-12-01 14:49:16 得分 0
Query4.SQL.Add('update mobilehouse set obadjustprise=' + edit1.text + 'where mobid=' + '''' + query3.Fields[0].AsString + '''') ;
Query4.execsql;
Top
5 楼yisong(嵩)回复于 2002-12-01 15:15:57 得分 0
现在问题好像比较奇怪了,程序执行时只有在
Query4.execsql;时说有在‘0’附近有语法错误。
可附近没有这种信息呢?
Top
6 楼youler(重回一剑)回复于 2002-12-01 15:22:24 得分 0
Query4.SQL.Add('update mobilehouse set obadjustprise=' + '''+edit1.text+''' + 'where mobid=' + '''' + query3.Fields[0].AsString + '''') ;
Query4.execsql;Top
7 楼sliping(游戏人生)回复于 2002-12-01 15:45:27 得分 0
query4.close;
query4.sql.clear;
Query4.SQL.Add('update mobilehouse set obadjustprise='+edit1.text);
Query4.SQL.Add(' where mobid='''+query3.Fields[0].AsString +'''') ;
Query4.execsql;
Top
8 楼sliping(游戏人生)回复于 2002-12-01 15:47:28 得分 0
现在问题好像比较奇怪了,程序执行时只有在
Query4.execsql;时说有在‘0’附近有语法错误。
可附近没有这种信息呢? ------->的原因
楼主的Sql语句中where前少了空格!Top
9 楼yisong(嵩)回复于 2002-12-01 15:54:11 得分 0
那可以这样转换string 到currency吗?
strtocurr(quotedstr(edit1.text))Top
10 楼sliping(游戏人生)回复于 2002-12-01 16:03:43 得分 0
不可以,在Sql Server中其实不用,当然可以用如下方式转换(CAST ( expression AS data_type ) ):
query4.close;
query4.sql.clear;
Query4.SQL.Add('update mobilehouse set obadjustprise=cast('''+trim(edit1.text));
Query4.SQL.Add(''''+' as money) where mobid='''+query3.Fields[0].AsString +'''') ;
Query4.execsql;
Top
11 楼yisong(嵩)回复于 2002-12-01 17:14:43 得分 0
用dbgrid显示一个表的内容时如何让它自动更新数据内容,
还有 想在刚才的update中再把一个datetime型的opdate更改为当前时间呢?Top




