先谢谢各位兄弟的答案。
coao兄的答案可以不报错,但数据集不能修改。
现将我的源程序附上,
procedure TFormvendor.ButtonretrieveClick(Sender: TObject);
var vendor_name,sqlstr,filterstr: string;
begin
Queryvendor.close;
sqlstr := 'select * from vendor where 1=1';
if Editvendor_id.text <> '' then
begin
if sqlstr<>'' then
sqlstr := sqlstr+' and vendor_id='+Editvendor_id.text;
if sqlstr='' then
sqlstr := sqlstr+' vendor_id='+Editvendor_id.text;
end;
if Editvendor_name.text <> '' then
begin
vendor_name := ''''+self.Editvendor_name.text+'''';
vendor_name := '%'+self.Editvendor_name.text+'%';
if sqlstr <> '' then
sqlstr := sqlstr + ' and vendor_name like '+''''+vendor_name+''''+' ';
if sqlstr = '' then
sqlstr := sqlstr + ' vendor_name like '+''''+vendor_name+''''+' ';
end;
Queryvendor.sql.Clear;
Queryvendor.SQL.add(sqlstr);
Queryvendor.Active:= true;
Queryvendor.RequestLive:=true;
Queryvendor.open;
if queryvendor.CanModify=true then
self.Queryvendor.Edit;
end;