Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2014, 10:50   #1
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию C#, MySQL в приложении без сервера

Доброго времени суток, нужен совет по следующей задаче:

Есть приложение на C#, в котором происходит периодическая загрузка данных, координаты точек(x,y,z), положение, содержание и названия окон.
Вся информация грузится согласно условий, id пользователя, уровня доступа, списки доступных товаров продавца и т.д.
Всё это очень легко делать с помощью базы MySQL. Благодаря сложным запросам я могу получить максимум полезной информации с большим количеством переменных в программе.

Но, проблема в том, что готовой программе нужен MySQL сервер.
А программа не должна работать по сети/интернету.

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

Я замечал, что некоторые программы работают с БД, но локально, без использования самого сервера.

Как это реализовать?
Заранее благодарю.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 17.01.2014, 11:09   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Перейти, например, на Access и провайдер JET OLEDB. А еще есть FireBird Embedded. Встречал в интернете и MySQL как Embedded, но, увы, не акцентировался на этом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 17.01.2014 в 11:19.
Аватар вне форума Ответить с цитированием
Старый 17.01.2014, 11:11   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

используйте локальную СУБД, для которой не нужен сервер.
начиная с формата MS Access (в Windows встроен провайдер JET, который обеспечивает доступ к БД, для доступа к данным сама Access на компьютере не обязательна), SQLite, FireBird embedded и т.д. и т.п.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.01.2014, 11:13   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Я замечал, что некоторые программы работают с БД, но локально, без использования самого сервера.
Простите, но я не совсем понял, что Вы имеете ввиду говоря: "без использования самого сервера"? Без использования сервера SQL работают только файловые БД типа Access.
Если я правильно понял Ваш вопрос, то можно решить проблему следующим образом.
Установить MySQL, на тот же ПК, на котором запускается программа. Таким образом Вы получите локальный MySQL сервер. Далее необходимо сделать в программе соответствующие настройки подключения к БД.
В конечном итоге, если всё сделано правильно, программа будет работать с MySQL локально, без сервера в сети.
Streletz вне форума Ответить с цитированием
Старый 17.01.2014, 12:38   #5
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от Streletz Посмотреть сообщение
Простите, но я не совсем понял, что Вы имеете ввиду говоря: "без использования самого сервера"?
Без установки отдельного MySQL Server, выделенного, тот что ещё работает на порту 3306 по стандарту.

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

Про SQLite, читал, он подходит для не больших объёмов данных, могут некоторые процессы замедляться, но как вариант нужно проверить.
Как и embedded, мельком встречал, изучу по подробнее.
А FireBird он же так же использует внешний сервер, вроде...

В C# есть класс SqlConnection.
Строка инициализации(подключения) выглядит как-то так:
Data Source=(local)\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True
Ключ "Data Source" немного не понятно, к чему он пытается подключиться?
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 17.01.2014, 12:43   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

FireBird Embedded не использует внешнего сервера. Просто в каталог проги несколько dll
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.01.2014, 13:03   #7
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Благодарю, значит буду смотреть в их сторону.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 17.01.2014, 13:22   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Air Посмотреть сообщение
Без установки отдельного MySQL Server, выделенного, тот что ещё работает на порту 3306 по стандарту.

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

Про SQLite, читал, он подходит для не больших объёмов данных, могут некоторые процессы замедляться, но как вариант нужно проверить.
Как и embedded, мельком встречал, изучу по подробнее.
А FireBird он же так же использует внешний сервер, вроде...

В C# есть класс SqlConnection.
Строка инициализации(подключения) выглядит как-то так:
Data Source=(local)\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True
Ключ "Data Source" немного не понятно, к чему он пытается подключиться?
SQLite вполне тянет большие объемы данных.

а подключится пытается к локальному SQLEXPRESS серверу.(MS-SQL Express)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Qt mysql корректно отключиться от сервера _KUL Qt и кроссплатформенное программирование С/С++ 9 31.05.2012 17:59
Обработка события выгрузки экземпляра (одного из нескольких) COM-сервера в приложении edwardvk Общие вопросы Delphi 0 03.10.2010 17:07
MessageBox в приложении без окна Олвин Общие вопросы Delphi 5 16.02.2010 11:14
ClientSocket в приложении без формы Gambler Работа с сетью в Delphi 5 25.11.2009 17:48
Обработка сообщений в приложении без окон. kalexi Win Api 2 26.06.2009 20:12