:: Visual Foxpro, Foxpro for DOS
Re: Проблема блокировки клавиатуры на время выполнения процедуры
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Ydin
Да, нормально. Даже нравится. Я его читатель

Да так же. Поворчу немного, но его советы внимательно читаю, он же не глупости предлагает. Просто порой поздно менять всю идеологию, раз в своей особых проблем за годы не выплыло. А учиться новым знаниям - никогда не зазорно, и я учусь.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
descent52_tmp
Igor Korolyov
"В принципе" делать "одну таблицу - универсальный справочник" ...
Искренне тебе, Игорь, желаю никогда не встретиться с подобной бредятиной в работе, потому что понять некий код это одно, а понять логику - да вот к..й вам, а не золотая рыбка, это другое. Втыкать, почему тут id_str=2, а тут id_str=3 и т.д., a не A.id_str=B.id_str, да лопатой по башке автору ..уть пару раз, может автор начнёт кислое от длинного отличать... Паразитизм хорош только для паразита, одно дело по незнанию, и совсем другое дело осознанно такое писать

Наверное, можно вернуться к этому вопросу.
Вы правы только наполовину, и вот почему.

В постах в теме красочно (даже с использованием очень умного слова "сущность") описывается известное с ДОС-времен объединение справочников в одну таблицу.
Но справочники обычно связаны каскадно между собой, в ДОСе эта проблема мобильно решалась через SET RELATION.
В VFP из-за триггеров этот прием заброшен, коды смотрятся нелепо, и применяется он разве что как самоделка в старых программах для каких-нибудь фирм.
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
lulgu
Но справочники обычно связаны каскадно между собой, в ДОСе эта проблема мобильно решалась через SET RELATION.

Это да. SQL-SELECT пришел в Foxpro позднее. Хотя я и сейчас эти связки пользую - ибо еще нужно в кодовой странице правильно сохранить. Хотя все что можно - селектами в курсор, а потом в подготовленные структуры заливаем.

lulgu
В VFP из-за триггеров этот прием заброшен, коды смотрятся нелепо, и применяется он разве что как самоделка в старых программах для каких-нибудь фирм.

Так Александр Юдин об этом и говорит - что переписывать логику из-за зависимости от триггера (а значит СУБД, почти у всех есть свой синтаксис и функционал, я больше с Оракл работаю, вряд ли туда легко перенести триггеры Мускуля. Идеи можно, не спорю.
Разумеется, если правильно понял Юдина. Ну, мы-то с ним лично знакомы.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
sphinx

В принципе, да.
Судя по описанию, Юдин перенес все что можно, но такие решения не тиражируются.
К сожалению, компактное ДОС-решение в данном случае в VFP превращается в тяжелую проблему интерфейса.
Мне приходилось заниматься этой проблемой в свое время - в ДОСе точно также относительно компактно решалось не только со справочниками, но и с однотипными отчетами (когда еще рамки рисовались "черточками").
По-моему, в VFP решение лежит полностью в области довольно сложного класса динамически формируемого Grid, но какой-либо необходимости в этом ведь нет.
И, конечно, SQL-серверы могут сами решить эти логики, выводить вполне можно через курсоры.



Исправлено 2 раз(а). Последнее : lulgu, 02.01.18 00:01
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
lulgu
Судя по описанию, Юдин перенес все что можно, но такие решения не тиражируются.

Трудно сказать, что у них тиражируется, но он вопросами ЖКХ, как я понял занимался плотно, а это уже не для разового заказчика. Но тут лучше его комменты услышать, я лишь выдвинул предположения.

lulgu
К сожалению, компактное ДОС-решение в данном случае в VFP превращается в тяжелую проблему интерфейса.
Это да. Сам на днях переписывал простенькую по виду задачу - но пришлось менять все - не только интерфейс, а и всю логику. У меня получился один SQL-запрос, когда разобрал, что надо получить на выходе. Ну и грид (со своим приемом параметров, чтоб не рисовать ручками всякую ширину колонок и прочую ненужную чепуху)

lulgu
По-моему, в VFP решение лежит полностью в области довольно сложного класса динамически формируемого Grid, но какой-либо необходимости в этом ведь нет.

Суть мысли может и не понял.. Но! 1) Неплохие гриды есть на форуме, изобретать велосипед (я все равно тоже под себя переделываю, не все устраивает) - большого смысла и нет. К примеру, меня в свое время вполне устраивал Grid aka Petrovish - он есть в решениях.

Может созрею - так покажу свою систему загрузки грида, в частности с ключевыми столбцами (полями) в разных формах. Критику приму с радостью, ибо допилить можно (фиг знает, может и концепцию поменяю)

lulgu
И, конечно, SQL-серверы могут сами решить эти логики, выводить вполне можно через курсоры.

Дак да. Только в гриды все одно пихать выводимые данные надо. Ну у нас психологически точно не поймут, хотя ИК прав - пусть задают данные - им покажут все, что навводили. У меня поиск по первым буквам и сразу в верхний регистр реализован, даже классом.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
PaulWist
PSS Аналогичную структуру использует всё "конфигурируемое" ПО (1С, Навижен, Аксапта итд)
1С - ни разу. При создании нового справочника в базу летит DDL на создание новой таблицы (иногда 2-3).
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Igor Korolyov
spinz
На самом деле контроль ссылочной целостности - адское зло и лишняя головная боль как для юзеров, так и для разработчиков.
Ну это можно решить по всякому - например абсолютным дублированием информации. Т.е. занесли в договор "Иванова Ивана Ивановича" - записали в специальную таблицу "ЧеловекиДоговора" всю необходимую для договора инфу (не обязательно всю что есть вообще в системе на этого человека). После этого и справочник можно править (хоть сделать из этого человека "Гадю Петрович Хренову", хоть просто удалить), и договор не "развалится" никогда...
Во многих случаях это вполне себе нормальное решение будет.
Есть, например, такая штука: FDA 21 CFR Part 11 Compliance. При проектировании БД, соответствующей всем правилам изложенным в этих документах, безвозвратное удаление вообще должно отсутствовать как класс.
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
PaulWist
of63
... Я ниче не понял ...

Пример: есть справочник "Тип документа" содержащий поля TypeDoc_ID, Name, так же есть справочник "Должности" с полями Appointment_ID, Name, ну и до кучи справочник валют с полями TypeCurrency_ID, Name.
Что общего у этих справочников - это структура данных ID, Name.

Что напрашивается сделать - поместить все три справочника в одну таблицу, поскольку структура у них одинаковая.
Какие выгоды это даст - можно создавать любое количество справочников с таким типом данных, те юзеру не нужны права на create/alter/drop table, а достаточно прав на Insert/Update/Delete одной таблицы (вернее двух).

Таким образом, структура данных из множества таблиц вырождается в две таблички:
таблица метаданных - Dictionary (ID primary key, Name) это название справочников ("Тип документа", "Должности", "Валюты" итд).

И табличка самих данных DictDetails (ID primary key, Dictionary_ID foreing key on Dictionary (ID), Name) это Директор, Дворник, Рубли, Юани, Договор, Заявка итд.

PS Вроде Игорь "разжевал на пальцах".

PSS Аналогичную структуру использует всё "конфигурируемое" ПО (1С, Навижен, Аксапта итд)

Я эту абстрактную (но малополезную) идею понимаю. Ради шутки, ведь можно вообще без справочников (дикшенори) обойтись, а писать в единственное мемо поле "основной" таблицы данных строку типа (имя=значение), где имя - это аналог имени из справочника, или число (его ИД, и имя справочника). Тогда вся БД будет как 2 таблицы:
- "основная" - (ID и memo) с memo-содержимимым в виде строк (имя=значение)
- таблица связей - такое-то ID связано с другим ID в той же единственной "основной" таблице данных
Толку от этой идеи ровно ноль, кроме идеи, что можно все примерно нормально связать в абстрактном виде, и можно и "идеально" (много дикшенори-таблиц, и много основных, и много связующих). Может есть простая процедура, чтобы разобрать эти строки в memo основной таблицы, и пострить из них "обычную" структуру из множества таблиц (основных, связей, и дикшенори)
(В XML ведь так и сделали, именуют каждый элемент тэгом, размещают в нужном вложении, в другом тэге...)
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
pasha_usue
Есть, например, такая штука: FDA 21 CFR Part 11 Compliance. При проектировании БД, соответствующей всем правилам изложенным в этих документах, безвозвратное удаление вообще должно отсутствовать как класс.
Есть такая штука - провозгласить коммунизм. Еще есть такая штука - реализовать во всем мире...
- Экономика д.б. экономной.
-imagine all the people living life in peace (John Lennon)
Цитата:
Леннон заявил, что песня «является в сущности Коммунистическим манифестом, хотя он сам не коммунист и не принадлежит ни к какому политическому движению».
- Jai guru deva om



Исправлено 1 раз(а). Последнее : Ydin, 02.01.18 20:03
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
of63
Я эту абстрактную (но малополезную) идею понимаю.
Видимо не полностью... Иначе не было бы про её полезность замечаний. Идея сама по себе нормальная - но как и любая другая идея, она имеет свою сферу применения. Когда у тебя в системе будет 100500 справочников (и они будут чуть ли не ежедневно добавляться) примитивного вида id/name, то я гарантирую что уже после первой сотни CREATE TABLE очередной_справочник (id int, name varchar(200)) ты кардинально изменишь своё мнение относительно "унифицированного" справочника.
Как тут иногда бывало - решают задачу автоматизации "тестов/вопросников" и начинают лепить на каждый вариант/набор вопросов по таблице - потом ещё на каждого сдающего тесты тоже по таблице... Смешно, конечно, но ведь "лабу" в институте то и так можно сдать - и потом писать в резюме что "хорошо понимаю теорию реляционных БД"

А когда у тебя в задаче потребуется вводить данные произвольно-форматных документов, при том что заранее ты даже не можешь представить сколько там будет реквизитов в "шапке", сколько в "строках", сколько вообще уровней подчинённости будет в этих самых "строках", и на какие из справочников какие реквизиты будут ссылаться, то ты поймёшь и другие идеи универсализации хранения информации, в частности и нечто подобное
of63
Ради шутки, ведь можно вообще без справочников (дикшенори) обойтись, а писать в единственное мемо поле "основной" таблицы данных строку типа (имя=значение)
подход, который реализован в так называемых NoSQL СУБД - например MongoDB...
of63
Толку от этой идеи ровно ноль
Если бы это был так, то не было бы создано несколько сотен разнообразных и разнонацеленных NoSQL СУБД.
Так что надо писать "Я не понимаю смыла", а не "нет смысла". То что ты лично не сталкивался с задачами в которых реляционная модель данных, мягко говоря, совершенно неподходящая, не значит что таких задач не существует, а те кто их решает - "психи какие то"


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> (Я эту абстрактную (но малополезную) идею понимаю.) ...Видимо не полностью...
Позволь тебе не поверить (что я не "понимаю", что я предлагаю), как я и тебе не всегда верю (что ты "понимаешь")

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

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

Не цепляйся к слову "я решаю задачу конторы, как и ты", мы не много не одной крови, "как я и ты" (Маугли ) Просто отношение к задаче важнее, надо бы наоборот мягко подталкивать к решению, или мягко подтолкнуть от "неправильного" (?) решения, ... но не наделять решения оппонента обидными эпитетами, пля )



Исправлено 3 раз(а). Последнее : of63, 02.01.18 21:47
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Программирование находится на стыке науки и искусства. "Искусство программирования" - так сказал Кнут. Как известно, даже в науке довольно часто есть несколько альтернативных путей, приводящих к схожему результату. В искусстве же путей достижения "истины" множество.

"Имеющий уши да услышит!.." [sm128]
Ratings: 0 negative/1 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Нафик Кнута, я не читал этого автора, как и Маркса/Энгельса/Ленина. Жизнь подсказала все законы жизни, которые есть. (Прогамерство 80-90-х тоже ))
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
Ссылку на Кнута я дал для любителей "священных коров". [sm128]
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Они и так на нее молятся, у них нюх нах
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
Но Кнут очень хорош, вернее его книга...
Полезней Маркса IMHO



Исправлено 1 раз(а). Последнее : Ydin, 02.01.18 21:59
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я без книги понял, что писать прогу надо как "человек", как его "представления о программе", выступить как идеальный компьютер, - и повторить тоже в коде (на каком то языке)

Доб. Вот будь внутри механического (программного)робота, будь как робот... вот ты и программист, мтк



Исправлено 1 раз(а). Последнее : of63, 02.01.18 22:05
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Igor Korolyov
of63
Я эту абстрактную (но малополезную) идею понимаю.
Видимо не полностью... Иначе не было бы про её полезность замечаний. Идея сама по себе нормальная - но как и любая другая идея, она имеет свою сферу применения. Когда у тебя в системе будет 100500 справочников (и они будут чуть ли не ежедневно добавляться) примитивного вида id/name, то я гарантирую что уже после первой сотни CREATE TABLE очередной_справочник (id int, name varchar(200)) ты кардинально изменишь своё мнение относительно "унифицированного" справочника.

К сожалению, вы рассматриваете справочники как абстрактные кубики.
Но таблицы имеют свои "обвязки" - связи, триггеры, процедуры, правила, SELECT-ы, NewID и т.д.
И с громоздкостью кодов для вашего "унифицированного" справочника вы столкнетесь уже не на сотой таблице, а в первой десятке.
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Лулгу, какой язык изложения связей ты предложишь?
Ratings: 0 negative/0 positive
Re: Проблема блокировки клавиатуры на время выполнения процедуры
Simple777

Сообщений: 33855
Дата регистрации: 05.11.2006
of63
Лулгу, какой язык изложения связей ты предложишь?

Черномырдин для связки использовал ненормативку. [sm128]
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 29 anelsasha  (Гостей: 28)

© 2000-2024 Fox Club 
Яндекс.Метрика