Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 17 18 19 20 21 [22] 23 24 25 26 .. 72   вперед  Ctrl
 Re: Access и FoxPro. Сравнение мощей  [new]
H5N1
Guest
у мс есть нехорошая черта вставлять рекламу в документацию, а технические подробности скрывать. в данном случае мс просто лжет в наглую.

читаем тут:
http://www.foxhelp.ru/RabotaVLokal'nojjSetiVFP6
BEGIN TRANSACTION – начало трансакции – изменения записываются в буфер трансакции
ROLLBACK – включает откат назад
ENDTRANSACTION – завершает трансакцию – записывает измененные данные из буфера на диск

TABLEUPDATE() – возвращает. T., если попытка обновления данных не удалась. Функция обновляет данные в виртуальный буфер трансакции, а не в реальную таблицу.


Так как начало трансакции переносит измененные данные в буфер, отключение электропитания компьютера не изменит старые значения данных. Другое дело, в момент закрытия трансакции, при большом объеме данных и возникновении сбоя в ОС или в компьютере, изменения могут быть записаны на диск лишь частично.

I_Am222

а с точки зрения Ораклоидов... там все надежно.. но если БД все же бабахнется то вернуть ее уж очень непросто будет а?

если у тебя сохранен текущий лог транзакций и последний бэкап то в форточку хоть самолеты могут влетать, ниодна транзакция не пропадет это справедливо для любой субд использующую WAL. (oracle, mssql, db2)

I_Am222

Да повторю свой вопрос.. просмотрев массу Оракловых ХП, нигде в коде не нашел упоминания о транзакциях... SAVEPOINTы изредка встречал.. значит ли это, что разработчики кривые.. или в Оракле само словосочетание BEGIN Trans вовсе и не нужно?
не забудьте я прежде всего ВФП-шник


да бегин тран не нужно, первый модифицирующий стейтмент начинает транзакцию. дальше есть распространеное мнение что комит должен посыдать клиент, поэтому комит в нутри pl/sql не приветсвуется. скорее всего у вас клиент делает автокомит, поэтому фразы commit вы и не встретили.
16 фев 06, 17:41    [2364419]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ЛП
Guest
Alex Ustas
Механизм обеспечения целостности баз данных интегрируется с механизмом управления транзакциями

Что и с чем интегрируется в какой-то одной конкретной СУБД - дело исключительно производителя этой СУБД. Другой производитель в другой СУБД может и по-другому подсистемы заинтегрировать.

Если лично Вам знакома только одна реализация только одной СУБД - это не значит, что других СУБД с другими реализациями не существует и не может существовать.

Alex Ustas
- последовательностью операций модификации базы данных, воспринимаемыми СУБД как одна атомарная операция.

Это Вы попытались дать определение транзакции? У Вас это не получилось. Пытайтесь еще раз. Но лучше все-таки учебники почитайте.

Alex Ustas
Все транзакции пишутся в лог.

Это Вам кто сказал? А если не пишутся? А если лога нет? Транзакции перестают быть транзакциями?
Найдите определение транзакции, и попытайтесь отыскать в нем слово "лог".
Это будет Вашим домашним заданием.

Alex Ustas
Вопросы?

Где такую траву берут?
16 фев 06, 17:43    [2364433]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
I_Am222
Guest
H5N1
у мс есть нехорошая черта вставлять рекламу в документацию, а технические подробности скрывать. в данном случае мс просто лжет в наглую.

читаем тут:
[quot http://www.foxhelp.ru/RabotaVLokal'nojjSetiVFP6]BEGIN TRANSACTION – начало трансакции – изменения записываются в буфер трансакции
ROLLBACK – включает откат назад
ENDTRANSACTION – завершает трансакцию – записывает измененные данные из буфера на диск

TABLEUPDATE() – возвращает. T., если попытка обновления данных не удалась. Функция обновляет данные в виртуальный буфер трансакции, а не в реальную таблицу.


странно я привел цитату из оригинальной документации.. Вы привели из ее вероятно вольного перевода на русский.. в оригинальной что-то про буффер я не нашел

+ Последний мой опыт о чем-то говорит или нет? при остановке транзакции ни одна из таблиц недоступна - значит ли это, что что-то пишется куда-то а потом?

Вы попробуйте, а не читайте Русские переводы, написанный ИМХО "я так это понял - вот так оно и будет..." потому, как я сейчас защищу кандитатскую и выпущу монографию, где напишу как я понимаю транзакцию.. и это будет тоже что?

Короче в оригинале нет о промежуточных буферах ничего, реклама? Враки? возможно.. что тогда мне запрещает бегать и говорить ОРАКЛ - это уйхня... столько стоит а ничего там нету - сплошная реклама?

то есть не туда вы диспут уводите.. не туда

поямните мне последний мой опыт.. о чем он говорит? почему таблы заблочены? кто их держит?
остановил я транзакцию после 2-го инсерта, перед 3-м - убил приложение - данные не записались.. как они могли не записаться ведь ни логофф нету ни чего нету.. кто их откатил? поясните
16 фев 06, 17:53    [2364492]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
I_Am222
Guest
H5N1

читаем тут:
[quot http://www.foxhelp.ru/RabotaVLokal'nojjSetiVFP6]BEGIN TRANSACTION – начало трансакции – изменения записываются в буфер трансакции
ROLLBACK – включает откат назад
ENDTRANSACTION – завершает трансакцию – записывает измененные данные из буфера на диск

TABLEUPDATE() – возвращает. T., если попытка обновления данных не удалась. Функция обновляет данные в виртуальный буфер трансакции, а не в реальную таблицу.


тю.. как же я невнимательно читаю
А вот вам вырезка из хелпа по ВФП :

TABLEUPDATE( ) returns true (.T.) if changes to all records are committed; 
otherwise, TABLEUPDATE( ) returns false (.F.). 

понимаете разницу или подчеркнуть? в виду этого.. Ваша цитата - уже есть враки



16 фев 06, 17:58    [2364518]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
Alex Ustas
Member

Откуда:
Сообщений: 281
ЛП
Alex Ustas
Механизм обеспечения целостности баз данных интегрируется с механизмом управления транзакциями

Что и с чем интегрируется в какой-то одной конкретной СУБД - дело исключительно производителя этой СУБД. Другой производитель в другой СУБД может и по-другому подсистемы заинтегрировать.


Разумеется, реализация этого в VFP и демонстрирует особый подход, который и обсуждается, я же говорил об общем, который реализован в Oracle, MS SQL Server.
И кстати, для сопоставления Oracle не я навязал, ищите корни у I_Am222.

ЛП

Если лично Вам знакома только одна реализация только одной СУБД - это не значит, что других СУБД с другими реализациями не существует и не может существовать.


Кажется, додумывать за собеседника и перекручивать факты, это общая черта фокспрошников, тут я уже насчитал четверых, конкретно уличенных. Я не упоминал, сколько реализаций мне известны.

ЛП

Alex Ustas
- последовательностью операций модификации базы данных, воспринимаемыми СУБД как одна атомарная операция.

Это Вы попытались дать определение транзакции? У Вас это не получилось. Пытайтесь еще раз. Но лучше все-таки учебники почитайте.


Чтоб в Вашей головушке все байтики сошлись нужно все определения привести? Что, знакомых слов не встретили?

ЛП

Alex Ustas
Все транзакции пишутся в лог.

Это Вам кто сказал? А если не пишутся? А если лога нет? Транзакции перестают быть транзакциями?
Найдите определение транзакции, и попытайтесь отыскать в нем слово "лог".
Это будет Вашим домашним заданием.


Да, я уже знаю, с Вами надо медленно-медленно и по слогам, как Миклуха-Маклай с туземцами и употреблять только знакомые Вам слова. Итак, транзакция <> лог, НО если СУБД поддерживает логирование, то все транзакции будут сбрасываться в лог, отсутствие лога делает систему менее надежной, опыт FireBird это подтверждает.

ЛП

Alex Ustas
Вопросы?

Где такую траву берут?


Что, уже скурил свою месячную норму и нужна добавка? Да, мужик, после такого и не такие глюки примерещаться. ;)
16 фев 06, 19:38    [2364933]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
Alex Ustas
Разумеется, реализация этого в VFP и демонстрирует особый подход, который и обсуждается, я же говорил об общем, который реализован в Oracle, MS SQL Server.
И кстати, для сопоставления Oracle не я навязал, ищите корни у I_Am222.

Меня мало волнует I_Am333
[...]
Alex Ustas
Кажется, додумывать за собеседника и перекручивать факты, это общая черта фокспрошников, тут я уже насчитал четверых, конкретно уличенных. Я не упоминал, сколько реализаций мне известны.

Вы - не упоминали. Я упоминал.
[...]
Кстати, я ни разу не фокспрошник, к слову сказать.

Alex Ustas
Чтоб в Вашей головушке все байтики сошлись нужно все определения привести?

Нет. Чтобы в ВАШЕЙ головушке все байтики сошлись - нужно все определения привести. А иначе ВЫ обсираетесь на ровном месте, и путаете теплое с мягким. Идите учитесь. [...]

Alex Ustas
Да, я уже знаю[quot ЛП]

Нет, не знаете. [...]
-------------

Ну так что насчет атомарности и логов? Слив засчитан, или как?
Атомарность изменений принципиально может быть реализована без логов. Это - утверждение.
Вы или признаете это ([...]), или не признаете ([...]). Делайте ваши ставки, господа.
16 фев 06, 23:43    [2365388]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
вдогонку

2 Alex Ustas
Да, я уже знаю, с Вами надо медленно-медленно и по слогам, как Миклуха-Маклай с туземцами

Да-да, как можно медленнее. Чтобы Вы сами свой бред успевали воспринимать как именно бред (чем он и является), а не как божественное откровение (чем он не является).

Итак, транзакция <> лог

Великолепно.

НО если СУБД поддерживает логирование, то все транзакции будут сбрасываться в лог, отсутствие лога делает систему менее надежной

А если СУБД не поддерживает логирование, то транзакции не будут сбрасываться в лог, что сделает систему менее надежной.
И что с того?
Транзакции то хоть остануться транзакциями?
Да или нет?
Просьба дать ответ [...]. Если это конечно возможно. Вопрос был задан простой. Варианты ответа:
Да.
Нет.
16 фев 06, 23:59    [2365409]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
пардон, был пьян, прошу неких извинений.
если кат2 меня слышит - то пусть чего-нить потрет, на свой выбор
если не слышит - то я не настолько пьян, чтоб по этому поводу комплексовать.
От ругательств информации не добавляется
17 фев 06, 00:17    [2365433]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
Пьяный Лох
Member

Откуда:
Сообщений: 3652
Выбор кат2 странен, но это его выбор
17 фев 06, 01:06    [2365498]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
ЛП
А я вот наоборот ни разу не слышал о ФС-блокировочниках. Будем куями (зачеркнуто) лбами меряться, кто из нас больше с ФС работал? :)

Аксес например по принципам работы ближе как раз таки к версионникам. Этакий недоверсионник, но уж ни в коей мере не блокировочник. Транзакционная мантра блокировочников "транзакции должны быть короткими" меня поначалу вообще в шок повергала.

То есть Вы ни разу не слышали о блокировках в ФС ? Clipper/DBase явно версионники ? Ладно, тогда с интересом хочу послушать, какой Access версионник и что такое версионность в Вашем понимании (отмазы на "недоверсионность" не принимаются) :)
17 фев 06, 07:47    [2365679]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
I_Am222
Guest
ASCRUS
ЛП
А я вот наоборот ни разу не слышал о ФС-блокировочниках. Будем куями (зачеркнуто) лбами меряться, кто из нас больше с ФС работал? :)

Аксес например по принципам работы ближе как раз таки к версионникам. Этакий недоверсионник, но уж ни в коей мере не блокировочник. Транзакционная мантра блокировочников "транзакции должны быть короткими" меня поначалу вообще в шок повергала.

То есть Вы ни разу не слышали о блокировках в ФС ? Clipper/DBase явно версионники ? Ладно, тогда с интересом хочу послушать, какой Access версионник и что такое версионность в Вашем понимании (отмазы на "недоверсионность" не принимаются) :)



Я провел Ваш опыт - выходит есть все же транзакции?
то есть те, кто утверждил, что их нету.. теперь будут говорить "есть, но не столь надежные..."

"Птичий грипп" сказал было, что коммит должен идти с клиента, но никак не быть в хранимой процедуре.. мое ИМХО = бред
17 фев 06, 09:56    [2365923]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Да есть транзакции, вроде никто и не говорил, что нет. Сам я с фоксом дальше 2.5 не работал, поэтому ничего о его внутренних существующих механизмах сказать сейчас не могу. Однако как минимум могу предложить 2 варианта, как они могут работать (опираясь на факт блокировки таблиц для других сессий, изменяемых в транзакции):

1. Все изменения происходят локально на машине сессии, однако во время проведение операций в транзакции происходит блокирование на уровне ФС ОС изменяемых таблиц на сетевом ресурсе (еще интересно - блокируется ли вся таблица или только изменяемые записи). Соотвествующе вся запись изменений происходит на момент COMMIT-а и с записей снимаются блокировки. Для этого варианта критичным будет аварийное завершение работы во время COMMIT. Проверить легко - вгоняете в транзакции в несколько табличек по 10 миллионов записей (чтобы уж точно долго писалось), перед COMMIT делаем паузу, как все ставилось, нажимаем продолжить и дергаем шнур, потом смотрим, чего с сетевыми таблицами приключилось.

2. Все изменения происходят через точки фиксации, правда сие чудо я с трудом себе могу представить на не страничной структуре хранения данных, но конечно при желании возможны любые чудеса. Смысл точек фиксации на КС (во всяком случае ASA) - любая добавляемая или изменяемая в ходе транзакций страница файла БД становится грязной страницой. Если изменяется существующая страница, то оригинальная копия этой страницы сразу же пишется в конец БД. Если кэша достаточно, то не обязательно, что сами изменения, проводимые в транзакции будут тут же писаться в БД, сервер сам будет решать, что эффективнее - держать изменения страниц в кеше (для уменьшения времени записи) или уже их зафиксировать физической записью в БД (естественно решать будет, руководствуясь заданными параметрами и текущими нагрузками). Во время работы сервер согласно параметрам управления времени проведения точек фиксации и разрешенному максимальному времени на поднятие БД в случае аварийного завершения (ну или же сам программист в коде написав CHECKPOINT), вызывает точку фиксации состояния БД. На момент проведения этой операции, все грязные страницы завершенных транзакций записываются в БД (если они были только в кэше) и фиксируются как чистые, а все сохраненные дубликаты оригиналов удаляются (то есть высвобождают страницы, причем все кто был в конце БД приведут к уменьшению ее размера). В итоге даже если в момент активной транзакции или уже ее подтверждения сервер аварийно завершит работу, то он сможет по БД, сравнив его по лог-файлу (если выжил) найти последнюю подтвержденную точку проверки, существующую в БД и по ней с оригинальных страниц скопировать информацию поверх измененных грязных страниц, таким образом сделав ROLLBACK для всех незавершенных транзакций и полный откат всех подтвержденных транзакций, не успевших пройти точку фиксации БД. Такой способ работы во первых очень удачно позволяет избавиться от лишних нагрузок IO, работая с изменяемыми страницами в RAM, во вторых гарантирует, что если на момент физической записи на диск была аварийная остановка сервера и записываемые страницы оказались повреждены или частично записаны, то их всегда можно будет восстановить по оригинальным страницам. Кстати механизм CHECKPOINT позволяет работать без лог-файлов и ASA можно спокойно переключить на работу без наличия лог-файла, что никак не повлияет на надежность и позволит в случае аварии откатить состояние БД до стабильного. Лог-файл в ASA нужен по другим причинам - репликации, восстановление базы данных с возможностью наката выжившего от БД лог-файла на бакупные копии, что позволит вернуть состояние БД на момент проведения последней точки фиксации, после которой произошло физическое разрушение самого файла БД.

Полагаю нечто подобное может быть реализовано и в ФС системах в примитивном варианте - методом создания копий изменяемых оригиналов и их удалением после успешно зафиксированных изменений (уж не это ли ЛП имел ввиду, говоря про "версионность" Access-а).
17 фев 06, 11:21    [2366381]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

ой, да надо ли, предпологать-то? Можно просто документацию почитать и статьи
на микрософтовском сайте.


Posted via ActualForum NNTP Server 1.3

17 фев 06, 12:03    [2366703]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
1024

ой, да надо ли, предпологать-то? Можно просто документацию почитать и статьи
на микрософтовском сайте.


Posted via ActualForum NNTP Server 1.3

Ссылочки плиз. Я что то не припоминаю в макройсофтной документации желания делиться с разработчиками подробностями работы внутренних механизмами работы, уж особенно на Access/VFP.
17 фев 06, 12:16    [2366805]     Ответить | Цитировать Сообщить модератору
 C++/Linux/FireBird  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
I_Am222
ASCRUS

Проверить, когда фокс меняет данные в таблицах: сразу во время транзакции или же по COMMIT очень легко - открываем транзакцию, проводим изменения в таблицах, делаем паузу, запускаем сессию с другой машины и пытаемся увидеть изменения, проделанные другой транзакцией. Если сессия останавливается и ждет, значит на таблицах висят блокировки первой сессии и фокс все сразу пишет в таблицы, вешая блокировки и раз транзакции срабатывают, значит держа некое подобие CHECKPOINT. Если сессия видит измененные данные и даже их может менять, то значит понятие транзакций к фоксу никаким боком не относиться. Если же сессия не видит изменений, то или фокс действительно их хранит на клиентской машине и сбрасывает их только по COMMIT, что опять же говорит, что транзакций в Fox-е нет или же он версионник (хе хе), что очень маловероятно, я например ни разу не слышал о ФС версионниках :)


мне не лень
OPEN DATABASE  Urar SHARED

BEGIN TRANSACTION
	insert into Vil(cname) VALUES('тест VILL при транзакции')
	insert into streets(cstreetname) VALUES ('тест STREET при транзакции')
= messagebox('STOP')
	insert into engeneer(cengeneer) VALUES ('тест ENG при транзакции')
END TRANSACTION

это на одной машине запустили.. получили разумеется messagebox('STOP')
, кто не знает, что это такое - спрашивайте не стесняйтесь (потому как куриный грипп видимо не знает )
бегом на другую машину.. оппа... а таблицы Vil, streets, engeneer = Access denied...

Уважамый ASCRUS упустил еще один вариант. Записи кэшируются на клиенте, но таблицы блокирутся.
Но такая ситуция может привести к другим проблемам. Кто должен разблокировать таблицы в случае краха клиента?
Вариант "Если сессия останавливается и ждет, значит на таблицах висят блокировки первой сессии и фокс все сразу пишет в таблицы, вешая блокировки и раз транзакции срабатывают, значит держа некое подобие CHECKPOINT." тоже чреват осложнениями при крахе клиента. Кто будет вычищать за ним мусор?
Как ни крути, но полноценно реализовать транзакции на ф/с невозможно.
17 фев 06, 12:26    [2366901]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
Если блокировка наложена на уровне файловой системы, то ОС и разблокирует записи/таблицы, после таймаута сетевой сессии. Не стоит забывать, что ОС позволяют многопользовательскую работу с зашаренными файлами и предоставляют кой какой функционал.
17 фев 06, 12:32    [2366949]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

Ссылочки плиз. Я что то не припоминаю в макройсофтной документации желания
делиться с разработчиками подробностями работы внутренних механизмами
работы, уж особенно на Access/VFP.
--------------

поиском можно


Posted via ActualForum NNTP Server 1.3

17 фев 06, 12:53    [2367126]     Ответить | Цитировать Сообщить модератору
 C++/Linux/FireBird  [new]
f_w_p
Member

Откуда:
Сообщений: 1603
ASCRUS
Если блокировка наложена на уровне файловой системы, то ОС и разблокирует записи/таблицы, после таймаута сетевой сессии. Не стоит забывать, что ОС позволяют многопользовательскую работу с зашаренными файлами и предоставляют кой какой функционал.

Значит остается один вариант -записи кэшируются на клиенте, но таблицы блокирутся. Но согласитесь, что это не транзакция!
17 фев 06, 13:00    [2367180]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
1024
поиском можно

Поиск по Microsoft.com дал меньше чем на страничку ссылок на сайте по ключевой фразе "transaction in visual foxpro", из них я нашел всего пару абзацев, "обьясняющих" принципы работы транзакций в VFP:
в ROLLBACK (MSDE):
автор
When you modify records in a database that is part of a transaction, other users on the network do not have access (read or write) to the records until you end the transaction.
When other users on the network try to access records you have modified, they must wait until you end your transaction. They receive the message "Record not available ... please wait" until the records become available. Because of this, it is important to keep the length of the transaction to a minimum or conduct the transaction during times when others do not need access.

в END TRANSACTION (MSDE):
автор
Any updates to the database that were made between the previous BEGIN TRANSACTION and the END TRANSACTION are committed. If the transaction is the first or only transaction (that is, the transaction isn't nested), the changes are written to disk.
If a transaction is nested, END TRANSACTION causes all cached updates to be folded into the next higher transaction level. Nesting transactions has the potential to overwrite changes made to data at a higher transaction level.
If END TRANSACTION generates an error (for example, there is insufficient disk space to write changes to disk), changes made during the transaction are cancelled and the transaction ends.

Очень подробная документация с сайта производителя, не находите ли ? Кстати это касается не только VFP, а и прочих продуктов MS - к примеру когда вышла .NET и я решил поискать в документации разделы, посвященные разработке компонент, взаимодействию с IDE и прочее, то там просто этого не было.

f_w_p
Значит остается один вариант -записи кэшируются на клиенте, но таблицы блокирутся. Но согласитесь, что это не транзакция!

Не соглашусь - транзакция чистой воды. Не понимаю, причем тут надежность хранения и отката данных и гарантированное пакетное проведение всех изменений в БД ? Кстати, судя по описаниям оператора END TRANSACTION, как раз больше похоже на то, что изменения пишутся новыми страницами (записями ?) на момент END TRANSACTION и только удачной фиксации, удаляются оригинальные страницы (вариант как с ASA наоборот выносить оригинальные страницы по идее не прокатывает - нет выделенного сервера, который бы потом при запуске БД после аварийного завершения занимался откатом таких страниц).
17 фев 06, 13:20    [2367354]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

в мсдн поиск по "transaction in visual foxpro" мне выдал 275 топиков.
Обсуждать поисковые механизмы я как-то не готов. На сайбейзе тоже не особо
найдёшь что-то (то же на оракле и на ибм)



Posted via ActualForum NNTP Server 1.3

17 фев 06, 13:32    [2367443]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
H5N1
Guest
1024

в мсдн поиск по "transaction in visual foxpro" мне выдал 275 топиков.
Обсуждать поисковые механизмы я как-то не готов. На сайбейзе тоже не особо
найдёшь что-то (то же на оракле и на ибм)



Posted via ActualForum NNTP Server 1.3


а прочитать что за муйню он нашел ;)

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarfoxgen/html/msdn_buffer.asp
Fortunately, Visual FoxPro provides a mechanism that can resolve this problem: the transaction. A transaction is a specific group of changes that must either all be made at once or all abandoned. A transaction is started with the begin transaction command. Any table changes after this command has been issued, even those made with tableupdate(), are not written to the disk until an end transaction command is encountered. Think of a transaction as a "buffer's buffer." The transaction is held until you determine all changes could be made successfully and issue an end transaction. If the program crashes or the computer is rebooted before end transaction is encountered, or if your program issues a rollback command because one of the changes couldn't be made successfully, none of the changes are actually written to disk.

Let's look at the bank update example but this time use a transaction as a "wrapper" for the update:

begin transaction
seek M.ACCOUNT1
replace BALANCE with BALANCE - M.AMOUNT
seek M.ACCOUNT2
replace BALANCE with BALANCE + M.AMOUNT
llSuccess = tableupdate(.T.)
if llSuccess
end transaction
else
rollback
endif llSuccess

If the first account balance was changed but the second couldn't be successfully, llSuccess will be .F., and the rollback command will prevent the first change from being written to disk. If everything went OK, end transaction will write out both changes at once.
17 фев 06, 13:41    [2367515]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
1024
Member

Откуда: Нижний Новгород
Сообщений: 14267

сам прочитай. Вслух


Posted via ActualForum NNTP Server 1.3

17 фев 06, 14:00    [2367649]     Ответить | Цитировать Сообщить модератору
 Re: C++/Linux/FireBird  [new]
I_Am222
Guest
f_w_p

Уважамый ASCRUS упустил еще один вариант. Записи кэшируются на клиенте, но таблицы блокирутся.
Но такая ситуция может привести к другим проблемам. Кто должен разблокировать таблицы в случае краха клиента?
Как ни крути, но полноценно реализовать транзакции на ф/с невозможно.



погодите - я делал крах клиенту тому самому на котором СТОП появилось.. я его просто выключил.. и ничего все откатилось.. как? при помощи чего? не знаю - но мне результат нужен

Полноценность транзакций в нас тоже вложили вместе с текстами доков?
f_w_p

Значит остается один вариант -записи кэшируются на клиенте, но таблицы блокирутся. Но согласитесь, что это не транзакция!.

о уже пошел спот о терминологии
Я говорил не о названии ТРАНЗАКЦИЯ, а о том что оно делает
17 фев 06, 14:04    [2367677]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
ASCRUS
Member

Откуда: МО Электросталь
Сообщений: 5994
1024

в мсдн поиск по "transaction in visual foxpro" мне выдал 275 топиков.
Обсуждать поисковые механизмы я как-то не готов. На сайбейзе тоже не особо
найдёшь что-то (то же на оракле и на ибм)



Posted via ActualForum NNTP Server 1.3

Не надо ничего на сайтах искать. Все такие детали должны присутствовать в штатной документации продуктов, причем в подробном виде и с примерами использования. Если они не присутствуют, значит хреновая документация.
17 фев 06, 14:09    [2367713]     Ответить | Цитировать Сообщить модератору
 Re: Access и FoxPro. Сравнение мощей  [new]
I_Am222
Guest
[quot H5N1

а прочитать что за муйню он нашел ;)

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarfoxgen/html/msdn_buffer.asp
Fortunately, Visual FoxPro provides a mechanism that can resolve this problem: the transaction. A transaction is a specific group of changes that must either all be made at once or all abandoned. A transaction is started with the begin transaction command. Any table changes after this command has been issued, even those made with tableupdate(), are not written to the disk until an end transaction command is encountered. Think of a transaction as a "buffer's buffer." The transaction is held until you determine all changes could be made successfully and issue an end transaction. If the program crashes or the computer is rebooted before end transaction is encountered, or if your program issues a rollback command because one of the changes couldn't be made successfully, none of the changes are actually written to disk.

Let's look at the bank update example but this time use a transaction as a "wrapper" for the update:

begin transaction
seek M.ACCOUNT1
replace BALANCE with BALANCE - M.AMOUNT
seek M.ACCOUNT2
replace BALANCE with BALANCE + M.AMOUNT
llSuccess = tableupdate(.T.)
if llSuccess
end transaction
else
rollback
endif llSuccess

If the first account balance was changed but the second couldn't be successfully, llSuccess will be .F., and the rollback command will prevent the first change from being written to disk. If everything went OK, end transaction will write out both changes at once.
[/quot]

дружище, мало ттого, что давеча Вы привели неверный перевод.. ладно кто-то перевел, а Вы не зная фокса вообще запостили.. с кем не бывает.. но тут я понял, что английского Вы вообще не понимаете? или Вы хотели там.. в увидеть что-то про те мудреные слова, которыми оперируете?
17 фев 06, 14:13    [2367735]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 17 18 19 20 21 [22] 23 24 25 26 .. 72   вперед  Ctrl
Все форумы / Сравнение СУБД Ответить