Topic: Как связать два проекта

Доброго времени суток!
Возможно ли реализовать связь между двумя проектами:
Есть проект выполняющий функцию справочника (города, улицы, имена и т.п.).  Хотелось бы создать проект или несколько проектов более целевого назначения, но при этом имеющих возможность использования данных из дазы справочника.
Есть ли какая то возможность такой реализации штатными средствами?

Заранее спасибо!

I'm just learning

2 (edited by sparrow 2022-08-12 11:38:57)

Re: Как связать два проекта

Доброго,

Вопрос интересный. Речь идет о использовании базы данных двумя программами, полностью или частично.
Вы только не указали, что за база, в чем создана.

Ответ для MYSQL.

Дмитрий писал http://myvisualdatabase.com/forum/viewt … 746#p25746

Eng -> Rus
MVD не поддерживает работу с существующей базой данных, но на самом деле вы можете это сделать.

     Во-первых, существует два правила совместимости существующей базы данных с MVD.
     1. Каждая таблица базы данных должна иметь первичный ключ "id"
     2. Внешние ключи должны иметь имена типа "id_tablename"

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

     После этого вы можете просто переключить свой проект на СУБД MySQL и подключиться к существующей базе данных.

Остается добавить, если правила соблюдаются, то работа с существующей базой требует осторожности.
Изменение в новой программе, в структуре существующей таблицы, может повлечь потерю данных.

Re: Как связать два проекта

Базы SQLite (встроеные в MVD).
Делал подобное с Аксесом (используя его как СУБД, а в качестве визуализации проекта использовал VBA excel). Создавал несколько БД и подключался к ним из разных приложений выхватывая нужное для себя.
Что то подобное хотел бы попробовать с MVD. Без использования MySQL (он немного связывает руки).
Может есть способ с помощью запроса указать БД SQLite из которой необходимо взять данные?

I'm just learning

Re: Как связать два проекта

Ваша база была создана в MVD ?

Если нет,   должны выполняться те же условия, для варианта полноценной (автоматической) работы всех форм, таблиц и др..
1. Каждая таблица базы данных должна иметь первичный ключ "id"
2. Внешние ключи должны иметь имена типа "id_tablename"
Не думаю, что вам захочется все делать вручную. Да и смысл использовать тогда MVD пропадает полностью.

Re: Как связать два проекта

Ваша база была создана в MVD ?

Да!
Создал програмку в MVD. Позднее появилась необходимость еще одной програмки (тоже в MVD) с другим целевым назначением. Но в ней используются такие же справочные данные как и в первой (город, улицы, имена сотрудников). Вот и появился вопрос, как получить часть данных из первой програмы для обезпечения работы второй.

I'm just learning

Re: Как связать два проекта

http://myvisualdatabase.com/forum/viewtopic.php?id=2018

Но работа со второй базой будет вручную через скрипт.

Re: Как связать два проекта

Но работа со второй базой будет вручную через скрипт.

Спасибо огромное!

Героям Слава!

I'm just learning

Re: Как связать два проекта

Привет, Ronin, Привет, Sparrow,
Я не уверен, что это то, о чем вы спрашиваете, но, возможно, это поможет.
Например, у меня есть 4 приложения, все из которых имеют некоторые общие данные (таблица «контакты»).
1. Создайте первое приложение только с таблицей «контакты».
2. Скопируйте/вставьте это приложение во второе, третье и четвертое приложения.
3. Запустите каждое приложение и в каждом приложении задайте имя и местоположение sqlite.db (я называю свой «master.db», и он хранится на внешнем диске — см. прикрепленный скриншот под названием «общий sqlite.db» и скриншот под названием «конфигурация», чтобы понять, как она устроена).
4. Протестируйте его, пытаясь добавить, изменить и удалить записи «контактов» в одном из приложений, и вы увидите, что изменения отражаются в других 3 приложениях (другими словами, данные передаются).
5. Затем добавьте новые таблицы, относящиеся к каждому приложению в этом конкретном приложении. Эти новые таблицы хранятся в 'master.db', но специфичны для каждого приложения и поэтому не отображаются в схемах баз данных других приложений.
Возможно, это звучит сложнее, чем есть на самом деле; просто попробуйте с 2-3 небольшими приложениями, чтобы увидеть, как это работает.
Сценарий не требуется - это просто конфигурация.
Derek.
.
.
I am not sure if this is the sort of thing that you are asking about but maybe it helps.
For exampoe, I have 4 applications, all of which share some common data (a 'contacts' table).
1.  Create the first application with just a 'contacts' table.
2.  Copy / paste this application to create the second, third and fourth applications.
3.  Run each application and in each application, set the name and location of the sqlite.db (I call mine 'master.db' and it is stored on an external drive - see the attached screenshot titled 'shared sqlite.db' and the screenshot titled 'configuration' to get an idea of how it is laid out).
4.  Test it by trying to add, change and delete 'contact' records in one of the applications and you will see the changes reflected in the other 3 applications (in other words, the data is being shared).
5.  Add new tables that are specific to each application in that particular application's database schema.  These new tables are stored in the 'master.db'  but do not appear in the other applications' database schemas.
It probably sounds more complicated than it is;  just try it with 2-3 small applications to see it working.
No script is required - it's all just configuration.

Post's attachments

Attachment icon ronin.zip 54.18 kb, 172 downloads since 2022-08-12 

Re: Как связать два проекта

Derek!
Это очень интересный вариант. Спасибо, что уделили время и обратили внимание на тему. Буду пробовать.

I'm just learning

Re: Как связать два проекта

Интересно, что при этом добавляются и формы первой (Мастер) БД.

I'm just learning

Re: Как связать два проекта

Hello Derek.


Thanks Derek, interesting possibility.

Спасибо Дерек, интересная возможность.

Re: Как связать два проекта

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

Визуальное программирование: блог и телеграм-канал.