Сергѣй писал(а):
р.Б. Алексий писал(а):
Сергѣй писал(а):
Кстати, по работе - видел, в одном крупном банке...
Критичное приложение, на Аксессе написанное... на котором куча работы была завязана...
И сдаётся мне, не дурак его писал... которому "руки не подадут"...
Ну уж не знаю, что это за банк за такой. Транзакции в Аксессе не слабо делать ?
Ну не транзакции по картам там, разумеется))...
Внутренние финансовые расчёты там, проектного финансирования по куче объектов... Которые каждый день пересчитывались...
Вот тут и проявляется ваш непрофессионализм (непрограммизм).
Транзакции это общее понятие из сферы баз данных. Понятие транзакции в отношении действий по картам произошло отсюда же, хоть и не совсем то обозначает.
Транзакция это сложная совокупность манипуляций с данными, которая должна выполнится полностью или не выполниться вообще (с соответствующим сообщением пользователю).
Вот представьте, если с одного счета деньги спишутся, а на другой из-за сбоя не запишутся. И никто не сможет не только ничего доказать, но и обнаружить, что же произошло.
То есть, не должно быть такого, чтобы часть сложной манипуляции выполнилась, а часть, из-за сбоя, не выполнилась. Причем, сбои могут быть как аппаратные, так и программные, причем программные сбои в многопользовательских базах могут быть вовсе не из-за бага, может например за время подготовки манипуляции одним пользователем, совершится процедура, запущенная другим пользователем, из-за чего окажется, что данные подготовленные первым пользователем окажутся нарушающими целостность, что приведет к ошибке где-нибудь в середине сложной манипуляции. Так вот транзакции, это средства наиболее продвинутых версий SQL, позволяющие производить автоматический откат выполненных операций, если возник сбой на следующей операции.
Так вот в JET SQL, над которой Access, транзакции не предусмотрены. Можно в ряде случаев с этим работать (но осторожно, учитывая сие), но вот как банк может с этим работать - это нечто запредельное.