query1.ParamByName('tt').AsString:=query1.fieldbyname('Bid').asstring;
上面的那一句有问题,同一个query既用来删除数据,又用来取得参数,当然不行。
要么你在执行之前首先取得tt的值,在选中记录的时候就可以这样写:
tt := query1.fieldbyname('Bid').asstring;
上面的那一句有问题,同一个query既用来删除数据,又用来取得参数,当然不行。
要么你在执行之前首先取得tt的值,在选中记录的时候就可以这样写:
tt := query1.fieldbyname('Bid').asstring;
实际上你可以点击DBGrid后,直接用DBGrid所连接的Query.Delete实现删除,何必用SQL语句呢?而且用了SQL语句删除记录,前段的DBGrid还要动态刷新,太累了。
然后对当前行执行query.delete;
最后若要确认,用query.post;
设置Query1.Requirelive为True;
if messagedlg('真的要删除吗?',mtinformation,[mbyes,mbno],0)=mryes then
Query1.Delete;
你去哪里读query1.fieldbyname('Bid').asstring啊?
在CLOSE前用一变量装你的query1.fieldbyname('Bid').asstring
然后再判断