Локальная База Данных без установки дополнительного ПО

Status
Not open for further replies.

Guard

Premium
Joined
Mar 5, 2004
Messages
58
Reaction score
2
Age
50
Location
Тула
Guard,
меня интересует наиболее легкая реализация однопользовательской БД, желательно под Delphi, для переноса которой на любой комп достаточно будет перенести лишь папку программы )))
Так это совсем другая постановка вопроса. Можно использовать всё, о чём здесь народ писал. Я конечно упертый, но Firebird на мой взгляд лучший вариант или XML через TClientDataSet(midas.dll). Потому, что не требуют настроек самой системы и все настройки можно хранить например в ini файле(который естественно в папке программы)
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Гы, использовать можно все что угодно, нужно только, чтобы это было просто и работало ))) FB в одной dll-ке - не уверен, что на ней просто можно реализовать БД. XML - не помню, чтобы в Delphi была поддержка этой платформы в dbExpress.
 

Guard

Premium
Joined
Mar 5, 2004
Messages
58
Reaction score
2
Age
50
Location
Тула
FB в одной dll-ке - не уверен, что на ней просто можно реализовать БД. XML - не помню, чтобы в Delphi была поддержка этой платформы в dbExpress.

По поводу FB - это тебе сюда http://www.ibase.ru/ibfaq.htm#embedded

а про dbExpress я тоже не помню :) , только про TClientDataSet из MyBase
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Guard,
я в курсе, про embedded вариант. Меня интересует, пробовал ли кто-нибудь писать приложение на такой реализации FB и что у него получилось. Просто у меня есть внутреннее ощущение, что без гемороя там не обойдешься, а проверить это самому нет пока времени.
 

Guard

Premium
Joined
Mar 5, 2004
Messages
58
Reaction score
2
Age
50
Location
Тула
Guard,
я в курсе, про embedded вариант. Меня интересует, пробовал ли кто-нибудь писать приложение на такой реализации FB и что у него получилось. Просто у меня есть внутреннее ощущение, что без гемороя там не обойдешься, а проверить это самому нет пока времени.
У меня тоже все времени не было. Вот только сел скачал FB Embedded.

Вообщем получилась добавка около +4,5 Мб. Всё подкинул к работающему проекту, запустил, всё работает. Долго не тестировал, но то, что попробовал бегает. Из удобств - пишешь для встроенного сервера, а работает и в сетевом варианте. Кстати работают и в месте. Сетевой сервер встроенному не мешает, если конечно не пытаться работать с одной базой :)
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Надо будет попробовать. Я только не понял, что достаточно только эту dll-ку подгрузить, а все остальное точно такое же, как для обычного сервера?
 

Guard

Premium
Joined
Mar 5, 2004
Messages
58
Reaction score
2
Age
50
Location
Тула
Надо будет попробовать. Я только не понял, что достаточно только эту dll-ку подгрузить, а все остальное точно такое же, как для обычного сервера?
Я же пишу там для работы нужна не одна dll, а целая куча(~5)
Берёшь FB http://prdownloads.sourceforge.net/firebird/Firebird-2.0.0.12724-0_embed_win32.zip распаковываешь в директорию с прогой, переименовываешь fbembed.dll -> gds32.dll и все. саму прогу менять не надо
 

Ognev

ex-Team DUMPz
Joined
Aug 20, 2018
Messages
2,105
Reaction score
902
Age
25
Попробовал сегодня поработать с FB Embedded. Все действительно работает ))) Для меня, пожалуй, это наиболее предпочтительный вариант. Да, версия 1.5.3 не работает с сетевыми базами. Полагаю, 2.0 планируется сетевой, а просто пока он в стадии RC, то ReadMe для него просто берут из предыдущих версий. Ну а fbembed.dll можно не переименовывать, а прямо указать его название в свойствах коннекта. Спасибо за совет!

P.S. Добавил в шапку )))

P.P.S. И спасибо за настойчивость! )
 
Last edited by a moderator:

Guard

Premium
Joined
Mar 5, 2004
Messages
58
Reaction score
2
Age
50
Location
Тула
Попробовал сегодня поработать с FB Embedded. Все действительно работает ))) Для меня, пожалуй, это наиболее предпочтительный вариант. Да, версия 1.5.3 не работает с сетевыми базами. Полагаю, 2.0 планируется сетевой, а просто пока он в стадии RC, то ReadMe для него просто берут из предыдущих версий. Ну а fbembed.dll можно не переименовывать, а прямо указать его название в свойствах коннекта. Спасибо за совет!

P.P.S. И спасибо за настойчивость! )
Могу расстроить 2.0 тоже не работает, это же локальные однопользовательские движки :).
fbembed.dll лучше переименовать, тогда твоя прога сможет работать и на нормальном сетевом сервере без переделки
 

i2s

Member
Joined
Apr 6, 2004
Messages
21
Reaction score
0
Age
64
Рекомендую MSDE. Во первых - бесплатно, во вторых - научишься работать с MS SQL.
 

Raff

New member
Joined
Oct 28, 2008
Messages
4
Reaction score
4
Точно.. Не требует... Но требует большого терпения и крепких нервов..

пытался сделать что либо путное на AbsoluteDB.. Увы и ах...
В конце концов портировал свое приложение на ElevateDB - и нисколько не жалею..
мой совет - попробуй ElevateDB... Весьма сурьезная штука
А я вот делаю с AbsoluteDB и все хорошо работает. База шифрованная, устойчивая, не нужно библиотек лишних и прочего.

Добавлено через 2 минуты
А может кто-нибудь поделиться версией Absolute Database 6 with full source?
А то без исходников ставить как-то "не очень".
 
Last edited by a moderator:

Kotofff

Member
Joined
Sep 28, 2008
Messages
25
Reaction score
38
Location
Россия. Кубань.
Website
kotoff.info
А я вот делаю с AbsoluteDB и все хорошо работает. База шифрованная, устойчивая, не нужно библиотек лишних и прочего.

Правильно все делаешь !!! Поддерживаю !!! ABS - с первого взгляда и на всю жизнь !!!
С новой версией не торопись ...
... есть такой анекдот :
- Папа, а почему солнце встает на востоке а садится за западе ?
.. Папа (программист) отрываясь от написания одного важного проекта :
- Сынок ... ты проверял ... точно все работает ?
- Да, пап, проверял два дня подряд.
- ... сынок, прошу тебя ... ничего не трогай ...
 

y.victor

Member
Joined
Jul 19, 2004
Messages
57
Reaction score
14
А я вот делаю с AbsoluteDB и все хорошо работает. База шифрованная, устойчивая, не нужно библиотек лишних и прочего.

Добавлено через 2 минуты
А может кто-нибудь поделиться версией Absolute Database 6 with full source?
А то без исходников ставить как-то "не очень".

Если ABS тебя устраивает, то я рад за тебя.. Нет плохих и нет хороших баз, есть только подходящие под забдачу и неподходящие под задачу.

Вот.. посуди сам...

связка ABSTable + QuantumGrid.. Добавление 5000 записей = 21 сек.
связка EDBTable + QuantumGrid.. Добавление 5000 записей = 6 сек.

причем у ABS время растет с увеличением размера таблицы, у EDB - на порядок медленнее...

У ABS есть заморочки с автоинкрементными полями... с Before....After... у ABSQuery ...

Это так... Навскидку... Разбираться и копаться - себе дороже... Легче перейти на EDB...
 

Raff

New member
Joined
Oct 28, 2008
Messages
4
Reaction score
4
Правильно все делаешь !!! Поддерживаю !!! ABS - с первого взгляда и на всю жизнь !!!
С новой версией не торопись ...
Я бы не торопился, но под Delphi 2009 идет Absolute Database 6. Предыдущие версии не хотят ставиться, а портировать не хочется (не то чтобы лень, но ведь уже будет "не официально").

Добавлено через 3 минуты
... Легче перейти на EDB...
Тогда прошу просветить насчет ElevateDB:
1. что это такое? (понятно, что движок СУБД, но какой - для локального пользования или для "клиент-сервер");
2. в чем отличие от AbsoluteDB (по принципу работы с ней)?
3. какая последняя версия?

(понимаю, что все это можно найти в поисковиках, но чесслово - нет времени)
 
Last edited by a moderator:

y.victor

Member
Joined
Jul 19, 2004
Messages
57
Reaction score
14
Я бы не торопился, но под Delphi 2009 идет Absolute Database 6. Предыдущие версии не хотят ставиться, а портировать не хочется (не то чтобы лень, но ведь уже будет "не официально").

Добавлено через 3 минуты

Тогда прошу просветить насчет ElevateDB:
1. что это такое? (понятно, что движок СУБД, но какой - для локального пользования или для "клиент-сервер");
2. в чем отличие от AbsoluteDB (по принципу работы с ней)?
3. какая последняя версия?

(понимаю, что все это можно найти в поисковиках, но чесслово - нет времени)

1).ElevateDB поддерживает файлсерверный и клиентсерверный режим, а также embedded(ет когда движок БД находится в самом экзешнике..
Сейчас в моем приложении и EDB, Деффки, RZ и VCLSkin - и вся эта куча
на D7 дает екзе менее 10 МБ).

2).Вощще то не очень отличается.. Ну - правда - кроме ТОЛЬКО ТАБЛИЦ, поддерживает сущие пустяки - триггера, хранимки, джобы, роли, гранты ну и вякую другую мелочь... :))


3).У меня та, что с нами поделился наш высокомногоуважаемый блистательный дон ASM64D -2.02

А вот просто ее описание


Access methods
Direct-access (single or multi-user)
Client-server access (LAN or Internet/WAN)
Compilation support
Compiles directly into executable
Large file support (greater than 4 gigabytes)
Multi-threading support
Customizations
Engine signature support (1)
File names and extensions
Custom encryption
Custom compression
Custom memory buffer settings
Internationalization
Unicode support
Table-level collations
Column-level collations
Collation-specific case-insensitivity
Collation-specific accent-insensitivity
Collation-specific Kana and width-insensitivity
External access
ODBC Driver
ADO.NET data provider
Source Code
Written in Delphi Object Pascal
Compilable as .NET managed code
Source code available (extra charge)
SQL support
SQL-92 standard
SQL-2003 standard
NULL support (2)
Query expressions as values
Catalogs
Information schema
Views
Triggers (SQL)
Triggers (native code)
Primary key constraints (3)
Unique key constraints (4)
Foreign-key constraints
Check constraints (5)
Column defaults (6)
Required (not nullable) columns
Generated columns
Identity (auto-increment) columns (7)
BLOB columns
Procedures (SQL)
Procedures (native code)
Functions (SQL)
Functions (native code)
EXISTS operator
Direct Table Access
Row navigation (first, last, next, prior)
SQL expression and callback filters
Ordering by specific index
Searching by specific index key
Index key ranges
Row counts with expression filters and index key ranges
Logical row numbering
User security
Direct access security
Client-server access security
Users
Roles
Database privileges
Table and view privileges
Procedure privileges
Function privileges
Performance
SQL Query Optimizer
Query Plans
Transactions and locking
Serialized transactions
Transactions on a specific table or set of tables
Pessimistic row locking
Optimistic row locking
Row change detection and notification (8)
Database Format
In-memory databases (9)
Table versioning
Table encryption (10)
Long table, column, and index names with descriptions
Configurable table index page sizes and BLOB block sizes
Index key compression (11)
BLOB column compression
Text indexing
Customizable text filtering (12)
Customizable word generation
Customizable word filtering
CONTAINS operator for text search
TEXTSEARCH() function for text search
TEXTOCCURS() function for word occurrences
Text search on non-indexed columns
Disaster recovery
Online backup and restore
Table repair
Server
Runs as a Windows service or application
Multi-threaded
White and black lists by IP address for incoming connections
Connection timeouts
Configurable connection cleanup for orphaned connections
Remote Connections
Encrypted connections
Adjustable data compression
Pinging support to keep idle connections alive
Connection activity tracing
Administration
Remote server administration
Activity logging (13)
Text import and export
Scheduled server jobs
Utilities
Interactive utility for general database management
Interactive utility for migrating data from other formats (14)
Interactive utility for server administration (14)
 
Last edited by a moderator:

Raff

New member
Joined
Oct 28, 2008
Messages
4
Reaction score
4
1).ElevateDB поддерживает файлсерверный и клиентсерверный режим, а также embedded(ет когда движок БД находится в самом экзешнике..
Сейчас в моем приложении и EDB, Деффки, RZ и VCLSkin - и вся эта куча
на D7 дает екзе менее 10 МБ).

2).Вощще то не очень отличается.. Ну - правда - кроме ТОЛЬКО ТАБЛИЦ, поддерживает сущие пустяки - триггера, хранимки, джобы, роли, гранты ну и вякую другую мелочь... :))


3).У меня та, что с нами поделился наш высокомногоуважаемый блистательный дон ASM64D -2.02
...
Спасибо большое. Сегодня потратил день и более менее с ней разобрался. Действительно интересная вещь. На мой взгляд главное отличие - поддержка таких вещей, как хранимые процедуры (я очень к ним привык на MSSQLServer). Да и выглядит очень даже ничего. Поначалу маленько запутался с пользователями, паролями и каталогами, но вроде теперь (после чтения мануалов) стало понятно.
Согласен - очень достойная вещь.
Не скажу, что полностью заменяет AbsoluteDB, т.к. там вся база хранится в одном файле, который шифруется, легко переноситься.
В общем, есть на свете место и под ту и под другую СУБД.
 

y.victor

Member
Joined
Jul 19, 2004
Messages
57
Reaction score
14
Спасибо большое. Сегодня потратил день и более менее с ней разобрался. Действительно интересная вещь. На мой взгляд главное отличие - поддержка таких вещей, как хранимые процедуры (я очень к ним привык на MSSQLServer). Да и выглядит очень даже ничего. Поначалу маленько запутался с пользователями, паролями и каталогами, но вроде теперь (после чтения мануалов) стало понятно.
Согласен - очень достойная вещь.
Не скажу, что полностью заменяет AbsoluteDB, т.к. там вся база хранится в одном файле, который шифруется, легко переноситься.
В общем, есть на свете место и под ту и под другую СУБД.

Тут я вот с тобой не согласен.. EDB ищщо как шифруется...
А насчет переноса... Тебе есть разница - переносить 1 папку или 1 файл?
по моему - практицки одно и тоже..
но вот скорость EDB - она просто поражает..
причем при функционале на порядок превышающем функционал ABS.

Насчет путаницы.. Почитай edb2d7.pdf... Там по шагам разжевано как создавать приложения и базы втом или ином случае...

Ну и наконец... У DBISAM и EDB - общие родители... A DBISAM - это марка...
 

Raff

New member
Joined
Oct 28, 2008
Messages
4
Reaction score
4
Непонятно для чего в компонентах в проекте указывать конфигурационную директорию. Ну, вернее понятно, но непонятно как при этом распространять приложение - на конечном компе тоже должна быть эта директория? или как?
 
Status
Not open for further replies.
Top