Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Не продавал я ничего никому, небольшая контора у нас, сами и пользуемся. Какая задача - два приложения, обобщенно сходные по идеологии, но в одно несовместимые, есть товары, есть услуги, и есть специфика. Заказчики и пользователи общие. Раньше были раздельные таблицы пользователей и заказчиков. Если с пользователями еще как-то, их мало, то с Заказчиками беда. Например, он существует в одном справочнике, товаров, а обратился за услугой, заполняется в разное время, в одном месте ООО Слон, в другом Общество с ограниченной ...и т.п., Я объединил таблицы из двух приложений, убрал дубли, все привел в соответствие. Таблицу положил в отдельную папку, и она не входит ни в одно приложение. Видимо, сделал криво, иногда подвисает, похоже где-то некорректно закрывается, или не снимается блокировка после редактирования. Лечится путем выхода всех юзеров из всех приложений, потом нормально работает. Когда и по какой причине возникает глюк отловить не могу, просто предполагаю. Редактирование разрешено только из одного приложения. Так же встретил много мнений, что такое использование таблиц не очень грамотное и правильное, вот отсюда возникла идея вернуть таблицы в дбс и как-то их синхронизировать. Исправлено 1 раз(а). Последнее : DmitryKn, 03.11.22 12:19 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Насколько я понимаю, оставить одну таблицу в одной базе и открывать ее из другой, это в принципе, тоже самое.
|
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Не возьмусь однозначно утверждать, но судя по процитированному - таки возможность совместимости далеко не нулевая ))) Я бы начал посмотреть в сторону создания единой БД для этих двух приложений, и (если время позволяет) подумал бы насчет перехода на более "взрослую" субд. |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
возможность не нулевая, но, боюсь, не подниму столько.
А как это, одна БД для 2-х приложений? более взрослая СУБД - MySQL ? мне же ее с 0 изучать, фокс вроде работает, китаец Чен осовременивает... Исправлено 1 раз(а). Последнее : DmitryKn, 03.11.22 12:55 |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
1). А в чем принципиальная проблема одной БД для двух схожих приложений в которых даже нек справочники пересекаются ...
2). я же специально в кавычках про взрослую ))) Совершенно не обязательно мускуль, рассмотрите разные варианты, сейчас вот в моде постгресс например. Заодно бонусом прокачаете свои скиллы - может весьма пригодиться потом Просто у меня лично остались очень негативные воспоминания по использованию dbc в качестве БД, но возможно я не смог правильно "приготовить" эту кошку))) Сам использую до сих пор достаточно простой субд-движок firebird, он опенсорс, ставится и на винду и на линух, х32-х64 на выбор, размер базы 40-60Гб вполне ненапряжно живет даже на обычном десктопе - для моих задач более чем. У кого задачи посерьезнее - соотв и выбирают что-то уже посерьезнее. При этом никуда не ушел с фокса - само приложение по-прежнему на нем родном (не знаю толком ничего другого) Исправлено 1 раз(а). Последнее : AndyNigmatec, 03.11.22 13:02 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
т.е. приложение - формы, процедуры и т.д. на фоксе , а таблицы firebird ?
Исправлено 1 раз(а). Последнее : DmitryKn, 03.11.22 13:59 |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Да, только в БД не только таблицы, там и триггеры и ХП (хранимые процедуры) - в них можно часть логики запихать - здесь вопрос подхода, кто-то старается бОльшую часть логики именно в ХП держать, кто-то наоборот их практически не использует - здесь (на форуме) даже как-то небольшой холивар на эту тему был ))) [attachment 36433 .png] Исправлено 1 раз(а). Последнее : AndyNigmatec, 03.11.22 14:23 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
а как обращаться из фокса?
т.е. в родном - Dataenvironment.Opentables, и они открылись, свободные - use, а эти как фокс понимает и видит? как их в проект включить? |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Таки совершенно не требуется включать в фоксовый проект таблицы ... а открываются/изменяются они посредством ODBC-драйвера, т.е. обычный клиент-сервер.
Ну вот тупо для примера выдрал первый попавшийся кусок кода из Load формы:
или например запуск хранимой процедуры:
Исправлено 1 раз(а). Последнее : AndyNigmatec, 03.11.22 14:40 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
вникать и вникать, и прогноз не очень благоприятный..
но в чем принципиальное отличие или преимущество такого подхода? Если убрать осадок от однажды полетевшей из-за электроэнергии дбс ? Исправлено 1 раз(а). Последнее : DmitryKn, 03.11.22 15:49 |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Цитата: Если бы однажды ... такое было не раз, и один раз очень жестко. Принципиальное - это переход на технологию клиент-сервер, контейнер БД (dbc) - собственно полноценным сервером не является. Т.е. здесь часть "работы" переложена с клиента (приложения) на сервер и какая эта часть - зависит от проектировщика (от вас). Сломать/сломаться может всё, но на своей практике после такого перехода я забыл про эту проблему. А бонусом получил нормально работающие триггеры и процедуры в БД, а также забыл про ограничения на размер таблиц (к примеру в самой "ходовой" табле у меня сейчас порядка 200 млн записей) - а это уже позволило сильно упростить и ускорить многую отчетность (и сами данные в наличии за большой срок и не нужно к примеру при "сложных" запросах дергать данные на клиента - вся обработка/расчет производятся в пределах самой БД). Ну и удобно чисто на практике (для меня) оказалось что физически на диске БД - это один файл, все операции по ее администрированию оказалось легко "заскриптовать", и сама оболочка для работы с БД тоже весьма дружественна. Да, еще же варианты разграничения доступа/прав на табл/процедуры уже заложены в сам движок БД - пользоваться ими или нет - это ваш выбор, но определенный удобства это предполагает. Ну и главное - я же самоучка а не профессионал, а тут получил инструмент с достаточно низким порогом вхождения - т.е. достаточно оказалось моих скромных познаний и интернета. Еще один момент положительный был - понадобилось тогда часть инфы в браузере чтоб выводилась - и здесь все решилось легко и непринужденно без особых "приседаний" - тупо использовал встроенные в php механизмы ... вспомнилось вот))) Исправлено 5 раз(а). Последнее : AndyNigmatec, 03.11.22 16:57 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
спасибо за познавательную инфу, но это скорее стратегическое решение, это не на "прямо сейчас", это все переделать придется.
Я ведь совсем не профессионал, и даже этот низкий порог вхождения кажется мне высоковатым. К примеру, в приведенном куске кода есть курсорадаптер, а я их не понимаю, хоть убей. Читал Клепинина, читал... так и кинул, не разобравшись. Но подумать есть над чем. Исправлено 1 раз(а). Последнее : DmitryKn, 03.11.22 18:12 |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
курсорадаптер не обязателен для предложенного - просто такой кусок кода попался, а так у меня сначала без всяких адаптеров было - SQLCONNECT, SQLEXEC ...
Я конечно не знаю как там у вас приложение организовано ... но на самом деле переделывать не так много как кажется, особенно если не практикуете изменение данных непосредственно в гриде. Исправлено 2 раз(а). Последнее : AndyNigmatec, 03.11.22 18:18 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Тогда спрошу у сообщества так:
мои свободные таблицы лежат отдельно в папке, не включены ни в один проект, в том числе в качестве freetables в dbc, при необходимости открываю use путь\tbl in 0 при корректировке использую rlock() Это все в рамках допустимого? |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
очень даже практикую ( |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
я не вижу никакого криминала, а по использованию блокировки - ну это вам по логике действий виднее нужна она там или нет. Кстати, привили мне здесь, стало как привычка:
и не зависит от установки set excl ))))) и вы точно знаете с каким алиасом открыта табла Исправлено 4 раз(а). Последнее : AndyNigmatec, 03.11.22 18:48 |
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Отлично, спасибо!
|
Re: копирование таблиц | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Если свободная таблица freetbl источник local view и открыта с алиасом Mytbl, то надо view перестроить, и если да, то как? |
Re: копирование таблиц | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Честно говоря вьюшки практически не использовал - не было необходимости, но по логике - пропишите алиас таким же с каким табла автоматом при use открывалась - и думаю ничего менять не нужно будет.
|
Re: копирование таблиц | |
---|---|
lemenev Сообщений: 113 Дата регистрации: 23.06.2022 |
Всё то, что вам советовали до меня – это всё правильная, но высокая теория. Попробую приземлить к вашему конкретному случаю. У вас есть пользователи и заказчики. Оставьте в таблицах о них только неизменную информацию: название/фамилия, адрес, телефон, расчётный счёт и т.д. Уберите всё, что касается бизнес приложений (если таковое есть): сумма платежей, сумма зарезервированного товара и т.д. Таким образом, у вас эти таблицы будут иногда пополняться, крайне редко редактироваться, а в основном будут использоваться только для чтения. Проблема при создании многопользовательских приложений – как «разрулить» ситуацию, когда двое хотят править одну и ту же запись. Но у вас вероятность такого события минимальна. Тогда вам не нужна никакая «взрослая» СУБД. В рамках обычного Fox создайте свободные таблицы, не включайте их ни в какие базы, открывайте их со свойством SHARED, не используйте блокировки и будет вам счастье. |
© 2000-2024 Fox Club  |