Pon lo siguiente:
Código Delphi
[-]
with ClientDataSet2 do
begin
Close;
CommandText:='select * from materia WHERE nombre_materia=:materia and id = :id';
open;
edit;
Params.ParambyName('materia').AsString:=edit1.Text;
Params.ParambyName('id').AsInteger:=strtoint(edit2.Text);
post;
end;
Y no olvide realizar lo siguiente:
Vete a tu DataSet del Servidor de Capa Intermedia, con el boton derecho pulsa en Fields Editor, añade todos los campos de la tabla.
Luego elige el campo Key que entiendo será el ID, y en sus propiedades dile que es el KeyFields, ahora en la propiedad ProviderFlags pon a true el pfInKey.
Vete a tu DataSetProvider y pon la propiedad UpdateMode a upWhereKeyOnly.
Prueba a ver que tal y nos cuentas.
Saludos.[/quote]