CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

请教delphi6中使用sql语句update的问题?

楼主yisong(嵩)2002-12-01 14:12:23 在 Delphi / 数据库相关 提问

我的语句  
    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

相关问题

  • delphi中的sql语句。
  • delphi中的sql语句
  • UPDATE语句,sql 语句高手请进
  • UPDATE语句,sql 语句高手请进
  • UPDATE语句,sql 语句高手请进
  • "update"SQL语句的疑惑?
  • update SQL语句问题
  • sql语句update的问题.
  • [access]Update的SQL语句
  • 求一SQL UPDATE 语句

关键词

  • 语句
  • sql
  • mobilehouse
  • query4
  • execsql
  • strtocurr
  • asstring
  • edit1
  • query3
  • update

得分解答快速导航

  • 帖主:yisong

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo