我使用TADOQuery来执行数据表的修改操作,下面是我的代码:var sql:string;
begin
sql := 'UPDATE t_members SET MemberID=4, MemberName=''name1'', Birth=32215.3589314583, Relation=''其他'', Memo='''' WHERE MemberID=4';
//...
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add (sql);
ADOQuery.Execsql;
//...
end;但是编译以后在“ADOQuery.Execsql”处提示错误:UPDATE语句语法错误。(我把整个SQL语句复制到Access数据库中执行没有错误!)
begin
sql := 'UPDATE t_members SET MemberID=4, MemberName=''name1'', Birth=32215.3589314583, Relation=''其他'', Memo='''' WHERE MemberID=4';
//...
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add (sql);
ADOQuery.Execsql;
//...
end;但是编译以后在“ADOQuery.Execsql”处提示错误:UPDATE语句语法错误。(我把整个SQL语句复制到Access数据库中执行没有错误!)
s_2:='其他';
s_3:='';sql:='update t_members set momberid=4,memborname='+quotestr(s_1)+',birth=33333.33333,relation='+quotestr(s_2)+',memo='+quotestr(s_3)+' where memberid=4';
ADOQuery.SQL.Text := sql;
ADOQuery.Execsql;
是不是你的adoquery关联一些控件,使用execsql不会返回结果的
sql := 'UPDATE t_members SET MemberID=''4'', MemberName=''name1'', Birth=32215.3589314583, Relation=''其他'', Memo='''' WHERE MemberID=''4''';
是不是数据库结构不对?
还有SET MemberID=4 WHERE MemberID=4
是不是......
+', Birth=32215.3589314583, Relation='+Quotedstr('其他')
+', Memo=QuotedStr('') +'WHERE MemberID=4';
lijinghe1说对了.问题解决了