|
|
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Уважаемые гуру, хотелось бы услышать вашу оценку... При написании задач, к примеру форм, я при открытии форму запросами к БД выбираю нужные данныев курсор - потом присваиваю контролам формы значения из этого курсора... (или же обновляемые вьюшки...) при скидывании изменений обратно в БД использую буфферизацию и транзакции... верно ли я мыслю? И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 10:56:13 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
VFP&&&&____ Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС? Так немного дольше, но подход мне Ваш нравится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 10:59:35 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
VFP&&&&____При написании задач, к примеру форм, я при открытии форму запросами к БД выбираю нужные данные в курсор - потом присваиваю контролам формы значения из этого курсора... (или же обновляемые вьюшки...) при скидывании изменений обратно в БД использую буфферизацию и транзакции... верно ли я мыслю? И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС?Перенос идеологии ФС на КС - это очень тонкий вопрос. Если запросами к БД в курсор выбираются действительно только нужные данные, то о переносе идеологии ФС на КС речи не идет. А вот если не только нужные - тогда идет ;-) Ну а курсоры - как особенность работы VFP с БД - рассматривай их как буфер на клиенте - и все будет ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 11:08:38 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Urri Если запросами к БД в курсор выбираются действительно только нужные данные, то о переносе идеологии ФС на КС речи не идет. А вот если не только нужные - тогда идет ;-) Ну а курсоры - как особенность работы VFP с БД - рассматривай их как буфер на клиенте - и все будет ок. ну ИМХО НУЖНЫЕ данные, а ненужные они мне зачем :-) Спасибо за ответы... :-) если честно я как-то не представляю КАК можно иначе писать? ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 14:16:40 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
VFP&&&&____И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл Если приложение пишется на FoxPro, то вот это "и для DBF и для ORACLE " - в корне неверный подход. Котлеты отдельно, а мухи отдельно. Oracle - клиент - сервер DBF - файл - сервер Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит. VFP&&&&____ если честно я как-то не представляю КАК можно иначе писать? ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...? У Вас какие-то странные представдения о том, как работает FoxPro с таблицами и почему происходит падение баз. Вкратце. От того, что таблицы открыты по USE они упасть не могут! Кстати, если уж Вы делаете Local View, то не обращали внимание на "странный" факт, что открытие View автоматически открывает и все таблицы-источники, на основании которых он был построен. Т.е. Вы делаете все тот же USE. Только неявно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 14:31:01 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Котлеты отдельно, а мухи отдельно. Oracle - клиент - сервер DBF - файл - сервер Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит. . а нельзя ли по-подробней в чем собственно проблема, что я делаю неверно? да, конечно возни в написанием запроса и присвоением контролам формы результатов больше чем если б напрямую грид вязать к таблице но все же.. возня - это ИМХО не проблема :-) VFP&&&&____ если честно я как-то не представляю КАК можно иначе писать? ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...? ВладимирМ У Вас какие-то странные представдения о том, как работает FoxPro с таблицами и почему происходит падение баз. Вкратце. От того, что таблицы открыты по USE они упасть не могут! насчет "почему падают базы" честно у меня нет представления ибо за 8 лет НИ РАЗУ не упало ничего (я просто сказал это на волне того флейма, который несут в сторону фокса в соседней ветке - прошу извинить) ВладимирМ Кстати, если уж Вы делаете Local View, то не обращали внимание на "странный" факт, что открытие View автоматически открывает и все таблицы-источники, на основании которых он был построен. Т.е. Вы делаете все тот же USE. Только неявно. да это я знаю, неверно выразился с падением... падают они ИМХО в момент скидывания изменений, но, если делать буфферизацию и транзакции то падения лично я не наблюдал.. даже пробовал шнур из розетки вытянуть... ничего не происходило ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 14:54:21 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Работаю как в ФС так и КС технологиях. Мне лично не нравится использование специфических для ФС технологий имеющихся в VFP, потому работая с БД любого типа всегда пользуюсь методом которым пользуетесь и Вы (Уважаемый автор темы). Т.е. чтение перед редактированием в курсор (-ы) и запись из курсора (-ов) в БД после редактирования. Контролам формы значения присваиваю на этапе редактирования. Во всяком случае для заголовочной части документа. Просто при открытии формы зачитываю заголовок в курсор а потом делаю SCATTER NAME ThisForm.NewValues MEMO. А controlsource имеют значения ThisForm.NewValues.date, ThisForm.NewValues.number? ну и т.п. Для grid-ов использую функцию формирования колонок по описанию в dbf - файле который сам и заполняю (такое легко придумать). В гриде остается только сослаться на такой описатель. При сохранении или прописываю аккуратно каждый insert и update или если о скорости можно не беспокоиться, то использую самопальную функцию записи списка в таблицу (или объекта в таблицу) (это тоже несложно написать и для MS SQL и для VFP-баз и для чего угодно). Собственно все эти буферизованные таблицы это тоже самое только в составе VFP. Но плохи они тем, что если будете переходить на КС, то приделтся все переписывать. А когда свое, то легко заменить одно на другое. Вот так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 16:42:56 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
VFP&&&&____ ВладимирМ Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит. а нельзя ли по-подробней в чем собственно проблема, что я делаю неверно? да, конечно возни в написанием запроса и присвоением контролам формы результатов больше чем если б напрямую грид вязать к таблице но все же.. возня - это ИМХО не проблема :-) Прежде всего, что такое технология клиент-сервер? Серверу посылается инструкция, он эту инструкцию выполняет и возвращает результат клиенту. Т.е. сервер - это "черный ящик". Что там и как работает нас совершенно не интересует. С файл-сервером все с точность наоборот. Принципиально важным является именно способ обработки. Просто разная стратегия работы. Вы ведь рассмотрели только "верхушку айсберга". Т.е. получение выборки. Да и то, в весьма примитивной интерпретации - "я могу всегда сделать выборку", подразумевая под этим команду Select-SQL. Во-первых, далеко не всегда можно сделать выборку именно командой Select-SQL. Иногда надо задействовать более сложные алгортимы получения выборки. Во-вторых, если речь идет об одной записи, то зачем вообще городить Local View? Не проще ли сделать примитивный SEEK с последующей буферизацией? Т.е. получается, что сделать выборку командой Select-SQL не всегда возможно и не всегда нужно. Далее, если пойти "вглубь", то ведь сброс изменений в таблицы из выборок - это все те же прямые операции записи с таблицами. Да, иногда лишний слой в виде Local View просто необходим, но работать исключительно через них только потому, что хочется делать "как в клиент-сервере" глупо. Нужно исходить из принципа разумной достаточности. Лишняя копия данных (выборка) должна создаваться тогда, когда это действительно необходимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 19:00:12 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Hor_netКонтролам формы значения присваиваю на этапе редактирования. Во всяком случае для заголовочной части документа. Просто при открытии формы зачитываю заголовок в курсор а потом делаю SCATTER NAME ThisForm.NewValues MEMO. А controlsource имеют значения ThisForm.NewValues.date, ThisForm.NewValues.number? ну и т.п. Это просто нет слов! Действовать по принципу "зачем просто, если можно сложно". Не просто сделать выборку, но еще и SCATTER из этой выборки! Сильно подозреваю, что Вы так и не поняли, что такое буферизация при переходе от FPD к VFP Hor_netСобственно все эти буферизованные таблицы это тоже самое только в составе VFP. Но плохи они тем, что если будете переходить на КС, то приделтся все переписывать. А когда свое, то легко заменить одно на другое. Не получится. Это Вам только кажется, что Вы "обманули" файл-сервер и написали приложение "а-ля клиент-сервер". Если покопаться в коде, то выплывут все "родимые пятна" файл-сервера. Слишком уж большой соблазн напрямую обратиться к таблице и сделать в нее запись вместо предварительной выборки с тщательно прописанными INSERT и UPDATE. Вряд ли Вам удалось написать что-то вроде "трех-уровневого" приложение (роль среднего слоя выполняют все Ваши выборки, исключающие прямое чтение-запись DBF-таблиц). Т.е. в принципе, это конечно, возможно, но очень сложно и тяжеловесно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 19:10:53 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Hi ВладимирМ! > Если приложение пишется на FoxPro, то вот это "и для DBF и для ORACLE " - в корне неверный подход. Зря ты так... > Oracle - клиент - сервер > DBF - файл - сервер Это не значит, что при работе с родными таблицами нельзя применять принципы КС. > Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Вовсе нет. > Не предназначены таблицы для этого. Владимир, ты не прав :) > Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит. Стоит. Если конечно позаботится сначала о достаточной технологической поддержке (НО эта поддержка нужна будет и при "прямой" работе с таблицами, так что это не ДОПОЛНИТЕЛЬНЫЕ затраты). Конечно вместо LocalView можно использовать и другие механизмы опосредования - простые запросы с последующим "ручным" сбором изменений и их перенаправлением в исходную таблицу, CAD который в принципе есть нечто среднее между "ручным" и LocalView. В общем я работаю с данными именно опосредованно (через LV в том числе, но этим не обязательно ограничиваться!), и никаких проблем не испытываю. Более того меня не беспокоят пресловутые торможения на гриде под которым огромная таблица с SET FILTER, или среда данных формы с 50-ю таблицами и столькими-же связями между ними (которые при этом вовсе не так безукоризненно работают как хотелось бы)... Так что зря ты так наехал на КС идеологию... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 02:51:24 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Так что зря ты так наехал на КС идеологию... Я наехал не на КС идеологию, а на абсолютизацию идеологии. Почему я должен делать ВСЕ именно в КС идеологии, если вот в данном месте мне удобнее использовать прямой доступ к таблице? Т.е. мне запрещено использовать SEEK, LOCATE, SCAN по исходной таблице (DBF)? Я должен всегда делать Select-SQL? С какой стати? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 10:02:26 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Igor Korolyov Так что зря ты так наехал на КС идеологию... Posted via ActualForum NNTP Server 1.2 то есть Игорь - то, что я описал - это все же ближе к КС технологии чем к ФС? почему я так пишу - вот не знаю... лет 8 назад писал именно напрямую в таблицы, но потом попробовал выборки, вьюшки - сложней, но не настолько спасибо всем за ответы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2005, 10:12:19 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Hi VFP&&&! > то есть Игорь - то, что я описал - это все же ближе к КС технологии чем к ФС? Да. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2005, 02:37:30 |
|
||
|
Верно лди я делаю
|
|||
|---|---|---|---|
|
#18+
Hi ВладимирМ! > Я наехал не на КС идеологию, а на абсолютизацию идеологии. Извини, но из текста твоего первого сообшения очень сложно сделать такой вывод. "в корне неверный", "создавать себе большие проблемы", "Не предназначены"... Я же хотел сказать что "можно", "не сложно", "отлично работает". Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2005, 02:40:50 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=316&tid=1594039]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
205ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 529ms |

| 0 / 0 |
