Topic: Одновременная работа с программой по сети несколькими пользователями

Здравствуйте. Есть ли возможность нескольким пользователям  одновременно работы с программой (готовым скомпилированным проектом) по сети?  Одна база данных - несколько одинаковых пользовательских программ ее используют

Re: Одновременная работа с программой по сети несколькими пользователями

Приветствую,


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


либо вы можете скопировать только файл базы данных (sqlite.db) в общую папку, затем запустив проект на своем компьютере, зайти в меню "Инструменты" > "Настройка" и в данных настройках указать,  где будет расположен файл базы данных.



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

Dmitry.

Re: Одновременная работа с программой по сети несколькими пользователями

Здравствуйте. Скопировал файл базы данных в общую сетевую папку. На двух рабочих местах установил программу, где указал сетевое место положения базы данных. При одновременном запуске двух программ пишет что база данных заблокирована. Очень все тормозит. что может быть? Также пробовал перенести сам проект в общую сетевую папку. Одновременный запуск с двух компов также затруднителен.

Re: Одновременная работа с программой по сети несколькими пользователями

Какой размер базы данных?
есть ли какие либо скрипты, которые активно обращаются к базе данных?



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

Dmitry.

Re: Одновременная работа с программой по сети несколькими пользователями

Я использую версию 1.42. Доступны ли ей вышеуказанные возможности? Размер базы около 36 мб. Скриптов, активно обращающихся к бд нет.

Re: Одновременная работа с программой по сети несколькими пользователями

nioc78 wrote:

Я использую версию 1.42. Доступны ли ей вышеуказанные возможности? Размер базы около 36 мб. Скриптов, активно обращающихся к бд нет.

поддержка MySQL появилась начиная с версии 2.0


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


храните ли файлы непосредственной в базе данных?

Dmitry.

Re: Одновременная работа с программой по сети несколькими пользователями

Добрый день.
Скажите, что я делаю не так?
Написал программу. Поставил скин ей. Все проверил на своем ПК.

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

Иду другим путем - просто кидаю папку на мой компьютер, открываю к ней полный доступ. Копирую эту папку на другой ПК в локальной сети. Запускаю созданную программу и указываю там путь к файлу sqlite.db  (который лежит на моем ПК).
Программа запускается - но выдает ошибку floating point.

На моем ПК нормально все (у меня виндовс 10 про) - никаких ошибок, хоть локально, хоть через сеть,  а на том ПК (вин 10 хоум) - там ошибка, хоть ты тресни, по 10 раз надо эти окна закрывать,  или вообще программа вылетает или зависает намертво.

Подскажите - что не так?

Re: Одновременная работа с программой по сети несколькими пользователями

Запуск одного экзешника несколькими людьми - плохой кейс. Кроме проблем, которые вы описали, остаются проблемы:
- файл настроек нужно будет хранить локально ( Инструменты-настройка-Настройка-Файл настройки хранить в папке...)
- в коде вашей программы могут быть обращения к локальным файлам, а по сети это может работать не так хорошо, возможно, что-то нужно делать с правами доступа. И как-то предупреждать блокировки.


Рабочий вариант: папки с exe - у каждого пользователя, доступ к базе - по локальной сети. Но имейте ввиду, что некоторые скрипты могут вызывать блокировку файла базы. В частности, TDataSet из SQLQuery - пока он открыт, файл базы блокирован для записи.


Лучший вариант для многопользовательской программы - использование MySQL. Вот статья, которая вам поможет перевести проект c SQLite на MySQL - https://k245.ru/mvdb/ustanovka-servera-mysql.html

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

Re: Одновременная работа с программой по сети несколькими пользователями

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