te recomiendo que uses parámetros, así:
primero en un editor de querys (ibXpert o como se llame) comprueba algo como esto
Código SQL
[-]
Insert into TransMaterial Values (:id, :fecha, :codigo, :comentario, :vendedor, :accion, :cantidad, :comprador, :comentario1)
luego en delphi puede hacer lo siguiente:
Código Delphi
[-]
ibQuery.Sql.add(Insert into TransMaterial Values (:id, :fecha, :codigo, :comentario, :vendedor, :accion, :cantidad, :comprador, :comentario1));
ibQuery.ParamByName('id').asInteger := 102351;
ibQuery.ParamByName('fecha').asDate := DataTimePicker.Date;
ibQuery.ParamByName('codigo').asString := '19301JETGM';
ibQuery.ParamByName('comentario').asString := 'nada';
ibQuery.ParamByName('vendedor').asString:= 'carlos';
y así por cada uno de los parámetros... puede ser en un principio muy largo, pero en el futuro es mas cómodo porque solo tendrá un solo código de inserción y solo asignara nuevamente cada parámetro