Форум поддержки пользователей LibreOffice, Apache OpenOffice

Главная категория => Base => Тема начата: Николай174 от 18 марта 2016, 18:14

Название: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 18 марта 2016, 18:14
Есть база, но работает только на одном из комп-ов, есть ли возможность заставить работать на нескольких "машинах"?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: rami от 18 марта 2016, 18:23
Цитата: Николай174 от 18 марта 2016, 16:14Есть база, но работает только на одном из комп-ов, есть ли возможность заставить работать на нескольких "машинах"?
А что именно не работает? Где находится база? Какие оси и офисы?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 19 марта 2016, 06:20
Цитата: rami от 18 марта 2016, 18:23
Цитата: Николай174 от 18 марта 2016, 16:14Есть база, но работает только на одном из комп-ов, есть ли возможность заставить работать на нескольких "машинах"?
А что именно не работает? Где находится база? Какие оси и офисы?
База то работает, но если в сети одновременно попытаться на двух компах работать. то на одном выдает ошибку. Есть ли возможность заставить работать на нескольких "машинах"?
Офис openoffice.org 4.1, win 10
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: rami от 19 марта 2016, 10:19
Насколько я знаю база в OpenOffice однопользовательская.
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 19 марта 2016, 10:25
Цитата: rami от 19 марта 2016, 10:19
Насколько я знаю база в OpenOffice однопользовательская.
Понял. Тогда чисто "по-русски" - сделаю несколько копий под разными именами баз, одну буду обновлять, а другие периодически копировать через "охранить как..." (главное, чтобы обновления вносились только в одну базу).
Остаётся только поблагодарить!
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: greenman от 19 марта 2016, 11:51
How do I setup multi-user 'server mode' access to my HSQL database? (https://wiki.openoffice.org/wiki/FAQ_(Base)#How_do_I_setup_multi-user_.27server_mode.27_access_to_my_HSQL_database.3F)
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Yakov от 19 марта 2016, 12:07
Лучший вариант - поднять сервер MySQL, и подключиться к нему из Base.

То есть данные будут на сервере, а формы, отчёты - в odb файле.
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 19 марта 2016, 12:46
Цитата: Yakov от 19 марта 2016, 12:07
Лучший вариант - поднять сервер MySQL, и подключиться к нему из Base.

То есть данные будут на сервере, а формы, отчёты - в odb файле.
Такой вариант тоже рассматривается, но тут надо с сисадмином работать. Пока база в экспериментальной эксплуатации.
Однако также, благодарю за участие!
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 13:20
Можно через ODBC SQLite  подключить. Работает без сервера, многопользовательская, хранит данные в одном файле.
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 15:58
Цитата: idro от 20 марта 2016, 13:20
Можно через ODBC SQLite  подключить. Работает без сервера, многопользовательская, хранит данные в одном файле.
Мне надо работать в openoffice bace. В этом всё обстоит дело. Есть версия?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: kompilainenn от 20 марта 2016, 16:02
Цитата: Николай174 от 20 марта 2016, 13:58Мне надо работать в openoffice bace. В этом всё обстоит дело. Есть версия?
Вы и будете работать в Base, однако сами данные будут в подключаемой базе данных, с которой возможна одновременная работа
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 16:07
Цитата: kompilainenn от 20 марта 2016, 16:02
Цитата: Николай174 от 20 марта 2016, 13:58Мне надо работать в openoffice bace. В этом всё обстоит дело. Есть версия?
Вы и будете работать в Base, однако сами данные будут в подключаемой базе данных, с которой возможна одновременная работа
Я уже поставил SQLite_64 ,но не пойму как их прописать в open, не вижу кнопок к выбору. В примере-то Ася дается... Может прямо по-шагово подскажете?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 18:00
Попробую подсказать :) Правда не знаю как в форуме картинки вставлять,  поэтому  на пальцах . Если ODBC драйвер   поставил  то в панели управления - Администратор источника ODBC в системном DSN появится SQLite3 Datasource . Переходишь на Пользовательский DSN , нажимаешь добавить , выбираешь из списка  SQLite3 ODBC  . Пишешь  имя базы, которая в списке будет , и путь до файла где будет сама база хранится ( так как файла еще нет , то пишешь путь ручками) . Отмечаешь крыжиком OEMCP - чтобы с кириллицей работала, Sync.mode выставляешь FULL (надежность превыше скорости :) ) . Крыжик на Don`t create database пока не ставишь (файл  базы автоматически создастся при первом обращении).

Переходишь в BASE , создаешь новый файл , выбираешь ODBC и кликаешь в то название под котором ты прописал драйвер. В конце концов у тебя появится промежуточный файл BASE. BASE будет думать в нем база. Для работы с SQLite я рекомендую SQLiteStudio. Средства BASE не всегда корректно  отображает данные .

Драйвер ODBC брать тут http://www.ch-werner.de/sqliteodbc/
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 19:07
Цитата: idro от 20 марта 2016, 18:00
Попробую подсказать :) Правда не знаю как в форуме картинки вставлять,  поэтому  на пальцах . Если ODBC драйвер   поставил  то в панели управления - Администратор источника ODBC в системном DSN появится SQLite3 Datasource . Переходишь на Пользовательский DSN , нажимаешь добавить , выбираешь из списка  SQLite3 ODBC  . Пишешь  имя базы, которая в списке будет , и путь до файла где будет сама база хранится ( так как файла еще нет , то пишешь путь ручками) . Отмечаешь крыжиком OEMCP - чтобы с кириллицей работала, Sync.mode выставляешь FULL (надежность превыше скорости :) ) . Крыжик на Don`t create database пока не ставишь (файл  базы автоматически создастся при первом обращении).

Переходишь в BASE , создаешь новый файл , выбираешь ODBC и кликаешь в то название под котором ты прописал драйвер. В конце концов у тебя появится промежуточный файл BASE. BASE будет думать в нем база. Для работы с SQLite я рекомендую SQLiteStudio. Средства BASE не всегда корректно  отображает данные .

Драйвер ODBC брать тут http://www.ch-werner.de/sqliteodbc/
Видимо - не дано... Драйвер стоит, далее Администрирование... у меня есть файл базы данных я его и прописываю в "Database Name", далее крыжик и FULL... Да и все, далее не понял. Правда я на обе "банки" поставил драйвера, попробовал одновременно по сети работать с базой, вроде работает, а может кажется., не знаю... Может и зря 64-bit  ставить драйвер пытаюсь?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 19:11
Цитироватьу меня есть файл базы данных
У вас есть файл базы SQLite ? Или Вы пытаетесь свою базу подцепить ?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 19:17
Цитата: idro от 20 марта 2016, 19:11
Цитироватьу меня есть файл базы данных
У вас есть файл базы SQLite ? Или Вы пытаетесь свою базу подцепить ?
Нет, у меня файл в open bace сделан, вроде как дает сбой при одновременно работе на разных компах, вот я и пытаюсь разобраться, может, что и не так обзываю. Я дрова на оба компа поставил, с одного на другой по сети файл прописал. А вот когда новую базу формирую, то не знаю что получается, он предлагает создать Новую базу... я тут вот и спотыкаюсь, что для чего?
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 19:25
ЦитироватьПишешь  имя базы, которая в списке будет , и путь до файла где будет сама база хранится
Надо сделать как я написал. Имя , например BaseSQLite1. Путь , например, C:\temp\BaseSQLote.db (это путь пока ведет в "никуда" т.к. этого файла нет , он создаться при первом обращение к базе.  Далее, создаете новый файл Open BASE , выбираете ODBC и подтягиваете из списка BaseSQLite1 .  Потом напишите макрос и перегоните данные из старой базы в новую.
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 19:29
Цитата: idro от 20 марта 2016, 19:25
ЦитироватьПишешь  имя базы, которая в списке будет , и путь до файла где будет сама база хранится
Надо сделать как я написал. Имя , например BaseSQLite1. Путь , например, C:\temp\BaseSQLote.db (это путь пока ведет в "никуда" т.к. этого файла нет , он создаться при первом обращение к базе.  Далее, создаете новый файл Open BASE , выбираете ODBC и подтягиваете из списка BaseSQLite1 .  Потом напишите макрос и перегоните данные из старой базы в новую.
Лады, буду пробовать... спасибо!
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: Николай174 от 20 марта 2016, 19:48
Цитата: Николай174 от 20 марта 2016, 19:29
Цитата: idro от 20 марта 2016, 19:25
ЦитироватьПишешь  имя базы, которая в списке будет , и путь до файла где будет сама база хранится
Надо сделать как я написал. Имя , например BaseSQLite1. Путь , например, C:\temp\BaseSQLote.db (это путь пока ведет в "никуда" т.к. этого файла нет , он создаться при первом обращение к базе.  Далее, создаете новый файл Open BASE , выбираете ODBC и подтягиваете из списка BaseSQLite1 .  Потом напишите макрос и перегоните данные из старой базы в новую.
Лады, буду пробовать... спасибо!
При открытии "новой базы" пишет "Невозможно установить соединение с источником данных "Название базы" cjnntct failed - что бы это? Или пока не перепишу базы - так и будет??
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 19:54
Неа, что то не так.
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 20 марта 2016, 19:57
Вот попробуйте создать таблицу ( имя базы естественно  свое пропишите) . Крыжик не забыли снять с Don`t Create DateBase ? Его можно будет поставить после создания файла,  что бы пользователи , в случае случайного удаления, стали бить тревогу, а не писать данные в новь созданный пустой файл.

Function DbConnect as Object
Dim  DatabaseContext as Object
Dim oDB as Object
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
oDB = DatabaseContext.getByName("BasaSQLite")
DbConnect=oDB.getConnection("","")
End Function

Sub CreateTableSotrudnik() 'создание таблицы с сотрудниками
      Dim oCon as Object
      Dim oStmt as Object
       Dim oSQL as String
       Dim oTbName as String
         oCon =DbConnect        
          oTbName = "SOTRUDNIK"
          oStmt = oCon.createStatement()
          'Создаем таблицу со списком сотрудников IF NOT EXISTS - создаем если таблицы нет, AUTOINCREMENT - автозаполнение по поряку, DEFAULT - значение по умолчанию
         oSQL = "CREATE TABLE IF NOT EXISTS " & oTbName & "(ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, FAMILIA TEXT NULL,NAME TEXT NULL,OTCHSTVO TEXT NULL," &_
         "ORGANIZATION TEXT NULL,LICNOMER INTEGER NULL,UDALENIE NUMERIC DEFAULT 0 NULL,SOT_GROUP TEXT NULL,TABNOMER INTEGER NULL)"
         oStmt.execute(oSQL)
           oCon.getTables().refresh()         
      oCon.close()
      oCon.dispose
End Sub
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: maksvlad от 5 апреля 2016, 02:45
Для нескольких компов выбирал между вариантами: firebird и hsql - standalone.
Пришел к выводу, что для моих целей (БД с несколькими неодновременными пользователями) лучше всего sqlite.
Есть нюансы в использовании, например, создание субформ требует определенной настройки доступа к БД (есть в хелпе по опенофису и sqlite)
Наиболее удобным менеджером для доступа к базе sqlite пока считаю sqlitestudio.
Редактирую базу в студии, а гуй-морда для пользователя в base
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: idro от 5 апреля 2016, 05:42
maksvlad А как у тебя реализовано решение коллизий при одновременной записи в базу разными пользователями ? Под Access при работе с mdb, я делал обработку ошибки, таймаут, и последующую запись. Или на SQlLite   все реализовано внутри. 
Название: Re: Как одновременно использовать базу на нескольких комп
Отправлено: maksvlad от 5 апреля 2016, 07:10
Цитата: idro от  5 апреля 2016, 05:42
maksvlad А как у тебя реализовано решение коллизий при одновременной записи в базу разными пользователями ? Под Access при работе с mdb, я делал обработку ошибки, таймаут, и последующую запись. Или на SQlLite   все реализовано внутри. 
У меня это решено организационно: база доступна по сети, но вносят данные разные люди в разное время: то есть на запись у меня только один пользователь, а на чтение сколько угодно

обработчик не писал
SQLite предопределенное поведение "BUSY":
Цитировать
Can multiple applications or multiple instances of the same application access a single database file at the same time?

    Multiple processes can have the same database open at the same time. Multiple processes can be doing a SELECT at the same time. But only one process can be making changes to the database at any moment in time, however.
<...>
       When SQLite tries to access a file that is locked by another process, the default behavior is to return SQLITE_BUSY. You can adjust this behavior from C code using the sqlite3_busy_handler() or sqlite3_busy_timeout() API functions.
https://www.sqlite.org/faq.html#q5

В общем, для реального мультиюзера нужно брать что-нить более приспособленное: firebird, mysql, PostgreSQL - в зависимости от нужды.
Sqlite, как замена встроенной, ИМХО, идеальна: просто копируется, просто редактируется