我建议你加一个数据类,相关的控件放在这个类界面上,所有的查询及SQL命令执行都由它的相关方法去完成,类似于下面的代码:function ExecSQL(ClientDataSet: TClientDataSet; strSQL: String; AParams: TParams = nil): Boolean;begin Result := False; with RSqlquery do begin ClearSQLParams; SQL.Text := strSQL; AddSQLParams(SQL, AParams); ExecuteSQL; Result := True; if Length(RSqlquery.XMLData) = 0 then Exit; end; if Assigned(ClientDataSet) then with ClientDataSet do begin if Active then Close; XMLData := RSqlquery.XMLData[0]; Open; end;end;RSqlquery 是一个 TRemoteSqlquery。数据会放到一个 ClientDataSet 中,调用如下:procedure TFrmDemo.QueryCard;var oSQL: string; Cds: TClientDataSet;begin Cds := TClientDataSet.Create(nil); oSQL := '...'; ExecSQL(Cds, oSQL); ...;end;以上是一个简单的示例,原理都差不多。