Рекомендация необходима для хорошей базы данных для настольного приложения Delphi

Если Вы не возражаете использовать JavaScript, можно установить непрозрачность введенного файлом к 0, поместить стилизованное управление в вершину через z-индекс и отправить clickevents от кнопки до введенного файлом. Посмотрите здесь для техники: http://www.quirksmode.org/dom/inputfile.html

15
задан ThinkingStiff 21 July 2012 в 19:11
поделиться

18 ответов

Firebird - отличный выбор. Он отвечает всем вашим требованиям, для него доступны отличные инструменты администрирования (IBExpert, даже бесплатная версия - лучший инструмент, который я когда-либо использовал для БД), и вы можете написать свои собственные определяемые пользователем функции в Delphi для особых требований. ваше приложение может иметь. Группа поддержки в группах Yahoo, кажется, перепрыгивает через любые запросы поддержки, которые кто-либо отправляет. В общем, для своего настольного приложения я не думаю, что мог бы сделать лучше.

21
ответ дан 1 December 2019 в 00:16
поделиться

Почему никто еще не упомянул базу данных MS Access? Необходимые драйверы (ADO / Jet) предустановлены с каждой последней версией Windows (XP, Vista ...), поддерживают многопользовательский режим, шифрование, BLOB-объекты и SQL и работают достаточно быстро. Однако помните о максимальном размере базы данных.

edit: Я действительно не понимаю, почему этот ответ был отклонен. Я несколько раз использовал базы данных доступа MS с Delphi, и это работало хорошо. Конечно, он не предназначен для тяжелых многопользовательских инсталляций и не самый быстрый, но это не было обязательным требованием в вопросе.

0
ответ дан 1 December 2019 в 00:16
поделиться

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

Я голосую за SQLite.

Однако ... похоже, что база данных Access могла бы ты тоже в порядке. Требуется нулевая установка, только Windows и ADO или что-то подобное, и все готово.

Вот ссылка на ограничения доступа.

http://www.databasedev.co.uk/access_specifications.html

Джон

0
ответ дан 1 December 2019 в 00:16
поделиться

Мне очень повезло с DBISAM . Он был заменен на ElevateDB , который я бы использовал для новых проектов.

Мне также нравится, что я могу выполнить установку XCopy.

1
ответ дан 1 December 2019 в 00:16
поделиться

Взгляните на NexusDB . Мы нашли его надежным и быстрым, и вокруг него есть хорошее сообщество.

1
ответ дан 1 December 2019 в 00:16
поделиться

MySQL is always an obvious choice. You can embed it in your application so you don't need a server (you just need to include libmysqld.dll to get full database functionality).

It's powerful, fast, fairly lightweight, and when needed, you can just switch to a "normal" MySQL server without having to change your code or queries.

No installation is needed.

There's a wealth of free examples, documentation, tools and drivers available for MySQL in general, but also in combination with Delphi.

...........

Here's the checklist:

  • Low or no buyin cost. It has 2 licences: GPL (Free) and a commercial one

  • No distribution fees. As far as i know, you can redistribute it freely

  • Easily handle upto 35,000 records with no problems, ideally up to 100k. I'm using it with tables that have up to 30.000.000 records, and it works without sweating (if you think carefully about your queries of course)

  • Supports multiple tables (in this case up to 10) check

  • Blob support (binary objects, images, etc.) check

  • Can be distributed as part of the application install set. I.E. User does not have to someone else's website to download database installer. just add libmysqld.dll, and that's it

  • Can be installed and configured by install set with minimal user interaction. My target userbase is not technically inclined. No install needed. It embeds in your app

  • Reasonably fast performance. It's very fast I can tell you

  • Support for standard SQL statements (or something reasonably close) check

  • Support for multiple indexes check

  • Size of database installation LibMySqlD.dll is a couple of megabytes

  • Size of database once installed on user's system. Depends on your database of course. It's not compressed

  • Multi-user support No multi-user support in the embedded version as far as I know

  • Encryption Encrypted data files are not natively supported, but 3rd party solutions exist

  • Scalability If your embedded server cannot handle stuff, switching to a "normal" or external one can be done without changing code or queries

...........

Limitations:

You don't have replication or events, there's just a single InnoDB thread, there is no authentication or authorization mechanism, and only your application can access the database (makes sense for an embedded database).

2
ответ дан 1 December 2019 в 00:16
поделиться

Мне повезло с абсолютной базой данных ComponentAce . Он компилируется в ваше приложение, так что вы просто получаете свою программу и файл базы данных. Он совместим с SQL 92 с большими двоичными объектами, не слишком раздувает ваш код, имеет многопользовательский режим и доступен по цене от 100 евро. Исходный код и многопользовательские опции стоят около 350 евро, это недешево, но без лицензий на распространение.

2
ответ дан 1 December 2019 в 00:16
поделиться

PostgreSQL - отличный сервер баз данных. Он занимает очень мало места, и вы можете легко настроить установку. Он весит не более 10 МБ при отправке и может быть настроен различными способами для оптимизации производительности или использования системы.

Существует интерфейс delphi: http://dbslim.berlios.de/

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

2
ответ дан 1 December 2019 в 00:16
поделиться

+100 для Firebird SQL Embedded, полной СУБД в DLL размером 5-6 МБ. Поддерживает все ваши требования и многое другое

3
ответ дан 1 December 2019 в 00:16
поделиться

Забавно, никто об этом еще не упомянул, но SQL Server Express (бесплатный) сделает все, что вам нужно. Версия Express имеет ограничение на размер базы данных 4 ГБ. Вы можете использовать Devart's SQL Server Direct Access Components (SDAC для краткости) для связи с ним в вашем приложении Delphi.

Кроме того, возможно, стоит обратить внимание на 2005 edition . поскольку требования к установке не такие тяжелые (для 2008 года требуется .NET 3.0).

6
ответ дан 1 December 2019 в 00:16
поделиться

ElevateDB - это встроенный SQL ядро базы данных, которое можно скомпилировать прямо в ваше приложение и предлагает локальные одно- и многопользовательские доступ (обмен файлами) и клиент-серверный доступ с предоставленными ElevateDB придерживается подмножества Стандарт SQL 2003 (ANSI / ISO 9075).

Некоторые из стандартных функций в ElevateDB включают:

  • Малый размер
  • Многопоточность
  • ANSI / Unicode
  • Сопоставления
  • Онлайн-резервное копирование
  • Сериализованные транзакции
  • Ограничения
  • Триггеры
  • Представления
  • Задания
3
ответ дан 1 December 2019 в 00:16
поделиться

Хорошим вариантом было бы использовать Sqlite . Существует оболочка для Delphi 2009 .

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

10
ответ дан 1 December 2019 в 00:16
поделиться

DiSqlLite (еще одна оболочка для SQLLIte) - хороший выбор. Существует множество утилит управления , которые помогут вам начать работу. Развертывание очень простое. Я использовал его в многопользовательском проекте, написав сервер delphi n-Tier, который выполнял весь доступ к базе данных.

1
ответ дан 1 December 2019 в 00:16
поделиться

DBISAM и Elevate великолепны.

0
ответ дан 1 December 2019 в 00:16
поделиться

Другой вариант - Dbase IV , V формат с полной многопользовательской поддержкой автоматического редактирования и обновления материала. Я рекомендовал Topaz с сайта www.softsci.com

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

Vitisan

0
ответ дан 1 December 2019 в 00:16
поделиться

Использование встроенного MySQL (libmysqld.dll) легко и удобно.

Но у вас НЕ есть права распространять libmysqld.dll с вашим приложением, если вы не:

  1. открываете свой исходный код приложения для всего мира (лицензия GPL) или
  2. купите коммерческую лицензию у MySQL (теперь SUN) - неясно, сколько это стоит
0
ответ дан 1 December 2019 в 00:16
поделиться

Как и Стив, меня тоже интересует простой в использовании инструмент для работы с базами данных. Я не особо много программировал на Delphi последние 5-6 лет. Я начал с Turbo Pascal 3.0, перешел на TP5, купил TP6 под названием Borland на следующий день и понизил рейтинг до TP5.5. Я купил Delphi 3 Professional, обновил его до Delphi 5 Enterprise, и это то, что у меня есть сейчас. Я только что скачал пробную версию Delphi 2010.

Я был разочарован отсутствием простых в использовании и простых в развертывании баз данных, с которыми взаимодействует Delphi. Мне нравится SQL, и я хочу, чтобы мой код SQL находился внутри хранимых процессов. Я хочу иметь возможность тестировать свой SQL-код и проверять свои данные как внутри, так и вне моего приложения.

Я только что провел последние 2,5 часа, изучая ElevateDB и читая Форумы . Я очень впечатлен тем, как они отвечают на вопросы пользователей. Я надеюсь, что этот продукт будет работать так, как я думаю. Я только что подписался на пробную загрузку.

0
ответ дан 1 December 2019 в 00:16
поделиться

Если NexusDB слишком дорог, вы можете попробовать FlashFiler, который является бесплатной базой данных с открытым исходным кодом, написанной на Delphi. Я думаю, что она является предком NexusDB. С тех пор, как она стала открытой, она практически не поддерживается, но она хорошо документирована и отвечает всем вашим требованиям.

FlashFiler бесплатен, поддерживает блобы, очень большое количество записей, индексы и таблицы. Он может быть встроен в одноисполняемую программу (не требующую DLL) или работать как многопользовательская база данных клиент-сервер. Она работает быстро и обеспечивает доступ как на уровне SQL, так и на уровне записей. Имеется легкое встроенное шифрование, или вы можете добавить свои собственные процедуры.

Например, у меня есть программа, в которую она встроена как однопользовательская база данных, исполняемый файл занимает 3 МБ и не требует никаких DLL. Она легко обращается к 50 таблицам общим размером 15 МБ. (Я также использую FlashFiler с гораздо большими клиент-серверными базами данных)

.
0
ответ дан 1 December 2019 в 00:16
поделиться
Другие вопросы по тегам:

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