|
|
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
они рассматривали в первую очередь случай сети и разделяемого доступа.. Откуда дровишки? Особенно насчет первой очереди? Ссылку в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 16:09 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.Основной - отделение процесса редактирования данных пользователем от процесса изменения в таблице. это ли ни есть основной момент при работе с данными нескольких пользователей? Нет. Не основной. Вы путаете цели и средства их достижения. Компьютер имеет два вида памяти: оперативную (временную) и постоянную. Все модификации выполняются сначала в оперативной памяти и только потом спускаются по целому каскаду различных промежуточных буферов в постоянную (записываются на диск). Свои собственные буферы имеют самые разные системы и подсистемы. Если Вы будете напрямую редактировать таблицы, Вы будете постоянно "спускать" по цепочке буферов очередные порции изменений. Непрерывно "дергать" процессор, операционную систему и различные "железки" кучей мелких задачек. Т.е. тормозить свою собственную работу вне зависимости от факта работы других пользователей. Следует также заметить, что процесс записи - это самый уязвимый, в смысле целостности данных, процесс. Очень часто на старом железе возникали проблемы при сбое питания. Часть информации сохранилась, а часть оказалась потеряна. Наиболее часто это случалось именно при прямом редактировании данных. Логично сначала накопить тот "пакет" модификаций, который надо "спустить" в постоянную память (записать на диск), а потом одной общей командой выполнить этот процесс записи. Т.е. создать еще один буфер. В FoxPro всегда была буферизация данных. Уже в FoxPro for DOS. Просто в то время у программистов не было возможности как-то управлять этим буфером и приходилось писать собственные "буферы". Либо набор переменных памяти, либо копии таблицы, либо как-то еще. В Visual FoxPro появилась возможность явно управлять буфером. Т.е. основная цель буферизации - это как-то "укрупнить" процесс записи информации. Перейти от большого количества мелких разовых операций к групповым командам. К записи модификаций одним пакетом. Еще раз указываю Вам в качестве примера приложения MS Word и MS Excel. Как следствие, факт создание еще одного, дополнительного буфера предоставил возможность безболезненно откатить сделанные модификации. Отказаться от вносимых изменений. Ведь физически еще ничего не было записано. Достаточно просто уничтожить содержимое буфера без дополнительных "телодвижений". И. В. К.раньше пользователь открывал запись, блокировал, редактировал, сохранял и снимал блокировку.. На самом деле, все то же самое делает и операционная система вне зависимости от установки или снятия блокировки. Физически, информация записывается в какое-то одно, конкретное место на диске. Если два пользователя "одновременно" претендуют на модификацию этого места, то операционная система просто физически не может дать этого сделать. Кто-то запишет свои модификации раньше, кто-то позже. Но ни одновременной записи, ни конфликта не будет. Вопрос в том, какую "порцию" информации считать тем единым и неделимым куском, который не могут одновременно изменять два пользователя. На уровне FoxPro таким единым куском является запись. Не поле, а именно запись. И FoxPro просто не позволит двум пользователям одновременно изменять одну и ту же запись. Опять же вне зависимости от того, устанавливали ли Вы явно блокировки или нет. Однако в реальных задачах запись - это всего-лишь часть чего-то целого. Как правило, модифицируемая информация состоит из многих записей многих таблиц. Т.е. при записи информации необходимо обеспечить запись единым "куском" довольно большого объема информации. И это при том, что уже собственно FoxPro считает, что этот кусок состоит из многих кусочков поменьше. А для операционной системы - это вообще не "монолит", а "песчаная куча". Вот здесь и есть предмет конфликта совместного доступа. Физически, другой пользователь может вклинится в то, что чисто логически считается единой и не делимой информацией. Получится, что часть информации изменена одним пользователем, а часть - другим. Чтобы избежать таких неприятностей в Visual FoxPro используется транзакция. В ранних версиях FoxPro транзакции не было и ее организовывали вручную, устанавливая явные блокировки на несколько таблиц. Ну, а то, что вы подразумевали - это, как правило, банальная лень программистов. Установить запрет на редактирование записи, если ту же самую запись в этот момент редактирует другой пользователь. Это проще . Только и всего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 16:25 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Владимиру зря вы со мной раговариваете как с сосунком, я думаю когда вы под стол пешком ходили я как раз тем и занимался о чем вы мне здесь рассказываете, по порядку: В FoxPro всегда была буферизация данных очень в этом сомневаюсь, по нескольким причинам 1. была команда get, открывала для редактирования поле, если переменную памяти созданную для внесения изменения в поле называть буфером то вы правы, была... 2.был броус, перемещение из поля пораждало сохранение, тоже можно думать буфер.. но все это бред, комп по определению (точнее операционная система) не должн работать напрямую с данными, если вы знаете досовский ассемблер, то вам не представит труда вспомнит как происходит сохранение данных на диск и через какое прерываните, помоему int 21, для выполнения прерывания необходимо заполнить определенные регистры, типом, и непосредственными данными, указателем на буфер - область памяти выделенную для сохранения данных.. если это буферизация то я тогда анжела девис... можно писать на диск через порт, это сложнее, foxbase так не работал. далее, на диск физически пишется секторами и кластерами, строго опр. размера, точнее даже дорожками, так работает файловая система дос (предок виндовс), это нельзя называть буферизацией о которой мы здесь говорим, это работа компа на физ. уровне и все.. мы же здесь говорим о буферизации в том смысле который реализован в VFP. Физически, информация записывается в какое-то одно, конкретное место на диске. Если два пользователя "одновременно" претендуют на модификацию этого места, то операционная система просто физически не может дать этого сделать. Кто-то запишет свои модификации раньше, кто-то позже. Но ни одновременной записи, ни конфликта не будет вот это полный бред!!! никогда пользователи не конфликтуют за физическое пространство на диске... !!!! эти вопросы разруливает операционка, два пользователя физически не могут конфликтовать за один сектор!! т.к. структура дос этого не допустит никогда! смотрите таблицу FAT и разберайтесь, каждый файл размазан по диску в соответствии с предоставленным (случайно) свободным пространством, информация не записывается в одно конкретное место!!! она записывается кластерами по всему диску (блоками). На уровне FoxPro таким единым куском является запись. Не поле, а именно запись. И FoxPro просто не позволит двум пользователям одновременно изменять одну и ту же запись. Опять же вне зависимости от того, устанавливали ли Вы явно блокировки или нет. - бред! вы путаете физичесие и логические понятия!!! читайте больше! запись вообще не является куском в физическом плане, более того физически она вообще не существует как единица измерения! запись - логическое понятие определенное в структуре файла dbf. а пишется на диск как единица OS (определенная в конкретной ОС), сектор, кластер, и т.д. Как правило, модифицируемая информация состоит из многих записей многих таблиц как правило модифицируемая информация состоит из одного поля размером байт... Вот здесь и есть предмет конфликта совместного доступа. Физически, другой пользователь может вклинится в то, что чисто логически считается единой и не делимой информацией. Получится, что часть информации изменена одним пользователем, а часть - другим. - этого быть не5 может, для этого существует операционная система, она никогда не смешает записываемые куски, она сделает так: запишет ваши изменения, а потом запишет мои - получится каша, но это произойдет не одновременно! если вы не знаете как работает винт, то я вам поясню - оборот - дорожка считана или записана, этим управляет контроллер, он подчиняется операционке, та следит за порядком, иначе полетит фся файловая система.. Ну, а то, что вы подразумевали - это, как правило, банальная лень программистов. Установить запрет на редактирование записи, если ту же самую запись в этот момент редактирует другой пользователь. Это проще. Только и всего... не знаю о чем вы и что я подразумевал, но вот блокировки записи в фокпро были всегда как и во всех настольных субд того времени, поднимите доку , как впринципе и транзакции, не думайте что мир начался с вас.. а до вас ничего небыло и все были дураками.. это не так. по поводу буферизации, история такова, в 90м с фокпро конкурировал парадокс и кларион, интересны решения по совместному доступу к записям и таблицам (обратите внимание!!! не к к физическим данным на диске!!), в кларионе использовалась БУФЕРИЗАЦИЯ!!! ег8о встроенный визард генерил два варианте использования программы - локально и сетевой! изучив что он там генерит, я увидел БУФЕРИЗАЦИЮ!!! не блокировки а буферизацию! хотя и транзакции и блокировки были в языке предусмотренны. в фокспро небыло визарда, были команды блокировок, таблицы, строки (записи). позже фокс сделал буферизацию.. чтобы понимать процессы в развитии ИТ необходимо бегло знать историю становления развития ит, тогда многое становится понятным, и откуда ноги растут и где собака порылась.. вот так ув. господа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:04 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
просто вы путаете буферизацию ОС и буферизацию СУБД, это немного разные вещи... задача буферизации ОС созранить целостность файловой структуры, а задача буферизации СУБД сохранить целостность данных ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:16 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Да, дискуссия перешла в стадию "сам дурак" и обозначился единственный все знающий о фоксе, ДОСе, ассемблере и т.д. Однако этот знаток почему-то до сих пор не научился работать с триггерами. Хотя и рассказывает, правда без достаточной аргументации, даже о порядке мышления разработчиков фокса. прошло 5 лет.. а вопрос до сих пор не закрыт и актуален.. ну как убрать это - "тринер файлед", "реверт" например этим: в главной базе "..." есть зависимые, подчиненные записи , удаление невозможно. и просто окей! может ктото научился это делать? Остальные, разумеется, ничего об этом не знают, они ж только вчера родились. Но знаток, почему-то, опять же, у этих недорослей спрашивает. Они то вот научились, а знаток - нет. Что-то тут не так. Ну что ж, счастливо оставаться вместе с Вашими заблуждениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:19 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
глупость полная.. как работает тригер я не спрашивал, я спрашивал как в сообщении исправить сообщение .. :-)) а по поводу че спрашивает? ну я спрашиваю у тех кто знает, а не у тех кто покричать горазд... покричать я тоже могу, о многом, многому могу научить и подсказать, жаль, действительно прошло 5 лет а так никто и не нашел требуемого решения.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:34 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
не с целью нравоучений, просто для ознакомления с опытом поведаю, откройте доку за 92 год, там подробно описаны методы работы в сетях с разделяемым доступом: рассматривается два варианта 1. блокировки 2. буферизация.. вот откуда такие убеждения.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:37 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.... по поводу буферизации, история такова, в 90м с фокпро конкурировал парадокс и кларион, интересны решения по совместному доступу к записям и таблицам (обратите внимание!!! не к к физическим данным на диске!!), в кларионе использовалась БУФЕРИЗАЦИЯ!!! ег8о встроенный визард генерил два варианте использования программы - локально и сетевой! изучив что он там генерит, я увидел БУФЕРИЗАЦИЮ!!! не блокировки а буферизацию! хотя и транзакции и блокировки были в языке предусмотренны. в фокспро небыло визарда, были команды блокировок, таблицы, строки (записи). позже фокс сделал буферизацию.. чтобы понимать процессы в развитии ИТ необходимо бегло знать историю становления развития ит, тогда многое становится понятным, и откуда ноги растут и где собака порылась.. вот так ув. господа. Уважаемый, прочитав топик понял только то что Вы в одну кучу смешали историю и реальность, пытаясь доказать что мы все неправильно понимаем термин "буферизация". Но все его понимают как "буферизация в VFP" и поверьте - понимают однозначно со всеми ее особенностями, а Ваше трактование интересно только для "общего развития". Бывает что под одним термином скрываются разные понятия - давайте будем доказывать что было раньше, то и правильно. В FPD дбф-ку базой данных называли, давайте тому что сегодня понимается под базой данных другой термин придумаем и всех заставим его применять. Про слово "сервер" я вообще молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:41 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К. Владимиру зря вы со мной раговариваете как с сосунком, я думаю когда вы под стол пешком ходили я как раз тем и занимался о чем вы мне здесь рассказываете, Почему же? Вы почитайте СВОИ посты? КАК можно разговаривать при таких ответах? Смотрите, что у Вас получается: И. В. К.комп по определению (точнее операционная система) не должн работать напрямую с данными Хм... А я разве говорил не это? Просто Вы рассматриваете одну сторону этого процесса, а я говорю о более общей ситуации. Поскольку Вы утверждаете, что все знаете, то я не буду рассказывать про кеш ОС, файловый кеш, кеш объекта, кеш формы и т.д. и т.п. Ну, да, конечно, это все НЕ буферы. Название другое, понимаете ли... Дальше все то же самое. Вы просто повторяете все то, что я сказал, но другими словами. Не вижу противоречия. В принципе, я могу ответить Вам и в Вашем стиле. Но, вообще-то, я предполагаю, что Вы задали вопрос не с целью себя доказать, а с целью прояснить какие-то непонятные лично для Вас моменты. Исходя из этого предположения повторюсь. Цель буферизации - это формирование достаточно большого пакета изменений, которые затем будут сброшены одной командой. На уровне пользователя - это разделение процесса ввода изменений и процесса сохранения этих изменений на диск. Разрешение конфликтов совместного доступа - это уже следствие. Побочный результат использования буферизации. Ведь Вы сами сказали, что "разрулить" конфликт совместного доступа можно и без буферизации. Прямыми блокировками. Только ради этого создавать буферизацию просто не имело смысла. Еще раз обращаю Ваше внимание, на продукты MS Word и MS Excel, которые Вы с таким упорством игнорируете. Эти продукты изначальны были "заточены" для локального использования только и исключительно на одном компьютере одним пользователем. Тем не менее, буфер у них есть! Как Вы думаете, зачем? Почему они не пишут сразу на диск? Ведь нет же никаких попыток совместного использования? Да и пользователи не приставали бы с дурацкими вопросами, а куда все делось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:41 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.... жаль, действительно прошло 5 лет а так никто и не нашел требуемого решения.. Кроме Вас оно похоже никому и не нужно, проверка через TableUpdate() устраивает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 18:56 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
мнда, тяжело с малолетками.. или как там, начинаешь себя чувствовать стариком когда видишь что на форумах сплош малолетки.. 1. Прямыми блокировками. Только ради этого создавать буферизацию просто не имело смысла. ну бред полный!!! ну вы что не знаете к чему это приводет? не слышали про замок? блокировка приводит к тому что висит все! один захватил и не дает другим - кофе пьет!!! это все очень трудоемко в плане исполнения, отслеживания.. поэтому используется БУФЕРИЗАЦИЯ!!! не буферизация - кеш как вы всевремя путаете, а буферизация данных СУБД. 2.а с целью прояснить какие-то непонятные лично для Вас моменты. правильно, с целью, только эти моменты не как не связанны с буферизацией вопрос был о другом, хотя теперь это уже никому не важно.. 3.Цель буферизации - это формирование достаточно большого пакета изменений, которые затем будут сброшены одной командой ну какого пакета? открыл форму (открыл 20 таблиц) изменил признак .f. на .t. вышел, это большой пакет изменениний? или понятие большой у вас другое? если рассмотреть с точки зрения как это происходит то выглядит это так фокс используя средства ОС открывает файл, читает в выделенный буфер (область памяти) данные из файла в режиме реад. пользователь работает с буфером (областью памяти) команда табле апдате записывает данные буфера на диск установив предварительно врайт, все, данные записаны. другой может тутт же их изменить (переписать), первый не увидит.. а то что вы про ворд рассказываете и ексел, это немного другая история, там нет целостности данных, т.е. нет ключей, нет отношений, индексов и прочего из СУБД, поэтому все просто как в досе, открываете файл ( на уровне дос читаете в выделенную область памяти данные с диска) работаете с ними переодически автосохроняя и подгружая, потом сохраняете и закрываете файл. есть такие функции в ОС открыть, читать, двигать указатель, записать (сбросить буфер), закрыть. Это все не СУБД, в субд требования куда жестче, для того она и субд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:07 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
КАК можно разговаривать при таких ответах? вот именно,вы начали расказывать сколько будет 2*2 с первых постов.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:24 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
мнда, тяжело с малолетками.. или как там, начинаешь себя чувствовать стариком когда видишь что на форумах сплош малолетки.. Сударь, потрудитесь объяснить как Вы на основании имеющихся в теме текстов умудрились определить возраст участников! На чем основана уверенность в малом возрасте собеседников? И, похоже, совершенно непоколебимая? Хотя Вам уже намекали, что некоторые в 1989 году отнюдь на под стол пешком ходили и некоторые вещи могут знать и получше Вас. Так на каком основании Вы присвоили себе право называть других малолетками? Или это теперь такой вид вежливого обращения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:32 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Так на каком основании Вы присвоили себе право называть других малолетками? Или это теперь такой вид вежливого обращения? на основании ответов.. наверно.. хотя тех кто в 89 м малолетками никто не называл.. да и те кто в 89 м на свой счет и не примут эту шутку про старика.. :-))) ладно, не надо бычиться, коллеги, это же просто работа... хоть ваши познания меня и шокировали, однако могу пояснить - ничего личного, типичная дискуссия.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:39 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.мнда, тяжело с малолетками.. или как там, начинаешь себя чувствовать стариком когда видишь что на форумах сплош малолетки.. 1. Прямыми блокировками. Только ради этого создавать буферизацию просто не имело смысла. ну бред полный!!! ну вы что не знаете к чему это приводет? не слышали про замок? блокировка приводит к тому что висит все! один захватил и не дает другим - кофе пьет!!! "И эти люди еще запрещают мне ковырять в носу" (С) "мнда, тяжело с малолетками.."(с) Вы вообще-то с FoxPro работали? Хотя бы с DOS-версией? Знаете, чем отличается блокировка строки от блокировки таблицы? Блокировка ни в коем случае не запрещает читать данные. Она всего-лишь запрещает модифицировать данные. Причем только те, которые и были заблокированы. Все остальные - прекрасно продолжают работать. И. В. К.это все очень трудоемко в плане исполнения, отслеживания.. "мнда, тяжело с малолетками.." (с) Наоброт, это все решается элементарно. Разумеется, если Вы хотя бы пробовали это делать в FoxPro. И. В. К.2.а с целью прояснить какие-то непонятные лично для Вас моменты. правильно, с целью, только эти моменты не как не связанны с буферизацией вопрос был о другом, хотя теперь это уже никому не важно.. Почему же. Важно. Просто Вы пошли по стандартному пути - если проблему нельзя решить привычным лично Вам способом, значит, данный язык программирования - плохой. Вам указали пути и способы решения. Ваша реакция была - нет, я так делать не буду, поскольку не вижу в этом смысла. Вот Вам и пытаются объяснить смысл. И. В. К.3.Цель буферизации - это формирование достаточно большого пакета изменений, которые затем будут сброшены одной командой ну какого пакета? открыл форму (открыл 20 таблиц) изменил признак .f. на .t. вышел, это большой пакет изменениний? или понятие большой у вас другое? "мнда, тяжело с малолетками.." (с) Вы заранее знаете, что именно изменит пользователь? Или Вы предполагаете разный стиль написания приложения? Вот в этой форме много изменяют, поэтому буду использовать буферизацию, а вот в этой мало, поэтому буферизацию использовать не будут! И. В. К.а то что вы про ворд рассказываете и ексел, это немного другая история, там нет целостности данных, т.е. нет ключей, нет отношений, индексов и прочего из СУБД, поэтому все просто как в досе, открываете файл ( на уровне дос читаете в выделенную область памяти данные с диска) работаете с ними переодически автосохроняя и подгружая, потом сохраняете и закрываете файл. есть такие функции в ОС открыть, читать, двигать указатель, записать (сбросить буфер), закрыть. Это все не СУБД, в субд требования куда жестче, для того она и субд. "мнда, тяжело с малолетками.." (с) Вы вообще-то понимаете зачем я приводил в качестве примера Word и Excel? Вы ведь упорно настиваете на том, что буферизация не нужна, если работа происходит на одном компьютере с одним клиентом. Я и привел пример программ, которые используют буферизацию, хотя работают на одном компьютере с одним клиентом, да еще, по Вашим же собственным словам, там все происходит значительно проще чем в СУБД. Однако в этом случае Вы не видите ничего предосудительного, а в случае более сложной системы почему-то упорно отказываетесь это использовать. PS: Извиняюсь, что несколько перборщил с "остротами", но, как Вы, так и Вам. Несколько перефразируя: Относитесь к другим так, как хотели бы чтобы относились к Вам. Вы ЭТОГО хотели? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:40 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Блокировка ни в коем случае не запрещает читать данные. Она всего-лишь запрещает модифицировать данные. Причем только те, которые и были заблокированы. Все остальные - прекрасно продолжают работать. ну вот и ждите, пусть клиент ждет вместе с вами, все сидим курим пока я заблокировал и кофе пью... вы вообще с фоксом работаете или с дельфи? может вы вообще из другой области? блокировки не решаются элементарно, во всяком случае в досовском фоксе не елементарно, каждое открытие, модификация и закрытие должны собровождаться блокировками.. с учетом того что все делалось в коде use и т.д. нужно было крыжить тексты искать где пропущено закрытие блокировки или ее открытие.. значит, данный язык программирования - плохой. был бы он для меня плохой я бы сейчас не с вами разговаривал а сидел бы в C# например... Ваша реакция была - нет, я так делать не буду, поскольку не вижу в этом смысла ну почему же, смысл есть, но есть и более оригинальное решение, которое я пытаюсь найти 2 е сутки.. Вы ведь упорно настиваете на том, что буферизация не нужна ну как вам обьяснить, вот если вы запустите фоксбасе в досе, откроете через юсе таблицу и будете с ней работать, вы думаете в трактумой вами буферизации нет? В том то и дело, буферизация есть и в фоксе дос, просто это буферизация ОС, это не то о чем мы говорим! поймите это! а насчет малолеток - вы меня не обидели, меня это не трогает, чес. слово, видно с возраста вышел когда это обижает.. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 19:55 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.мнда, тяжело с малолетками.. Куда уж нам до ветерана Куликовской битвы ... ЗЫ "Дурак может задать такой вопрос, на который не ответит сотня мудрецов" (C) Восточная мудрость ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 20:08 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Владимир! вот я не поленился чтобы расставить точки над i открыть книжку по фоксу пишу вам оттуда дословно: в vfp существует два типа блокировок: 1. полная - запрещает чтение запись и изменение структуры... 2. блокировка изменений запрещает запись и изменение структуры это ответ на ваше : Блокировка ни в коем случае не запрещает читать данные. Она всего-лишь запрещает модифицировать данные. Причем только те, которые и были заблокированы. Все остальные - прекрасно продолжают работать. далее: можно блокировать запись set multilolocks ..., rlock, lock почитайте как это работает если не лень.. тут кто то спрашивал с чего я взял что буферизация придумана для разделяемого доступа? Вот далее написано: возможность использования буферов при редактировании данных значительно упрощает совместную обработку данных... при использовании буферов автоматически осуществляется тестирование данных, блокировка и снятие блокировки с таблиц и записей. с помощью буфероввы можете достаточно просто определить и разрешить конфликты при операциях модификации данных. текущая запись копируется в опер память или на жесткий диск под управлением vfp. др пользователи могут в это время без помех получить доступ к этой записи... и т.д. бла-бла-бла.. далее: ТИПЫ БЛОКИРОВОК 1 - буф. не используется 2.- пессимист... 3.- оптимист.. 4-пессим табл.. 5-оптим табл... не об этом мы весь день спорим? да, книжка: Работа в Visual FoxPro на примерах (версия 3.0 для Windows) каратыгин, Тихонов, тихонова бином москва 1995 я это читал давно и помню, а вы мне тут все лапшу на уши вешаете..студенты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 20:29 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К. Владимир! вот я не поленился чтобы расставить точки над i открыть книжку по фоксу пишу вам оттуда дословно: в vfp существует два типа блокировок: 1. полная - запрещает чтение запись и изменение структуры... Самплес в студию .... И. В. К.... почитайте как это работает если не лень.. На заборе тоже написано, а за забором нету Если не лень - пример кода блокировки чтения. Монопольное открытие не канает. Эту книгу полистай. Ее кстати не без участия Владимира писали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2008, 20:53 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
"И. В. К." <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:5213017@sql.ru... > Автор: И. В. К. > мнда, тяжело с малолетками.. > или как там, начинаешь себя чувствовать стариком когда видишь что на > форумах сплош малолетки.. > > 1. Прямыми блокировками. Только ради этого создавать буферизацию > просто не имело смысла. > > ну бред полный!!! ну вы что не знаете к чему это приводет? не слышали > про замок? > > блокировка приводит к тому что висит все! один захватил и не дает > другим - кофе пьет!!! Ага - точно!!! Есть у нас такие программеры. Еще на стадии просмотра данных, до момента начала редактирования блокируют необходимые записи - и хоть ты тресни, но даже посмотреть одни и те же данные пользователи не могут!!!! Вы, видимо к таким же относитесь!!! А ведь можно даже без буферизации ("буферизация данных СУБД", как вы выразились) обойтись. Просто ручками создать набор переменных (я использую свойства контролов "VALUE") и при нажатии кнопки изменить выполнить replace или update, которые НЕЯВНО, ТОЛЬКО на момент внесения изменений заблокируют необходимую/ые записи. По сути "ручной" вариант буферизации, которую вводили ТОЛЬКО потому, что никак не могли без нее выйти на сетевое разделение ресурсов. > это все очень трудоемко в плане исполнения, отслеживания.. поэтому > используется БУФЕРИЗАЦИЯ!!! И оссобых проблем не вижу. На одну - две таблицы - несложно. А вот в купе с ControlSource, указывающим на поле буферизованной таблицы - просто прелесть. Ни каких дополнительных движений по модификации ктоме tableupdate выполнять не надо. Значительно сокращается объем кода. > 2.а с целью прояснить какие-то непонятные лично для Вас моменты. > правильно, с целью, только эти моменты не как не связанны с > буферизацией вопрос был о другом, хотя теперь это уже никому не важно.. Я вам указал как сделать так, чтобы можно было прописать свою обработку данного события (отмену вставки/изменения/удаления из-за отказа тригера). Вам это показалось сильно сложно. ("Зачем мне обрабьотчик ошибок. Я ведь даже не знаю что это такое и как оно работает"). Или же слишком просто ("Я лучше поковыряю dll и буду отслеживать, чтобы в новых версиях мои изменения не затерли и распространю эти dll на все машины") > 3.Цель буферизации - это формирование достаточно большого пакета > изменений, которые затем будут сброшены одной командой > ну какого пакета? открыл форму (открыл 20 таблиц) изменил признак .f. > на .t. > вышел, это большой пакет изменениний? или понятие большой у вас > другое? О великий ГУРУ!!! У Вас самый сложный проект, который я видел в своей жизни. Ваша программа даже меняет .f. на .t.!!! Честное слово смешно. Видно что человек либо издевается над всеми либо действительно не очень умный человек, который думает что знает все. Я, честно сказать, склоняюсь ко второму. > если рассмотреть с точки зрения как это происходит > то выглядит это так > фокс используя средства ОС открывает файл, читает в выделенный буфер > (область памяти) данные из файла в режиме реад. пользователь работает с > буфером (областью памяти) > команда табле апдате записывает данные буфера на диск установив > предварительно врайт, > все, данные записаны. другой может тутт же их изменить (переписать), > первый не увидит.. Что вы говорите???? Так вот оно как все в этом мире. Я вам открою большой сектрет. С помощью того же tableupdate можно выдать запрос, что типа "ТОварисч!!! Пока вы вносили изменения другой пользователь там чего - то свое наколбасил посмотрим или перепишем неглядя???". > а то что вы про ворд рассказываете и ексел, это немного другая > история, Ну естественно - другая прога. > там нет целостности данных, Да вы что??? Случайный набор битов??? > т.е. нет ключей, нет отношений, индексов Спорно. Все это там есть, только все это скрыто от пользователя. А так как вы в нем не программите - то и от вас тоже. > и прочего из СУБД, поэтому все просто как в досе, открываете файл ( на > уровне дос читаете в выделенную область памяти данные с диска) работаете с > ними переодически >автосохроняя и подгружая, потом сохраняете и закрываете > файл. > есть такие функции в ОС открыть, читать, двигать указатель, записать > (сбросить буфер), закрыть. Это все не СУБД, в субд требования куда жестче, > для того она и субд. После всего, что вы тут понаписали, очень хочется Вас же и процитировать: "хотя не смешно, грусно.. и такие программисты пишут на фокспро... МНДА.." Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 05:45 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat научитесь читать то что вам пишет аппонент, а потом критикуйте.. ваши замечания отправляю в игнор.. т.к. не заслуживают внимания из-за отсутствия понимания предмета обсуждения вами.. Малолетка 1. если рекомендованную книгу писал владимир, не куплю.. ибо думаю - как все измельчало... чел пишет книгу не понимая не зная основ.. 2. сампл? да откройте хелп в конце концов и читайте! use **** exclusive - привиденые выдержки из книги находятся в главе - "работа в локальной сети", книга старая, что приближаете ее к истине в вопросе истории создания буферизации (блокировок). вы же мне пытались доказать что блокировки (буферизация) были созданы для защиты данных от потери при сбое питания например, я же вам толкую - созданы в первую очередь для решения проблем с разделяемым доступом и обработкой данных в СУБД, и говорим мы про СУБД, и ветка эта VFP а не ворд и не ексел, если вы такие спецы в екселе, то нужно писать туда, в ветки по екселю.. по поводу защиты данных, до появления буферизации были гатер и скатер, пользуйтесь! чем вам не буферизация в вашем понимании, и данные защитит от сбоев по питанию и пр. буферизация же это в первую очередь - блокировки! автоматизированные блокировки а не ручные как были до появления буферизации в фокспро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 06:23 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
по поводу книги: Программированием на Visual FoxPro увлёкся в 1997 году и с тех пор является его стойким поклонником. мнда... в это время я уже давно не увлекался... а был гуру смело могу сказать, лекции читал по фоксу.. Занимается программированием на FoxPro (Visual FoxPro) более пятнадцати лет. ну и что делать тем кто в фоксе 20 лет? читать это? ну да можно как биллитристику, перед сном.. чтобы улыбнуло.. :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 06:30 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
по поводу "ручной" блокипровки могу сказать следующее: система может попасть в клинч, или "смертельные обьятия". смертельные обьятие заключается в том, что когда какой-нибудь пользователь, заблокировав запись (или файл), пытается блокировать другую запись, которая уже заблокирована другим пользователем, а тот, в свою очередь, пытается заблокировать запись, блокированную первым пользователем... (дока по фоксу 89-93 гг) буферизация сняла все эти проблемы.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 07:14 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
И. В. К.по поводу "ручной" блокипровки могу сказать следующее: система может попасть в клинч, или "смертельные обьятия". смертельные обьятие заключается в том, что когда какой-нибудь пользователь, заблокировав запись (или файл), пытается блокировать другую запись, которая уже заблокирована другим пользователем, а тот, в свою очередь, пытается заблокировать запись, блокированную первым пользователем... (дока по фоксу 89-93 гг) буферизация сняла все эти проблемы.. А транзакции их обратно вернули. С Вами тяжело общаться, читать Ваши измышления как должно работать, и полное игнорирование того как реально работает. Тут принято свои спорные утверждения подтверждать реальным кодом, а не демагогией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 08:22 |
|
||
|
Trigger failed
|
|||
|---|---|---|---|
|
#18+
"И. В. К." <nospam@sql.ru> сообщил/сообщила в новостях следующее: news:5213841@sql.ru... > Автор: И. В. К. > Galyamov Rinat > научитесь читать то что вам пишет аппонент, а потом критикуйте.. > > ваши замечания отправляю в игнор.. т.к. не заслуживают внимания из-за > отсутствия понимания предмета обсуждения вами.. Ну что ж, уважаемый, очень хорошо что вы умеете обоснованно отвечать на аргументированные сообщения. > буферизация же это в первую очередь - блокировки! автоматизированные > блокировки а не ручные как были до появления буферизации в фокспро. Но объясните мне, что есть в вашем понимании "автоматизированные блокировки" и кто вам сказал что НЕЯВНЫХ (а в моем понимании это и есть блокировка) блокировок до введения буферизации небыло??? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2008, 10:32 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35093409&tid=1588219]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 496ms |

| 0 / 0 |
