很奇怪的Update的问题,怎么这个地方无法修改,对于各位可能是小问题

119119 2003-10-14 11:47:15
原语句为:
with adoquery1 do
begin
close;
sql.Clear;
sql.Text:='update cargo_all set 库存数量='''+sssum+''' where 货物名称='''+ecargoname.Text+'''';
ExecSQL;
end;

开始我以为是where后面的问题,然后我把where后面给注解掉,改为sql.Text:='update cargo_all set 库存数量='''+sssum+'''',数据表里面只有一条数据,完全可以修改的,但是也是一样不能修改,弹出来跟上面一样的错误。
请问各位是怎么回事啊!!!
...全文
106 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
delphi_xizhousheng 2003-10-14
  • 打赏
  • 举报
回复
要是放在数据库中可以在执行的话 那就是你的ADO有问题了,下个补丁吧
delphi_xizhousheng 2003-10-14
  • 打赏
  • 举报
回复
你的库存数量是字符型的么?
'update cargo_all set 库存数量='+sssum+' where 货物名称='''+ecargoname.Text+'''';
119119 2003-10-14
  • 打赏
  • 举报
回复
都不行,我把错误提示贴出来。Access violation at address 1f453e6e in module 'msado15.dll'.write of address *****'

声明,我的sssum没有问题,是字符串型了改为。因为我把sssum改为‘123’,然后修改都不行。
aldous 2003-10-14
  • 打赏
  • 举报
回复
sqlstr:='update cargo_all'+
' set 库存数量='''+sssum+''''+
' where 货物名称='''+ecargoname.Text+'''';

with adoquery1 do
begin
close;
sql.Clear;
sql.add(sqlstr);
open;
end;
pingo888 2003-10-14
  • 打赏
  • 举报
回复
你的“库存数量”字段应该是一个数字类型的吧?如果是
这样改:
1.假设 sssum 是一个变量 float
with adoquery1 do
begin
close;
sql.Clear;
sql.Text:='update cargo_all set 库存数量='+floattostr(sssum)+' where 货物名称='''+ecargoname.Text+'''';
ExecSQL;
end;

2.假设 sssum 是你直接填写在SQL语句中的常量入100
with adoquery1 do
begin
close;
sql.Clear;
sql.Text:='update cargo_all set 库存数量='+'sssum'+' where 货物名称='''+ecargoname.Text+'''';
ExecSQL;
end;
noil0125 2003-10-14
  • 打赏
  • 举报
回复
with adoquery1 do
begin
close;
sql.Clear;
sql.Text:='update cargo_all set 库存数量='+sssum+' where 货物名称='+quotedstr(ecargoname.Text);
ExecSQL;
end;
RuinRice 2003-10-14
  • 打赏
  • 举报
回复
sql.add('update cargo_all set 库存数量='''+sssum+''' where 货物名称='''+ecargoname.Text+''')
xdmzyy 2003-10-14
  • 打赏
  • 举报
回复
楼主试试下面的代码:

with adoquery1 do
begin
close;
sql.Clear;
sql.Text:='update cargo_all set 库存数量 = :1 ' +
'where 货物名称 = :2';
parameters.parambyname('1').value := sssum;
parameters.parambyname('1').value := ecargoname.Text;
ExecSQL;
end;
119119 2003-10-14
  • 打赏
  • 举报
回复
在线等待中,拜托各位了!
seatu 2003-10-14
  • 打赏
  • 举报
回复
你的用户是否有修改该表的权利等等
你可以调试该程序 取得sql 同样的用户登陆到数据库
在数据库给你的执行sql的程序中 执行一下该sql 看看能不能行
flyppl 2003-10-14
  • 打赏
  • 举报
回复
^_^
WGYKING 2003-10-14
  • 打赏
  • 举报
回复
真不幸!
119119 2003-10-14
  • 打赏
  • 举报
回复
55555555那怎么揭帖子呢,我要撞墙!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!顶盖啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111
pingo888 2003-10-14
  • 打赏
  • 举报
回复
所以不是代码问题了,
是你ADO及数据库的问题了。
119119 2003-10-14
  • 打赏
  • 举报
回复
555,最后好像发现ADO这个在我这里只能查询,不能删除和更新 ,到底是为什么啊!我用的是7.0的版本。
liufuyahong 2003-10-14
  • 打赏
  • 举报
回复
Adoquery1.Sql.clear;
Adoquery1.Sql.Add('....');
...
119119 2003-10-14
  • 打赏
  • 举报
回复
啊,确实在数据库中可以执行。
请问那里有补丁下载啊。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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