powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / О совместимости БД и клиента
52 сообщений из 52, показаны все 3 страниц
О совместимости БД и клиента
    #40090989
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в проекте применяется база данных и ведётся разработка на sql, то часто проявляется сложность поддержки актуальности клиента и сервера. Если отсутствие новой таблицы в клиенте очевидно, то отсутствие поддержки очередного мелкого изменения в базе может всплыть при тестировании или уже при эксплуатации. На клиенте есть компиляция, выявляющая некоторые несоответствия, в некоторых базах тоже есть что-то подобное. Но между клиентом и базой подобного процесса нет. Чаще всего применяются организационные методы борьбы с этим. Какие есть технические методы?

Например, статическую кодогенерацию по шаблонам нельзя назвать существенно техническим методом. Если не изменить шаблон или не вызвать кодогенерацию, то клиент и сервер перестанут быть совместимы. Динамическая кодогенерация в этом смысле лучше, но обходится существенно дороже. Но и в этом случае, например, прямое указание имени поля в клиенте вызовет ошибку при изменении или удалении его из базы.

Причём, важность такой совместимости повышается после передачи в эксплуатацию, т.к. организационные меры легче применять ограниченное время или вообще разово, например, ударным тестированием, чем постоянно их поддерживать.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091005
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКакие есть технические методы?В общем случае - никаких.
Вести разработку строго в одной среде (типа как в 1С) и не использовать всех возможностей СУБД.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091010
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
часто проявляется сложность поддержки актуальности клиента и сервера

Что за сложность? Кто-то в клиенте не в состоянии сравнить номер версии БД с теми, с которыми он умеет работать?..
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091025
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
авторКакие есть технические методы?
В общем случае - никаких.
Вести разработку строго в одной среде (типа как в 1С) и не использовать всех возможностей СУБД.Пока знаю один. Утоньшение клиента относительно обработки частных данных, например, атрибутов. Если разработать изначально архитектуру клиента, чтобы он опирался на некие "интерфейсы", а не на реализации выборок и изменений данных. Получается прямая противоположность 1С. Правда, здесь другая крайность, если идти до конца по этому пути, то можно переизобрести RDP.


Dimitry Sibiryakov
tunknown
часто проявляется сложность поддержки актуальности клиента и сервера

Что за сложность? Кто-то в клиенте не в состоянии сравнить номер версии БД с теми, с которыми он умеет работать?..
Вопрос не в том, как сделать, чтобы работало в каком-то конкретном случае, а в том, чтобы такая проверка не понадобилась.


Такой вопрос у меня возник очень давно, когда я работал с Delphi 3. Зафетчил колонки в датасеты и любое изменение в базе приходится повторять в клиенте.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091110
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Такой вопрос у меня возник очень давно, когда я работал с Delphi 3. Зафетчил колонки в датасеты и любое изменение в базе приходится повторять в клиенте.

Такие вопросы чаще всего возникают от неграмотности в использовании инструмента. Достаточно не использовать persistent fields (это то, что Вы творчески назвали "зафетчил колонки в датасеты") - и проблемы не будет.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091227
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Вопрос не в том, как сделать, чтобы работало в каком-то конкретном случае, а в том, чтобы такая проверка не понадобилась.

И ответ на это - "никак, обломись". Приложение, способное работать с абсолютно любой базой, это нежизнеспособный монстр.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091353
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown,

БД и Клиент должны базироваться на общих метаданных - меняются метаданные (изменения сохраняются), БД перегенерируется, клиент сгенерирует запросы с учетом изменений метаданных.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091359
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
меняются метаданные (изменения сохраняются), БД перегенерируется

... Закрываем магазины на пару месяцев, пока после перегенерации БД в неё не перезальются данные ...
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091363
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Такие вопросы чаще всего возникают от неграмотности в использовании инструмента. Достаточно не использовать persistent fields (это то, что Вы творчески назвали "зафетчил колонки в датасеты") - и проблемы не будет.
Предлагаете тому мне именовать поля на русском, чтобы в гриде всё было понятно пользователям? Или использовать "словари", кажется, что-то такое в BDE было.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091366
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Предлагаете тому мне именовать поля на русском, чтобы в гриде всё было понятно пользователям?

В хорошей книге Специалист по этике душевно описаны чувства главного героя, когда он видит толпу дикарей, старательно таскающих статор вокруг неподвижного ротора. Это в точности то чувство, которое я испытываю от Ваших описаний. А предлагаю я, как уже сказал, осваивать инструмент и выбирать адекватные средства решения той или иной задачи.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091367
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EF Code First + Migration

вобщем делает, то что вам нужно.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091370
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
ViPRos
меняются метаданные (изменения сохраняются), БД перегенерируется

... Закрываем магазины на пару месяцев, пока после перегенерации БД в неё не перезальются данные ...

фантазер, ты меня называла...
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091407
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
ViPRos
меняются метаданные (изменения сохраняются), БД перегенерируется

... Закрываем магазины на пару месяцев, пока после перегенерации БД в неё не перезальются данные ...


а еще у нас умер ослик и мы его 4 часа детскими совками во дворе закапывали...

а почему не пару лет?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091416
x0125
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если прога - монолит - разбиваем её на запускалку - проверяльщика версии и собственно саму функциональную прогу. Проверяльщик с базы на клиента тянет свежее актуальное обновление и стартует его.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091421
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
А предлагаю я, как уже сказал, осваивать инструмент и выбирать адекватные средства решения той или иной задачи.
Пока вы говорите, что всё неверно, но не говорите в каком направлении двигаться. Подскажите примеры какие-нибудь.

Relic Hunter
EF Code First + Migration

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

x0125
Если прога - монолит - разбиваем её на запускалку - проверяльщика версии и собственно саму функциональную прогу. Проверяльщик с базы на клиента тянет свежее актуальное обновление и стартует его.
Так я и делал, но вопрос не об этом. Задача в том, чтобы расхождение не могло произойти принципиально(насколько это возможно, конечно), а не как бороться с расхождением. Или, чтобы расхождение было изолировано в базе, т.е. чтобы до клиента это никаким образом не доходило.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091480
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Задача в том, чтобы расхождение не могло произойти принципиально


эта задача решения не имеет

словарь метаданных придется кешировать на клиенте для скорости, кеш из-за сбоев рано или поздно протухает, очищаем локальный кеш и формируем новый на клиенте
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091597
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last of 1 as
а почему не пару лет?

Можно и пару лет, не суть. Суть в том, что "перегенерация базы" подразумевает "перезаливку данных", а "перезаливка данных" требует куда больше времени, чем допустимо отдать на технологическое окно - даже если нет требования 24/7 и технологическое окно вообще существует.

Такая технология может быть реально использована только в том случае, если есть возможность по одному отключать и обновлять сервера БД. Это требует целого списка других технических решений, включая умение программного ядра и репликации одновременно работать с БД разных версий. В принципе, это всё реализуемо, но в мире довольно мало контор, где нужно решение такого масштаба. Поэтому выдавать такой подход как универсальное решение.... ну это примерно как проект электрификации дачного посёлка начинать с постройки АЭС.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091605
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Пока вы говорите, что всё неверно, но не говорите в каком направлении двигаться. Подскажите примеры какие-нибудь.

Да какие примеры. Суть того, что Вы сказали - Вы к каждому датасету приделываете persistent fields для того, чтобы прописать там DisplayLabel и прочие свойства, унаследованные из Delphi 1 и касающиеся отображения данных в гриде. В этот момент все, кто много лет рассказывал про Delphi как про образец паттерна "мешанина из всего в одной куче" красноречиво улыбаются, и в Вашем конкретном случае для разнообразия правы.

В каком направлении двигаться.... в датасетах писать запросы. Запросы желательно размещать в модулях данных. Названия и свойства колонок прописывать в гридах. Гриды размещать на формах и фреймах. Мухи - отдельно, котлеты - отдельно. Persistent fields выкинуть и забыть навсегда. Когда нужно сделать вычисляемое поле - делать его не через persistent field, а выражением в запросе. Когда нужно сделать лукап - делать его не через persistent field, а через джойн в запросе. Если работаете с MSSQL - воспользоваться толковой рекомендацией использовать вместо запросов хранимки, возвращающие рекордсеты. Если, не дай бог, работаете с Oracle - не пользоваться дурацкой рекомендацией использовать вместо запросов хранимки.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091669
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда нужно сделать вычисляемое поле - делать его не через persistent field, а выражением в запросе.А если вычисление касается других датасетов или данных непосредственно из приложения ?
Хотя можно попробовать использовать параметры в подзапросе.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091695
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Можно и пару лет, не суть. Суть в том, что "перегенерация базы" подразумевает "перезаливку данных", а "перезаливка данных" требует куда больше времени, чем допустимо отдать на технологическое окно - даже если нет требования 24/7 и технологическое окно вообще существует.


softwarer
проект электрификации дачного посёлка начинать с постройки АЭ



ага. в магазине...
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091702
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Суть в том, что "перегенерация базы" подразумевает "перезаливку данных", а "перезаливка данных" требует куда больше времени


балкинсерт из старой таблицы в новую. на объемах которыми оперирует магазин это занимает в лучшем случае минуты... откуда месяцы взялись
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091708
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last of 1 as
tunknown
Задача в том, чтобы расхождение не могло произойти принципиально


эта задача решения не имеет

словарь метаданных придется кешировать на клиенте для скорости, кеш из-за сбоев рано или поздно протухает, очищаем локальный кеш и формируем новый на клиенте
В полном виде, возможно, не имеет. Вопрос в том, как, хотя бы, приблизиться к её решению.

softwarer
В каком направлении двигаться.... в датасетах писать запросы. Запросы желательно размещать в модулях данных. Названия и свойства колонок прописывать в гридах.
В мелком техническом плане такой подход существенно лучше. Но вопрос в том, как не дублировать "декларативную часть фронтенда" базы на клиенте. Даже если все колонки сделать, насколько можно, автоматически настраиваемыми и никакие манипуляции с существующим полем не приведут к ошибке, то добавленные колонки, всё равно, не будут иметь русского имени, размера, формата и т.д.

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


Ещё один вопрос- часто с базы тянутся все поля, даже если у пользователя часть их скрыта. Поскольку .visible колонке выставить проще, чем из запроса исключать поле.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091729
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
то добавленные колонки, всё равно, не будут иметь русского имени, размера, формата и т.д.


кеш метаданных на клиенте обновится когда клиент поймет что его локальный кеш не соответствует тому что на сервере. откуда возьмутся "бесхозные" колонки?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091732
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Кроме этого, я не видел ни одной реализации, где более-менее существенная манипуляция с полями не вызывала бы у пользователей проблем именно из-за локальных личных настроек


если форма грида не хочет открываться из-за того что юзер навертел для себя такое локальное представление грида, что его клиент не может прожевать и отрисовать делают сервисную возможность скинуть пользовательские настройки - привести их к дефалтным для формы
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091733
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Ещё один вопрос- часто с базы тянутся все поля, даже если у пользователя часть их скрыта. Поскольку .visible колонке выставить проще, чем из запроса исключать поле.


и вопрос в чем? в 1с допустим невидимое поле для простоты исключается из выборки. но есть свойство "обязательное"...
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091736
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопросы какие-то... из глубины веков...

и эти люди еще учат тех же 1с-ников ковырять в носу
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091740
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last of 1 as
и эти люди еще учат тех же 1с-ников ковырять в носу
Кажется, в 1с нельзя было произвольно альтерить таблицы, PK или просто индексы переставлять. Если так, то о чём разговор? Напоминаю, вопрос о том, чтобы клиента отвязать от базы настолько, насколько можно.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091741
Last of 1 as
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Last of 1 as
и эти люди еще учат тех же 1с-ников ковырять в носу
Кажется, в 1с нельзя было произвольно альтерить таблицы, PK или просто индексы переставлять. Если так, то о чём разговор? Напоминаю, вопрос о том, чтобы клиента отвязать от базы настолько, насколько можно.


а у вас можно?

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

странные задачи вы перед собой ставите
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40091829
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Но вопрос в том, как не дублировать "декларативную часть фронтенда" базы на клиенте.

Это неправильный вопрос. Правильный - "возможно ли не дублировать декларативную часть фронтенда на клиенте и если да - как это скажется на проекте в целом?"

Ответ: опыт показывает, что в этом случае лекарство хуже болезни. Попытки "не дублировать" приводят к тому или иному монстру, которым авторы очень гордятся, напрочь игнорируя тот факт, что производительность у него ниже плинтуса, трудоёмкость создания форм выросла раза в три по сравнению с вариантом "дублировать", а трудоёмкость поиска и исправления ошибок - раз в десять.

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

Это как раз вопрос прямизны рук.

tunknown
Эти настройки часто программисту недоступны

Для программиста в его системе нет ничего недоступного.

tunknown
Ещё один вопрос- часто с базы тянутся все поля, даже если у пользователя часть их скрыта. Поскольку .visible колонке выставить проще, чем из запроса исключать поле.

Ну что я могу сказать. Программистами иногда работают люди, которых проще и выгоднее уволить, нежели научить. Если программист, не считающий себя начинающим, не пришёл хотя бы на собственном опыте к правилу "явно указывать все необходимые поля и не указывать лишнего" - стоит поберечь свои нервы от работы с ним.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092461
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown,

У меня клиент отвязан от базы, полностью.
Ничего не умеет, кроме:

1)строить главное меню
2)менять структуру БД
3)собирать формы рантайм
4)выполнять скрипты
4)формировать отчеты

Описание форм (оно же описание таблиц БД(данных)) и скрипты хранятся в БД (программ).
Обновить "программу" = закачать в БД новые данные.
Первый клиент обнаруживший обновление скачивает его, и обновляет структуру БД.

Есть конечно вероятность коллизий (когда обновленная "программа" уже в БД(программ), а структура БД(данных) еще не обновилась), но тут все зависит от прямых рук

Возможен откат на старые версии.
А также "любой хрен с горы может зайти" с соответствующими правами и добавить свою локальную логику, которая не будет обновляться при обновлении основной "программы", или добавить в основные таблицы нужные ему поля.
Ясно, что эти таблицы и поля основная "программа" не знает, нужно их скриптом при сборке формы или формировании отчета прописывать.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092489
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager
Описание форм (оно же описание таблиц БД(данных)) и скрипты хранятся в БД (программ).
Можно ли физически изменить таблицу в БД и не поменять описание формы? Если можно, то как можно узнать, что форма не соответствует таблице? Без привлечения системы контроля версий, конечно.

Скрипты на языке, поддерживаемом базой или поддерживаемом клиентом?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092497
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
vill_ager
Описание форм (оно же описание таблиц БД(данных)) и скрипты хранятся в БД (программ).
Можно ли физически изменить таблицу в БД и не поменять описание формы? Если можно, то как можно узнать, что форма не соответствует таблице? Без привлечения системы контроля версий, конечно.

Скрипты на языке, поддерживаемом базой или поддерживаемом клиентом?


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

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

Скрипты клиента на питоне (2.6-2.7)

БД - MySQL, но я не пользуюсь ничем, кроме запросов
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092524
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager
бывают же поля в таблицах, которые не нужны в формах.
А если поменять в таблице то, что используется в формах? Будет ли ошибка?

В сети где-нибудь лежит?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092529
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
vill_ager
бывают же поля в таблицах, которые не нужны в формах.
А если поменять в таблице то, что используется в формах? Будет ли ошибка?

В сети где-нибудь лежит?


Поменять как? Конретный пример? Сломать можно что угодно :)
penta.by
И тут можно глянуть
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092537
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всех приветствую...
Хочу свой опыт расказать...
В моей ИС естественно постоянно сталкиваюсь с проблемой разногласий клиентской и серверной части.(учитывая ,что у меня оракл ,это означает зависимость не только полей таблиц но и pl/sql объектов (пакетов функций,процедур)
Модульная форма-контейнер ,что будет исполняться опционально(перед инициаализацией) может прочитать и выполнить СУБД sql скрипты что храняться в дереве её зависмостей.(Надо не забывать их добавылять в CLOB поля)
1.Скрипт pl/sql типа
Код: plsql
1.
2.
alter table goods add barcode varchar2(32) unique;
alter table documenttitles modify summsell number(12,4);


или
Код: plsql
1.
CREATE OR replace view ......


2.Сам pl/sql пакет (функцию,процедуру)/
3.Триггер

В случае правильной организации(незабывании добавлять нужный скрипт и тело pl/sql в ИС зависимость формы контейнера много проблем решается.

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

Перевожу на русский: подключение очередного клиента имеет реальный шанс обрушить всю систему. Автора это не особо тревожит потому, что ей пользуются два с половиной человека.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092619
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager
Поменять как? Конретный пример? Сломать можно что угодно :)
Были поля f1 int,f2 date,f3 varchar. Стали поля f10 float,f20 time,f3 varchar. В MySQLWorkbench все изменения прописали. Клиент после этого запустится?

vill_ager
Там только видеоинструкция для конфигуратора, документации для программиста не увидел.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092621
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Ответ: опыт показывает, что в этом случае лекарство хуже болезни. Попытки "не дублировать" приводят к тому или иному монстру, которым авторы очень гордятся, напрочь игнорируя тот факт, что производительность у него ниже плинтуса, трудоёмкость создания форм выросла раза в три по сравнению с вариантом "дублировать", а трудоёмкость поиска и исправления ошибок - раз в десять.
Верю вашему опыту, но не оставляю надежды.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092631
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Были поля f1 int,f2 date,f3 varchar. Стали поля f10 float,f20 time,f3 varchar. В MySQLWorkbench все изменения прописали. Клиент после этого запустится?


Запустится.

Ошибки не будет - поля формы отсутствующие в БД в update/insert не включаются.

Но вообще сценарий немного другой, без Workbench-ей:
Для изменения структуры в описание добавляются поля, они переносятся в БД (на стадии разработки - по команде, на проде - автоматически при обновлении "программы")

Вообще такие изменения бывают в основном на стадии проектирования. Если такое в эксплуатации вылезает - значит изначально что-то неверное сделано.

Инструкции нет, т.к. платформа используется в узком кругу.
Если есть интерес - могу написать, в стиле вопрос-ответ.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092645
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vill_ager

Запустится.

Ошибки не будет - поля формы отсутствующие в БД в update/insert не включаются.
Правильно ли я понимаю, что из базы поднимаются все данные через что-то типа
Код: sql
1.
select * from table


А дальше происходит привязка полей датасета к полям формы, которая просто игнорирует несоответствия и отсутствия?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092647
vill_ager
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tunknown
Правильно ли я понимаю, что из базы поднимаются все данные через что-то типа
Код: sql
1.
select * from table


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

Так и есть. Спрашиваем датасет данные поля, если его нет - он вернет пустую строку.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092691
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
Правильно ли я понимаю, что из базы поднимаются все данные через что-то типа
Код: sql
1.
select * from table


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


Опрашиваются метаданные table (макротипа - именованной схемы данных в метаданных), создаются (достаются из кеша) датасет и форма на основе метаданных, генерируется (достается из кеша) select (ы) с учетом прав пользователя.
При изменении метаданных БД синхронизируется с метаданными.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092730
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos
Опрашиваются метаданные table (макротипа - именованной схемы данных в метаданных) , создаются (достаются из кеша) датасет и форма на основе метаданных, генерируется (достается из кеша) select (ы) с учетом прав пользователя.
При изменении метаданных БД синхронизируется с метаданными.
Что такое метаданные таблицы в вашем понимании? На примере sql сервера можете объяснить? Я просмотрел три pdf документации на вашем сайте- выглядит красиво, но никаких технических особенностей не видно. Я интересуюсь как разработчик, а не как внедренец какой либо готовой системы.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092754
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown,

Я думал на сайте есть Руководство разработчика ВИПРОС, оказалось уже нет (я там не командир).
Есть документация полная.
Например.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092758
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092759
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092761
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092764
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно обратиться в ААУК и получить документацию (я так думаю)
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092795
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Если я правильно понимаю картинку "Метаструктура", то это всё таблицы конфигурации. Если внести какое либо существенное изменение в физические таблицы с данными на mssql, то настройки перестанут отражать действительность и ничего поднять из кеша не получится. Предполагаю, перегенировать автоматически тоже не выйдет, т.к. слишком много в этих таблицах дозаведённого вручную, чего нет в самих таблицах и их связях. Впрочем, это один из видов стандартного подхода, где многочисленные ручные настройки обязательно должны где-то лежать в данных- захардкоденные на формах или в настроечных таблицах в базе.

Применяете ли вы логику выборок во view/процедурах или только таблицы?
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092883
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown
ViPRos,

Если я правильно понимаю картинку "Метаструктура", то это всё таблицы конфигурации. Если внести какое либо существенное изменение в физические таблицы с данными на mssql, то настройки перестанут отражать действительность и ничего поднять из кеша не получится. Предполагаю, перегенировать автоматически тоже не выйдет, т.к. слишком много в этих таблицах дозаведённого вручную, чего нет в самих таблицах и их связях. Впрочем, это один из видов стандартного подхода, где многочисленные ручные настройки обязательно должны где-то лежать в данных- захардкоденные на формах или в настроечных таблицах в базе.

Применяете ли вы логику выборок во view/процедурах или только таблицы?


Ну,
1. Что бы иметь возможность поменять данные в таблицах метаданных надо иметь на это права.
Там жесткие правила везде и любые изменения данных заставляют на выходе иметь формально работающую прикладную систему.
2. Если кто-то решил изменить структуру метаданных, удалить и т.д. вред нанести умышленно, то обычно с этим бороться сложно, хотя всегда можно восстановить бекап или указать альтернативные пути.
3. Кеш - вспомогательная штука для повышения производительности (иногда наоборот мешает и приходится очистить), если кеш не согласуется с метаданными, то он игнорируется и замешается сгенерированными объектами.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092884
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tunknown

Применяете ли вы логику выборок во view/процедурах или только таблицы?

1. Вью - часть метаданных (виртуальный макротип). Есть некоторые отличия от вью на сервере. Не редактируется.
2. Хранимки могут быть обернуты в прикладные методы, не являются частью метаданных.
Вощем, в доках все это описано.
...
Рейтинг: 0 / 0
О совместимости БД и клиента
    #40092887
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Программист может делать что угодно и как угодно в своих прикладных методах, пользоваться всеми возможностями .NET - ВИПРОС ни на что не налагает ограничений.
Практически ВИПРОС дает возможность создать и визуализировать макротип на основе метаданных(если попроще Форму (с командами - стандартными и прикладными), контекст данных Формы в виде DataSet, БД и методы работы с БД для синхронизации контекста данных с БД).
...
Рейтинг: 0 / 0
52 сообщений из 52, показаны все 3 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / О совместимости БД и клиента
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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