Какую встроенную базу данных использовать в приложении Delphi?

clipboard.js - хорошая утилита, которая позволяет копировать текстовые или HTML-данные в буфер обмена без использования Flash. Он очень прост в использовании; просто включите .js и используйте что-то вроде этого:




clipboard.js также находится в GitHub .

Редактировать 15 января 2016 года: Верхний ответ был изменен сегодня, чтобы ссылаться на тот же API в моем ответе, опубликованном в августе 2015 года. В предыдущем тексте было поручено пользователям использовать ZeroClipboard. Просто хочу быть ясным, что я не выдернул это из ответа jfriend00, а наоборот.

39
задан JeffV 19 November 2008 в 05:12
поделиться

24 ответа

Я использовал SQLite (через DISQLite3) в FeedDemon в течение нескольких месяцев, и я настоятельно рекомендую его - это было чрезвычайно быстро и стабильно. Как Javier сказал, документы для библиотеки могут быть тонкими, но документы для самого SQLite очень хороши.

15
ответ дан Nick Bradbury 23 September 2019 в 17:12
поделиться

Firebird полностью. Делает вполне прилично все, и до сих пор версия 2.1 очень тверда.

-1
ответ дан 23 September 2019 в 17:12
поделиться

Я использовал ScimoreDB. Это имеет свои причуды, поскольку они дают его единожды оплачиваемый, и это имеет свои причуды в типах данных и с некоторыми проблемами установки. Это было на проекте C#.

0
ответ дан 23 September 2019 в 17:12
поделиться

Firebird встроил, наш выбор № 1 также. И комплект Объединенный Межосновной v2.0 с ним. Большое и стабильное решение!

0
ответ дан Matthias Hryniszak 23 September 2019 в 17:12
поделиться

Я использовал DBISAM и kbMemTable в различных случаях.

то, Что мне нравится приблизительно DBISAM, - то, что он имеет замечательные особенности и обычно очень надежен. Я использовал его в больших базах данных, полнотекстовом поиске, режиме только для чтения, CGIs и многих других ситуациях.

Это является довольно большим по сравнению с kbMemTable, или SQLite основывал компоненты, все же. И у Вас не может быть единственного файла для каждой базы данных (или даже таблица) - в зависимости от ситуации, которая является главным недостатком.

kbMemTable является крошечным, и это является большим для небольших количеств данных. Так как это работает в памяти, это должно быть небольшое количество данных, конечно.

Еще одна опция я взял несколько своих настольных приложений, выводит данные непосредственно из моей иерархии объектов с помощью TWriter/TReader. Это безусловно, что самая маленькая опция, и нелепо быстра по сравнению с использованием базы данных. Файлы данных являются крошечными, также.

Это имеет все виды недостатков, хотя - необходимо кодировать управление версиями в том, если Вы могли бы хотеть когда-либо добавить/изменить поля, если это не в оперативной памяти, это еще более сложно, никакая многопользовательская поддержка вообще, и т.д.

0
ответ дан stg 23 September 2019 в 17:12
поделиться

Firebird встроил, наш выбор № 1, потому что без изменений кода, отдельный пользователь приложение Дельфи со встроенной базой данных может быть перемещено в многопользовательское основанное на сервере развертывание, не жертвуя ни одной из функций высокого класса (таких как хранимые процедуры, триггеры, представления, и т.д.). И это - TRUE свободная база данных и не делает GPL Ваш код в процессе.

8
ответ дан 23 September 2019 в 17:12
поделиться

Если встроено насущная необходимость, взгляд на DBISAM.

0
ответ дан user30586 23 September 2019 в 17:12
поделиться

Я использовал SQlite3 для большого количества проектов (но от C/C++ и Objective C). Это является чрезвычайно маленьким - никакие зависимости вообще - база данных находится в единственном файле.

Это - предпочтительный дб для разработчиков Mac, потому что это непосредственно поддерживается CoreData и на iPhone - таким образом, существует большая база пользователей (не говоря уже обо всех других пользователях).

19
ответ дан Lou Franco 23 September 2019 в 17:12
поделиться

Давайте посмотрим, быстрое сравнение:

SQLite:

  • динамический контроль типов в базе данных
  • межплатформенные файлы
  • работают на Windows, Linux, Mac, и т.д.
  • общественное достояние
  • , транзакции поддержек
  • полагаются на защиту файловой системы, не включает собственную безопасность

встроенный Firebird:

  • строгий контроль типов в базе данных
    • не все типы данных SQL поддерживаются
  • межплатформенные файлы
    • , Firebird встроил, только работает на Windows
    • Files от встроенного Firebird, находятся в том же формате, как полная серверная версия
    • Файлы от встроенного Firebird может быть скопирована в сервер не-Windows для использования
  • доступный под измененным MPL ("что является нашим, является нашим и должен остаться свободным, что является Вашим, является Вашим, и Вы не должны выпускать его")
  • транзакции поддержек, триггеры, и т.д.

встроенный MySQL:

  • поддержка функций SQL зависит от формата файла
  • межплатформенные файлы (IIRC)
  • GPL, если Вы не платите, роялти
  • работает на Windows, Linux, Mac
  • , невероятно популярном у толпы с открытым исходным кодом

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

13
ответ дан 2 revs 23 September 2019 в 17:12
поделиться

Я использую Встроенный Firebird 2.1, и я довольно доволен им. Мне нравится то, что размер базы данных практически неограничен (протестированный с> базы данных на 4 ГБ, и он работает), и что файл базы данных совместим с Сервером Firebird, таким образом, я могу использовать стандартные инструменты для управления базой данных и контроля. Распределение состоит из отбрасывания немногих файлов в Вашей exe папке.

Одновременный доступ из нескольких программ не поддерживается, но одновременный доступ от нескольких потоков (как долго, поскольку Вы удостоверяетесь, что только одна операция 'подключения' происходит в любой данный момент).

38
ответ дан gabr 23 September 2019 в 17:12
поделиться

kbMemTable является хорошим кандидатом. Выполнения в памяти, быстро, multi-threadding. Используемый, чтобы быть свободным.

Components4Developers

0
ответ дан 23 September 2019 в 17:12
поделиться

Я использую SQL Server Express и компоненты ADO. Работает отлично. Можно выполнить Экспресс-инсталляцию SQL Server с командной строкой для сокрытия сложностей от пользователей. Можно также распределить базу данных, которую Вы загружаете именем файла. Существуют миллионы пользователей SQL Server, таким образом, решения любых проблем легко найдены в межтрубах:-)

1
ответ дан Tom 23 September 2019 в 17:12
поделиться

Я использовал DBISAM в ряде проектов. Это полностью встраивается без даже потребности во внешнем DLL. В отличие от других Вы перечислили его, является коммерческим. Много замечательных особенностей, хотя и очень хорошо зарегистрированный и поддерживаемый. преемник к нему, что я еще не попробовал все же.

13
ответ дан Jim McKeeth 23 September 2019 в 17:12
поделиться

Я неравнодушен к Абсолютному DB Туза Компонента. Хотя коммерческий продукт ($), это - твердое, простое в использовании, маленькое место и хорошо зарегистрированный. При поиске огромного многопользовательского приложения это не способ пойти, но если многопользовательские потребности легки (или не существуют), это - твердая опция.

1
ответ дан lgallion 23 September 2019 в 17:12
поделиться

Смотрите на NexusDB. Использовали очень успешно в прошлом.

2
ответ дан Craig 23 September 2019 в 17:12
поделиться

NexusDB предлагает полный спектр от встроенного к полному клиенту/серверу / удаленный. Также совместимый SQL2003, я верю. Я использую его на нескольких проектах и очень рад до сих пор, и то, что это может работать в таком широком спектре "масштабов", является большим плюс (не имеющий необходимость изучить другой DB для увеличенных приложений, и т.д.).

2
ответ дан Jamo 23 September 2019 в 17:12
поделиться

Что касается размера, ничто не бьет SQLite.

, когда Вы относитесь об отсутствии документации, я предполагаю, что это - документ для DISQLite3. документы SQLite довольно завершены

3
ответ дан Javier 23 September 2019 в 17:12
поделиться

Я использую Сервер базы данных Преимущества Sybase, но я - также R& D менеджер, таким образом, это сообщение смещается.:)

у Нас есть собственный Дельфи TTable и компоненты TQuery и для VCL WIN32 и для VCL.NET. Прямой доступ таблицы в дополнение к поддержке SQL делает Преимущество уникальным среди многих из других предложений Дельфи. Преимущество поддерживает большие таблицы (только ограниченный количеством записей, 2 миллиардов) и имеет свободный локальный механизм, который хорош для ПК разработки и для маленьких сайтов для клиентов, которые не требуют клиент-серверной функциональности. Переключитесь на клиент/сервер с единственным свойством соединения, никакими другими изменениями.

у Нас есть тонна клиентов, настолько получающих доступ к данным за пределами Дельфи, также очень легко (поставщик данных.NET, ODBC, OLE DB, PHP, Perl, JDBC, и т.д.).

веб-сайт Основного продукта: http://www.advantagedatabase.com веб-сайт Разработчика: http://devzone.advantagedatabase.com

5
ответ дан Jeremy Mullin 23 September 2019 в 17:12
поделиться

Я сделал веб-поиск для нахождения быстрого пакета базы данных для моего Приложения Дельфи. Я хотел, чтобы он полностью содержался в исполняемом файле без внешнего DLLs или требуемых библиотек. Я первоначально нашел Accuracer AidAim. Они отправили , как быстро их база данных была и даже дала сравнения с другими подобными пакетами к “prove” их точка.

я хотел верить их требованиям, но я думал, что I’d ищут сеть немного больше для нахождения синхронизаций других пакетов. Я был очень удивлен найти сообщение в дискуссионных форумах Дельфи , где человек спросил, какая база данных использовать, и было 14 различных предложений. Один из респондентов сделал его собственные сравнения синхронизации и нашел, что Accuracer был довольно медленным по сравнению с несколькими другими, которых Accuracer (удобно) упустил из их собственной страницы сравнения.

сообщение, плюс дополнительное последующее веб-исследование мной, привело меня склоняться DISQLite3, продукт на основе программа SQLite С открытым исходным кодом, но с улучшениями для работы в Дельфи очень быстро, с очень маленькими издержками, и с основанными на команде вызовами - который я люблю. Это активно разрабатывается и будет скоро иметь официальную версию Дельфи 2009, хотя, по-видимому, текущая версия будет работать под D2009.

Addenum: Версия 2.0.0 DISQLite3, выпущенная 17 ноября, поддерживает D2009.

1
ответ дан lkessler 23 September 2019 в 17:12
поделиться

Проблема со (встроенным) firebird, что база данных не может находиться на сетевом диске. Кроме того, трудно иметь базу данных по диску только для чтения (CD/DVD).

Для некоторых бездельничает, эти ограничения видят Wiki Дельфи: http://delphi.wikia.com/wiki/Firebird_tipps

2
ответ дан 23 September 2019 в 17:12
поделиться

Это действительно зависит, в чем Вы нуждаетесь. Для однопользовательских приложений Встроенные Firebird или SQLite являются, вероятно, лучшим выбором (и цена является правильной). На другом конце, если Вы нуждаетесь в поддержке для большого количества многочисленных пользователей, необходимо, вероятно, использовать обычный Firebird вместо Встроенной версии (сервер прост установить так, у Вас не будет многого проблемами здесь).

И если бы Вам нужно что-то промежуточное для умеренного многопользовательского приложения, одна из плоских баз данных была бы лучше. Я нашел что Абсолютная База данных ComponentAce лучший выбор для моих потребностей, чем DBISAM, NexusDB или VistaDB.

Это оставляет относительно маленькое место (никакой DLLs), это - однофайловый дб (необходимость для меня), Unicode поддержек, сжатие BLOB, crypting, и технические пределы кажутся производящими впечатление для плоской базы данных. Кроме того, поддержка была хороша в немногих случаях, когда мне была нужна она.

Для недостатков, я заметил, что это не поддерживает вложенные транзакции, но кроме которого, у меня не было проблем.

5
ответ дан vrad 23 September 2019 в 17:12
поделиться

Firebird действительно потрясающий и имеет небольшой размер, так что вы можете использовать встроенный и это может быть увеличено для многих пользователей и делает юникод очень хорошо Я использую компоненты Devart с Delphi 2009 и FIB plus для Delphi 6/7 (их версия для 2009 года и Unicode еще не готова)

-1
ответ дан 27 November 2019 в 02:05
поделиться

FireBird предлагает возможность масштабирования до нескольких когда-нибудь в будущем, или если вам нужен параллелизм (если ваше приложение работает в многопоточном режиме).

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

-1
ответ дан Eric Grange 27 November 2019 в 02:05
поделиться

Hmmm, no one has recommended the BDE - I wonder why that is ;-)

BlackFishSQL is another possibility, although I haven't tested in depth as yet.

-1
ответ дан 27 November 2019 в 02:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: