大富翁,我这到底错在哪? (30分)

  • 主题发起人 主题发起人 hwzhl
  • 开始时间 开始时间
H

hwzhl

Unregistered / Unconfirmed
GUEST, unregistred user!
我要把wzamount更新为1000;
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount=1000');
open;
运行时老是出现错误,是类型错误,但我的wzamount是字符类型
 

出错的提示信息写出来看看拉!
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount=1000');
execsql;
end;
 
会不会是字段类型不匹配啊??
把错误拿出来看看吧。
 
1.query1.requestlive:=true;
2.open改成execSQL
 
将 Open 改成 ExecSQL 。

另用参数赋值。
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount= :wzamount');
Params[0].AsInteger:= 1000;
ExecSQL;

 
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount=1000');//wzamout是整型字段吗?
open;
 
它出现type mismatch in expression 的错误!
 
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount=:wzamount');
query1.ParamByName('wzamount').asstring:='1000';
ExecSQL;
end;
 
ExecSQl与OPEN有什么区别?
 
修改和增加记录是没有返回结果的所以不能用open;
改为execsql
 
to各位,不知怎么,你们的办法我都试过了可就是不行。是不是在delphi 桌面数据库中不行啊
 
错误提示你是“类型不匹配“
建议你先用query Analyze运行一下你的SQL语句,肯定是你的SQL语句有问题了
其他的错误如上所述(open改成execSQL)。
 
这个问题,试试这个:
with query1 do
begin
close;
sql.clear;
sql.add('update ku1.db set wzamount=''1000''');
execsql;
end
 
多人接受答案了。
 
后退
顶部