No olvides que el metodo Clear lo que hace no es borrar el contenido del parametro sino borrar completamente los parametros
Código Delphi
[-]^
DModulo.QBuscar.SQL.Clear; DModulo.QBuscar.SQL.Text:='select distinct * from '+
'alumnos,tipodealumno,municipio,grados ' +
'where tipodealumno.tipo_alumno=alumnos.tipo_alumno '+
'and alumnos.grado=grados.id_grado and ' +
'alumnos.id_mpio=municipio.id_mpio and alumnos.matricula=:mat';
DModulo.QBuscar.ParamByName('mat').AsString :=BuscaMatricula.Text;
DModulo.QBuscar.Open;
DModulo.QBuscar.ParamByName('mat').AsString :=OtroControl.Text;
DModulo.QBuscar.Open;
DModulo.QBuscar.SQL.Clear;
DModulo.QBuscar.SQL.Add( 'select distinct * from ');
DModulo.QBuscar.SQL.Add('alumnos,tipodealumno,municipio,grados ' );
DModulo.QBuscar.SQL.Add( 'where ');
DModulo.QBuscar.SQL.Add('tipodealumno.tipo_alumno=alumnos.tipo_alumno ');
DModulo.QBuscar.SQL.Add( 'and alumnos.grado=grados.id_grado and ');
DModulo.QBuscar.SQL.Add( 'alumnos.id_mpio=:municipio');
DModulo.QBuscar.ParamByName('municipio').AsString :=OtroControl.Text;
DModulo.QBuscar.Open;
Como vemos en el código, Delphi se encarga de borrar y añadir los parametros que vamos creando con las sentencias SQL. Así vemos que en el ejemplo la primera sentencia usa "mat" como parametro y la seguna "municipio". En el primer caso delphi crea en automático "mat", al meterle la segunda sentencia crea "municipio". Con la sentencia "Clear" delphi borra ademas de la sentencia los parametros que se crearon.
Los parametros los puedes usar tambien en sentencias INSERT, DELETE o UPDATE en la misma forma, solo que en esos casos no se usa "Open" sino "ExecSQL" para ejecutar el query ya que estas sentencias no devuelven datos.
Sobre los procedimientos almacenados Zeos incluye un control especial para eso "TStoredProc" , ademaás de que se de pueden llamar or medio del control "TSQLScript" de Zeos.