Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.97/35: Рейтинг темы: голосов - 35, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
1

БД Access для работы в сети

08.08.2011, 11:04. Показов 6731. Ответов 19
Метки нет (Все метки)

Здравствуйте, есть программа на Delphi, работающая с БД Access..
В БД есть таблицы и запросы.
Вот в чем вопрос, надо переделать эту БД для работы по сети. Есть вариант перенести ее в MySQL, но с ним никогда не работала, и вообще с сетю....С чего начать не знаю...
Может, а БД Access есть возможность работы по сети?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.08.2011, 11:04
Ответы с готовыми решениями:

Ищем программиста для создания небольшой базы в Access для работы менеджеров по ведению работы с предприятиями
Не большой компании нужен на единовременную работу программист для написания автоматизированной...

Настройка сети для работы с PostgreSQL
Здравствуйте. Есть компьютер на котором стоит PostgreSQL. Необходимо настроить его так чтобы с...

Переделка теста для работы в сети
Здравствуйте. Есть тестирующая программа, которая использует БД сделанную Access. Теперь необходимо...

Приложение на для работы с БД Access
Помогите делом или советом. Во вложенных рисунках подробно показано и описано что я пытаюсь...

19
21 / 21 / 2
Регистрация: 10.11.2009
Сообщений: 67
08.08.2011, 11:26 2
если в сети мала компьютеров,то не переделывай её, а сделай через удаленное подключение к рабочему столу на котором стоит ваша СУБД.
Как это сделать не знаю. Но я писала такую прогу и её запускали по сетки так. Надо просто узнать как это делается у системного администратора

Добавлено через 2 минуты
Если будет работать по сети без интернета, то любую базу можно использовать MYSQL, MSsql и тд. А через интернет я даже не подскажу

Добавлено через 28 секунд
Если будет работать по сети без интернета, то любую базу можно использовать MYSQL, MSsql и тд. А через интернет я даже не подскажу
0
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
08.08.2011, 11:47  [ТС] 3
эля1, спасибо)
Прочитала, что можно Access. Никто не подскажет, по пунктам что куда.... А то у меня с этим вообще никак... Сижу смотрю на БД, а дальше все....))
0
Супер-модератор
8752 / 2481 / 140
Регистрация: 07.03.2007
Сообщений: 11,760
08.08.2011, 12:20 4
Ayyf, для работы с MySql вам даже не надо иметь особых познаний в работе по сети... это за вас уже давно написали разрабы субд... и перейти с одной субд на другую при нормальных знаниях sql не составит особого труда, просто надо будет почитать ман по субд для выяснения отдельных нюансов, остальное будет идентично любой другой субд...
0
21 / 21 / 2
Регистрация: 10.11.2009
Сообщений: 67
08.08.2011, 12:40 5
А можно с mуsql работать через интернет?
0
Супер-модератор
8752 / 2481 / 140
Регистрация: 07.03.2007
Сообщений: 11,760
08.08.2011, 12:43 6
эля1, в принципе особой разницы в работе по сети локальной и глобальной нет... лишь бы на входе локальной сети ничего не мешало обмену пакетами...
0
21 / 21 / 2
Регистрация: 10.11.2009
Сообщений: 67
08.08.2011, 13:11 7
Но не знаю. Синхронизировать базу данных Interbase через интернет у меня не получилось
0
Супер-модератор
8752 / 2481 / 140
Регистрация: 07.03.2007
Сообщений: 11,760
08.08.2011, 13:13 8
эля1, ну так это надо смотреть и анализировать, из-за чего вы не смогли достучаться до базы... так сказать что-то осмысленное сложно
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
08.08.2011, 14:55 9
Для того чтобы программа с акцессом работала в многопользовательском режиме надо:
1) Чтобы БД лежала в расшаренном каталоге (лучше всего на файл-сервере)
2) Программа не должна позволять "гридное" редактирование
3) Запросы на обновление записей в таблицах должны выполняться в отдельных транзакциях, по окончанию выполнения, в т.ч. неудачного транзакцию подтвержать или откатывать. Всю логику реализовать в защищенном коде (try .. except.. end)
4) Проще всего акцешные базы переносятся в Ms SQL - в этом случае запросы, как правило, катят на сервере без проблем. При переводе на MySQL придется править большинство запросов, кроме того потребуется установка соотв. компонент мускульных на КАЖДЫЙ пользовательский ПК, а также не факт, что стандартная ADO справится с мускулом так, что не надо будет переделывать логику программы (например не уверен что будет работать Locate, RecNo, RecordCount и т.д.) - т.е. придется заменять адошные компоненты мускульными, а это уже существенная переработка кода.
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 572
Записей в блоге: 2
08.08.2011, 22:52 10
По сети База акцесс доступна... Но у тебя все пользователи будут править данные? Я вот думаю одного двух юзеров сделать админами, у них будут права редактировать базу... а у других доступ только для чтения... Но они смогут делать любые запросы и отчеты. Даже можно пароль повесить на базу и НИКТО из юзеров не сможет открыть базу вручную а только с помощью проги....
0
712 / 400 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
08.08.2011, 23:02 11
Писал такую прогу для работы.
1. Файл Бд должен быть доступен для пользователей (папка с ней в открытом доступе, но имя её со знаком $ (правой кнопкой по папке, "общий доступ", разрешить для редактирования, и вот тут то в сетевом имени папки в конце ставим $). Так папка будет доступна, но визуально не видна.)
2. Пользователи могут только смотреть базу (SQL-запросы будут работать (кстати - лучше всю выдачу данных вести через них)
3. Есть один (два) человечка - админы базы. Когда они начинают работать - добавлять данные может только один человек в 1 момент.

Усё. Все пашет уже 3 года

Я вообще для админа готовил отдельный интерфейс проги под пароль. Ну и try...exept...end обязательно
0
0 / 0 / 0
Регистрация: 26.04.2009
Сообщений: 37
09.08.2011, 01:17  [ТС] 12
Исправлять и заносить данные у меня могут все пользователи, но только через программу.
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 572
Записей в блоге: 2
09.08.2011, 11:16 13
Цитата Сообщение от MsGuns Посмотреть сообщение
Для того чтобы программа с акцессом работала в многопользовательском режиме надо:
...
2) Программа не должна позволять "гридное" редактирование
...
этот пунктик огорчает... А то я на форме навтыкал dbeditов и сижу радуюсь.. Это означает что мне надо заменить все dbeditы на обычные editы и отслеживать, менял ли пользователь какую нибудь edit и т.д.? Писать свои процедуры?...
0
148 / 148 / 3
Регистрация: 05.05.2010
Сообщений: 569
09.08.2011, 12:19 14
Цитата Сообщение от alexan0308 Посмотреть сообщение
этот пунктик огорчает...
Не так уж и много... Писать программы - это не компоненты на форме размещать. Зато возможностей по контролю корректного ввода больше и т.п.
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 572
Записей в блоге: 2
09.08.2011, 12:35 15
Цитата Сообщение от harmless Посмотреть сообщение
Писать программы - это не компоненты на форме размещать.
Дык мозг итак приходится включать когда всякие запросы пишешь... Я уж тогда все равно напишу лучше наследник или компонент Edita, где есть свойство кроме text еще и oldtext, события, которые проверяет, равны ли они друг другу, и записывает данные если text <> oldtext и пр., свойство fieldname...
и накидаю эти компоненты на форме... только неохото ведь... стандартные вещи на то и стандартные
0
712 / 400 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
09.08.2011, 12:42 16
Цитата Сообщение от alexan0308 Посмотреть сообщение
Писать свои процедуры?
Конечно! А как вы думали?


Цитата Сообщение от alexan0308 Посмотреть сообщение
Это означает что мне надо заменить все dbeditы на обычные editы и отслеживать, менял ли пользователь какую нибудь edit и т.д.?
А нафига вам Эдиты? Выведите всю нужную инфу в табличной форме, а остальное - в ДБТекст
БД Access для работы в сети
0
106 / 82 / 15
Регистрация: 07.06.2011
Сообщений: 572
Записей в блоге: 2
09.08.2011, 13:04 17
Цитата Сообщение от Андрей Борисови Посмотреть сообщение
А нафига вам Эдиты? Выведите всю нужную инфу в табличной форме
Чтоб юзеры могли редактировать бд типа отдельными транзакциями... Без таблицы грида как советует MsGuns...
Может конечно я чего то не знаю или недопонимаю...
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
09.08.2011, 14:51 18
Delphi
1
Может конечно я чего то не знаю или недопонимаю...
Проблема акцеса в том, что он не дает открыть таблицу на совместное редактирование (вернее, дает, но в специальном режиме, который мягко говоря не подходит для многопольз.приложений), а правка в гриде как раз "захватывает" таблицу. Т.е. если один юзер стартовал пишущую транзакцию (хоть и нет такого явно, но соотв.транзакция таки стартует), установив (опять-таки неявно) режим правки (TDataSet.State in [dsInsert,dsEdit...]), то пока он не завершить транзакцию (т.е. не запостит новую запись, а при кэшировании не сделает явно или неявно ApplyUpdates/CancelUpdates) попытки доступиться к таблице из других соединений для внесения изменений (и даже из этого же) будут акцесом тупо отражаться как ошибочные.
Проблема, конечно, не в гриде, а в том, что при стандартных (компонентокидательных) методах прораммирования опять же стандартые TXXXTable и TXXQuery не обеспечивают синхронизированную работу с конкурентыми соединениями (т.е. то, что любой скл-сервер имеет в "штатных" фичах) и посему такая программа обречена на вечную глюкавость, которые умельцы-борисовичи "обходят" сугубо административными методами (грубо говоря - пишется две проги - одна - для "админа", т.е. того, кто вносит изменения в БД, другая - для прочих "юзверей", которая позволяет только смотреть)

Можно, конечно, "научить" программу вносить правки через гриды, но для этого надо немало знать (и, главное, понимать !) об используемых компонентах и самом акцесе, а также много писать кода, подчас достаточно громозкого, заменяя неявное управление транзакцией VCL-компонент на явное.
0
712 / 400 / 33
Регистрация: 04.10.2009
Сообщений: 1,686
09.08.2011, 19:03 19
Цитата Сообщение от MsGuns Посмотреть сообщение
Можно, конечно, "научить" программу вносить правки через гриды, но для этого надо немало знать (и, главное, понимать !) об используемых компонентах и самом акцесе, а также много писать кода, подчас достаточно громозкого, заменяя неявное управление транзакцией VCL-компонент на явное.
Всегда есть время, когда с базой ни кто не работает. В этот момент можно в неё запихнуть отложенную транзакцию. Но вот реализация этого процесса занимает тыщщумильёнов строк кода, немало сгрызенных карандашей и стучания по столу головой....

Гораздо проще реализовать это на уже написанном сервере (mysql например)...
0
1156 / 1015 / 165
Регистрация: 04.04.2011
Сообщений: 3,555
09.08.2011, 21:37 20
Delphi
1
 Но вот реализация этого процесса занимает тыщщумильёнов строк кода, немало сгрызенных карандашей и стучания по столу головой....
Это от безграмотности. Лечится практикой быстро и надежно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.08.2011, 21:37

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

С++ библиотека для работы с MS Access
В нете везде натыкаюсь на ADOconnection c#. Нужна для с++.

Программа для работы с БД, работа программы по сети
Здравствуйте форумчане, прошу помощи в следующей задаче. Я делаю Программу которая работает с БД, и...

Ищу людей, для работы - в сети. 20 человек!
Здравствуйте! И так давайте начнём с первого. В чем заключается работа? 1. Вам будут...

Пример hardware для работы сети предприятия
В общем, есть схема сети предприятия, кто разбирается то напишите модели устройств которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.