简单数据库更新SQL语句不会用,求救中 ( 积分: 50 )

  • 主题发起人 主题发起人 wqhatnet
  • 开始时间 开始时间
W

wqhatnet

Unregistered / Unconfirmed
GUEST, unregistred user!
VAR
ABC:STRING;
begin
aform1.Query1.SQL.Clear;
abc:='UPDATE abc.db SET 下料时间=''abc'' WHERE 编号=''62''';
aform1.Query1.SQL.add(abc);
aform1.Query1.open;
end;
为什么错误?
 
where 后面必须跟子查询的啊

update table
set 下料时间='abc'
where exists (select 编号 from table where 编号='62')
试试
 
好像引号用多了吧
 
UPDATE abc.db SET 下料时间='abc' WHERE 编号='62'
 
update 对应的不是.open,而是.exce
 
open是对查询select的,其他的SQL语句用EXEC
 
aform1.Query1.Close
aform1.Query1.SQL.Text:='UPDATE abc.db SET 下料时间=''abc'' WHERE 编号=''62''';
aform1.Query1.Execsql;

我最不喜欢SQL.ADD(''),呵呵
 
如果返回一个数据集,则用Open
否则用ExecSQL.
 
with aform1.Query1 do
begin
Close;
SQL.Clear;
Sql.Add(Format('UPDATE abc.db SET 下料时间=''%S'' WHERE 编号=''%S''',[变量1,变量2]));
ExecSql;
end;

用Format不容易出错
 
如果“下料时间”是日期型的,要用formatdatetime
 
应该是用ExecSql来执行Updata语句.
 
VAR
ABC:STRING;
begin
aform1.Query1.SQL.Clear;
abc:='UPDATE abc.db SET 下料时间=''abc'' WHERE 编号=''62''';
aform1.Query1.SQL.add(abc);
aform1.Query1.ExecSql;
end;
 
来自:chuliheng, 时间:2007-8-17 21:14:37, ID:3824383
with aform1.Query1 do
begin
Close;
SQL.Clear;
Sql.Add(Format('UPDATE abc.db SET 下料时间=''%S'' WHERE 编号=''%S''',[变量1,变量2]));
ExecSql;
end;

用Format不容易出错

------

同意,这相‘’号不少呢
 
如果是查询语句,用OPEN,
abc := 'Select * from table'
adoquery1.open

如果是修改或删除
abc := 'update table -----'
adoquery1.execsql.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
604
import
I
S
回复
0
查看
939
SUNSTONE的Delphi笔记
S
后退
顶部