powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Верно лди я делаю
14 сообщений из 14, страница 1 из 1
Верно лди я делаю
    #33118910
VFP&&&&____
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые гуру, хотелось бы услышать вашу оценку...
При написании задач, к примеру форм, я при открытии форму запросами к БД выбираю нужные данныев курсор - потом присваиваю контролам формы значения из этого курсора... (или же обновляемые вьюшки...)
при скидывании изменений обратно в БД использую буфферизацию и транзакции...
верно ли я мыслю?
И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл
Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС?
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33118925
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP&&&&____ Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС?
Так немного дольше, но подход мне Ваш нравится
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33118946
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP&&&&____При написании задач, к примеру форм, я при открытии форму запросами к БД выбираю нужные данные в курсор - потом присваиваю контролам формы значения из этого курсора... (или же обновляемые вьюшки...)
при скидывании изменений обратно в БД использую буфферизацию и транзакции...
верно ли я мыслю?
И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл
Нет ли вероятности, что я переношу идеологию файл Сервера на оракл, или же такая методика - это не есть идеология ФС?Перенос идеологии ФС на КС - это очень тонкий вопрос.
Если запросами к БД в курсор выбираются действительно только нужные данные, то о переносе идеологии ФС на КС речи не идет. А вот если не только нужные - тогда идет ;-)
Ну а курсоры - как особенность работы VFP с БД - рассматривай их как буфер на клиенте - и все будет ок.
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33119577
VFP&&&&____
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Urri

Если запросами к БД в курсор выбираются действительно только нужные данные, то о переносе идеологии ФС на КС речи не идет. А вот если не только нужные - тогда идет ;-)
Ну а курсоры - как особенность работы VFP с БД - рассматривай их как буфер на клиенте - и все будет ок.

ну ИМХО НУЖНЫЕ данные, а ненужные они мне зачем :-)
Спасибо за ответы... :-)
если честно я как-то не представляю КАК можно иначе писать?
ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...?
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33119629
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP&&&&____И потом, такой подход я использую если БД есть ДБС + ДБФ, но так же если БД есть Оракл
Если приложение пишется на FoxPro, то вот это "и для DBF и для ORACLE " - в корне неверный подход.

Котлеты отдельно, а мухи отдельно.

Oracle - клиент - сервер
DBF - файл - сервер

Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит.

VFP&&&&____
если честно я как-то не представляю КАК можно иначе писать?
ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...?

У Вас какие-то странные представдения о том, как работает FoxPro с таблицами и почему происходит падение баз. Вкратце. От того, что таблицы открыты по USE они упасть не могут!

Кстати, если уж Вы делаете Local View, то не обращали внимание на "странный" факт, что открытие View автоматически открывает и все таблицы-источники, на основании которых он был построен. Т.е. Вы делаете все тот же USE. Только неявно.
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33119721
VFP&&&&____
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
Котлеты отдельно, а мухи отдельно.

Oracle - клиент - сервер
DBF - файл - сервер

Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит. .

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



VFP&&&&____
если честно я как-то не представляю КАК можно иначе писать?
ну разве что явно открывать таблицы USE.. shared но тогда ж падения базы может быть запросто...?

ВладимирМ
У Вас какие-то странные представдения о том, как работает FoxPro с таблицами и почему происходит падение баз. Вкратце. От того, что таблицы открыты по USE они упасть не могут!

насчет "почему падают базы" честно у меня нет представления ибо за 8 лет НИ РАЗУ не упало ничего (я просто сказал это на волне того флейма, который несут в сторону фокса в соседней ветке - прошу извинить)


ВладимирМ
Кстати, если уж Вы делаете Local View, то не обращали внимание на "странный" факт, что открытие View автоматически открывает и все таблицы-источники, на основании которых он был построен. Т.е. Вы делаете все тот же USE. Только неявно.

да это я знаю, неверно выразился с падением... падают они ИМХО в момент скидывания изменений, но, если делать буфферизацию и транзакции то падения лично я не наблюдал.. даже пробовал шнур из розетки вытянуть... ничего не происходило
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33120091
Hor_net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю как в ФС так и КС технологиях. Мне лично не нравится использование специфических для ФС технологий имеющихся в VFP, потому работая с БД любого типа всегда пользуюсь методом которым пользуетесь и Вы (Уважаемый автор темы). Т.е. чтение перед редактированием в курсор (-ы) и запись из курсора (-ов) в БД после редактирования.

Контролам формы значения присваиваю на этапе редактирования. Во всяком случае для заголовочной части документа. Просто при открытии формы зачитываю заголовок в курсор а потом делаю SCATTER NAME ThisForm.NewValues MEMO. А controlsource имеют значения ThisForm.NewValues.date, ThisForm.NewValues.number? ну и т.п.

Для grid-ов использую функцию формирования колонок по описанию в dbf - файле который сам и заполняю (такое легко придумать). В гриде остается только сослаться на такой описатель.
При сохранении или прописываю аккуратно каждый insert и update или если о скорости можно не беспокоиться, то использую самопальную функцию записи списка в таблицу (или объекта в таблицу) (это тоже несложно написать и для MS SQL и для VFP-баз и для чего угодно). Собственно все эти буферизованные таблицы это тоже самое только в составе VFP. Но плохи они тем, что если будете переходить на КС, то приделтся все переписывать. А когда свое, то легко заменить одно на другое.

Вот так.
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33120415
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VFP&&&&____ ВладимирМ
Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы. Не предназначены таблицы для этого. Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит.
а нельзя ли по-подробней в чем собственно проблема, что я делаю неверно? да, конечно возни в написанием запроса и присвоением контролам формы результатов больше чем если б напрямую грид вязать к таблице но все же.. возня - это ИМХО не проблема :-)


Прежде всего, что такое технология клиент-сервер? Серверу посылается инструкция, он эту инструкцию выполняет и возвращает результат клиенту. Т.е. сервер - это "черный ящик". Что там и как работает нас совершенно не интересует.

С файл-сервером все с точность наоборот. Принципиально важным является именно способ обработки.

Просто разная стратегия работы.

Вы ведь рассмотрели только "верхушку айсберга". Т.е. получение выборки. Да и то, в весьма примитивной интерпретации - "я могу всегда сделать выборку", подразумевая под этим команду Select-SQL.

Во-первых, далеко не всегда можно сделать выборку именно командой Select-SQL. Иногда надо задействовать более сложные алгортимы получения выборки.

Во-вторых, если речь идет об одной записи, то зачем вообще городить Local View? Не проще ли сделать примитивный SEEK с последующей буферизацией?

Т.е. получается, что сделать выборку командой Select-SQL не всегда возможно и не всегда нужно.

Далее, если пойти "вглубь", то ведь сброс изменений в таблицы из выборок - это все те же прямые операции записи с таблицами. Да, иногда лишний слой в виде Local View просто необходим, но работать исключительно через них только потому, что хочется делать "как в клиент-сервере" глупо.

Нужно исходить из принципа разумной достаточности. Лишняя копия данных (выборка) должна создаваться тогда, когда это действительно необходимо.
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33120431
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hor_netКонтролам формы значения присваиваю на этапе редактирования. Во всяком случае для заголовочной части документа. Просто при открытии формы зачитываю заголовок в курсор а потом делаю SCATTER NAME ThisForm.NewValues MEMO. А controlsource имеют значения ThisForm.NewValues.date, ThisForm.NewValues.number? ну и т.п.
Это просто нет слов! Действовать по принципу "зачем просто, если можно сложно". Не просто сделать выборку, но еще и SCATTER из этой выборки! Сильно подозреваю, что Вы так и не поняли, что такое буферизация при переходе от FPD к VFP

Hor_netСобственно все эти буферизованные таблицы это тоже самое только в составе VFP. Но плохи они тем, что если будете переходить на КС, то приделтся все переписывать. А когда свое, то легко заменить одно на другое.
Не получится. Это Вам только кажется, что Вы "обманули" файл-сервер и написали приложение "а-ля клиент-сервер". Если покопаться в коде, то выплывут все "родимые пятна" файл-сервера. Слишком уж большой соблазн напрямую обратиться к таблице и сделать в нее запись вместо предварительной выборки с тщательно прописанными INSERT и UPDATE.

Вряд ли Вам удалось написать что-то вроде "трех-уровневого" приложение (роль среднего слоя выполняют все Ваши выборки, исключающие прямое чтение-запись DBF-таблиц). Т.е. в принципе, это конечно, возможно, но очень сложно и тяжеловесно.
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33120740
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

> Если приложение пишется на FoxPro, то вот это "и для DBF и для ORACLE " - в корне неверный подход.

Зря ты так...

> Oracle - клиент - сервер
> DBF - файл - сервер

Это не значит, что при работе с родными таблицами нельзя применять принципы КС.

> Писать приложение на DBF по технологии клиент-сервер - это создавать себе большие проблемы.

Вовсе нет.

> Не предназначены таблицы для этого.

Владимир, ты не прав :)

> Как элемент приложения (LOCAL VIEW) - это можно, но писать так ВСЕ приложение - не стоит.

Стоит. Если конечно позаботится сначала о достаточной технологической поддержке (НО эта поддержка нужна будет и при "прямой" работе с таблицами, так что это не ДОПОЛНИТЕЛЬНЫЕ затраты).
Конечно вместо LocalView можно использовать и другие механизмы опосредования - простые запросы с последующим "ручным" сбором изменений и их перенаправлением в исходную таблицу, CAD который в принципе есть нечто среднее между "ручным" и LocalView.

В общем я работаю с данными именно опосредованно (через LV в том числе, но этим не обязательно ограничиваться!), и никаких проблем не испытываю. Более того меня не беспокоят пресловутые торможения на гриде под которым огромная таблица с SET FILTER, или среда данных формы с 50-ю таблицами и столькими-же связями между ними (которые при этом вовсе не так безукоризненно работают как хотелось бы)...

Так что зря ты так наехал на КС идеологию...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33121047
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor Korolyov
Так что зря ты так наехал на КС идеологию...

Я наехал не на КС идеологию, а на абсолютизацию идеологии.

Почему я должен делать ВСЕ именно в КС идеологии, если вот в данном месте мне удобнее использовать прямой доступ к таблице?

Т.е. мне запрещено использовать SEEK, LOCATE, SCAN по исходной таблице (DBF)? Я должен всегда делать Select-SQL? С какой стати?
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33121069
VFP&&&&____
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Igor Korolyov

Так что зря ты так наехал на КС идеологию...

Posted via ActualForum NNTP Server 1.2

то есть Игорь - то, что я описал - это все же ближе к КС технологии чем к ФС?
почему я так пишу - вот не знаю... лет 8 назад писал именно напрямую в таблицы, но потом попробовал выборки, вьюшки - сложней, но не настолько

спасибо всем за ответы!
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33122977
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi VFP&&&!

> то есть Игорь - то, что я описал - это все же ближе к КС технологии чем к ФС?

Да.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Верно лди я делаю
    #33122978
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi ВладимирМ!

> Я наехал не на КС идеологию, а на абсолютизацию идеологии.

Извини, но из текста твоего первого сообшения очень сложно сделать такой вывод.
"в корне неверный", "создавать себе большие проблемы", "Не предназначены"...
Я же хотел сказать что "можно", "не сложно", "отлично работает".

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Верно лди я делаю
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]