Привет.
Уроков много в сети, информации тоже. Однако везде в качестве СУБД используют MySQL, который нужно запускать, чтобы он принимал запросы к базе и т.п.
Вопрос:
Можно ли заюзать СУБД без установки её предварительно ? Ну т.е. мне чтобы использовать запросы в БД нужно чтобы у меня был установлен MySQL. А я бы хотел это дело обойти. Как это сделать ?
Спасибо.
БД это отдельное приложение. Если у тебя нету никакой БД, но работать тебе с ней надо, то тебе нужно ее установить. Или работать без БД.
Если проблема в том что твоя СУБД кушает очень много ресурсов - поищи более легкие варианты, sqlite например
смотря для чего. ну и есть решения БД не использующие драйвера БД и выполненные в виде dll, правда их функционал несколько ограничен
Mira
Ну я пишу приложение, которое полностью локально. Т.е. БД должна быть на стороне клиента. Вы можете возразить, что тогда, возможно, нужна не БД, а более простая структура данных. Но мне хотелось бы делать выборку из таблиц, что наверное удобнее сделать через БД. Другое дело, что было бы неплохо, чтобы эта СУБД была кроссплатформенной, работала бы на мобильниках и была бы небольшой по объёму.
sqlite
iLoled
> sqlite
+1
iBoxDB
Fast ACID Table Style Document NoSQL Application Database
For JAVA C# Android Unity3D Xamarin Mono Nashorn Linux Windows Phone
Gladiator
Слушай если ты работаешь в юньке, playerprefs не подходит для этих целей? Самому интересно.
https://docs.unity3d.com/ScriptReference/PlayerPrefs.html
По крайней мере с помощью него можно сохранять установки настроек, какой нибудь максимальный установленный рекорд в игре и тд.
По любому, драйвер СУБД должен быть установлен. В простых случаях сама субд может отсутствовать в системе как отдельный процесс, это может быть просто dll.
Без драйвера субд не будет доступна через ADO.NET. Или вы как-то иначе с базами работаете из unity?
Zab
БД на сервере с REST-интерфейсом?
Gladiator
> БД должна быть на стороне клиента
SQLite в руки
zlos
> БД на сервере с REST-интерфейсом?
При чем тут REST-интерфейс? C# работает с базами данных через OLEDB-источники, которые система должна знать. Понятия не имею как это реализуется под юниксом в MONO, должен быть эмулятор, по идее.
В данном же случае БД на стороне клиента, скорее всего под виндой. Соответственно, субд надо регистрировать как источник данных, чтобы она стала доступной из C#. Как это сделать без установки? Подозреваю что никак.
Вполне возможно что и ms access сойдет. Он есть в бесплатной версии офиса?
Zab
Экспортировать БД во время сборки в какую-то форму? Для работы у игрока надо использовать что-нибудь интегрированное, на манер SqLite и не сношать себе мозги. У БД есть при этом недостаток - не положить в контроль версий с понятными глазу диффами.
UPD:
Если же надо какое то центральное место для всех клиентов то давать прямой доступ это очень плохая идея.
zlos
Ничего не надо экспортировать. Есть система интерфейсов, если сама СУБД или драйвера к ней эту систему поддерживают, с разными базами можно работать с помощью одного инструмента. Что такое ODBC знаете? Это старая система, C# использует интерфейсы следующего поколения, OLEDB. К сожалению, оно микрософтовское и распространено только под виндами. Не знаю как этот элемент портировали под юникс, когда делали mono. По идее должны были портировать, совместимости же хотели с микрософтом.
ADO.NET - более высокоуровневая надстройка над OLEDB, через которую в C# осуществляется вся работа с базами данных.
Всем большое спасибо!
Буду использовать sqlite.
P.S. Просто любопытно, а как работает SQL "под капотом". Создать таблицу и т.д. просто. А вот выборка по определённым условиям. Это интересно. Если не поняли, я имею ввиду, что лежит в основе всего этого дела: хеш-таблицы, деревья ? Хотя деревья, я слышал используются в NoSQL.
Тема в архиве.