query2.close;
query2.sql.clear;
query2.sql.add(Format('update dwdm set bm=''%s'' where dm=''%s''', [Edit2.Text, Edit1.Text]));
query2.execsql; //到这句就出问题
query2.sql.clear;
query2.sql.add(Format('update dwdm set bm=''%s'' where dm=''%s''', [Edit2.Text, Edit1.Text]));
query2.execsql; //到这句就出问题
试试看,应该可以了。
应该是query2.open,因为你前面已经关闭query2,所以要打开才可以执行
如果是查询~~用Query.Open~~~
写成:query2.sql.add('update dwdm set bm='+quotedstr(edit2.text)+'with dm='+quotedstr(edit1.text) );
这句的格式用作FILTER还可以,当SQL语句不行。复人: chechy(chechy) (2001-11-24 20:05:19) 得0分
query2.close;
query2.sql.clear;
query2.sql.add(Format('update dwdm set bm=''%s'' where dm=''%s''', [Edit2.Text, Edit1.Text]));
这句理论上可行。.OPEN是能返回结果集,.EXECSQL不返回结果集。但两种都不会有错误。
WITH QUERY2 DO
BEGIN
PARAMSBYNAME(P_1):=EDIT1.TEXT;
PARAMSBYNAME(P_2):=EDIT2.TEXT;
SQL.CLEAR;
SQL.ADD(UPDATE DWDM SET BM=:p_1 where dm=:p_2
sql.execsql;
end;
加PARAMS会吗不会就别玩这个了
PARAMSBYNAME(P_1):=EDIT1.TEXT;
PARAMSBYNAME(P_2):=EDIT2.TEXT;
应为:
PARAMSBYNAME(P_1).asstring:=EDIT1.TEXT;
PARAMSBYNAME(P_2).asstring:=EDIT2.TEXT;试试吧