因为你确实写得不太清晰
第2个问题:
如果不必要保存连接的话,那用Query控件写SQL语句很方便的,比如:
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select * from city where cityid="'+Trim(Edit1.Text)+'"');
//如果cityid是数值型,就可不用双引号了
//Query1.Sql.Add('select * from city where cityid='+Trim(Edit1.Text));
Query1.Sql.Open;3.多层:用TClientDataSet控件,或者自己写方法调用呀