Мой сотрудник, работающий над Data Access Layer, не умеет извлечь из DataSet информацию о том, что некая строчка была изменена. Он завёл специальные колонки REVISION и STATUSCODE в каждой таблице, предназначенной для показа пользователю, где REVISION -- это уникальный идентификатор строки, STATUSCODE -- статус строки. И разослал следующий документ по правилам использования STATUSCODE:
| Action | Proc will send StatusCode | If the user did not change any row, the StatusCode would be | If the user added any row, the StatusCode would be | If the user changed any row, the StatusCode would be | If the user deleted any row, the StatusCode would be |
| Open official document | A | A | A | A | D |
| Open private document | A | A | N | U | D |
Я сказал ему, что компонент для редактирования таблицы не делает никаких предположений ни о структуре данных ни о правилах изменения STATUSCODE. И если изменять этот компонент, то он перестанет быть generic и станет implementation specific, либо придётся делать обертку в которую каким-то образом передать информацию о типе документа - "private" или "official". Не успел он начать фразу, я уже знал чем она закончится:
- Can't you use some global variable?