Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как добать базу данных в EXE файл [D6, Win2k]


-Evgeney - ©   (2004-03-05 08:15:00) 

Тоесть чтобы после компиляции база данных бала в exe-ке огромное спасибо тем кто откликнится.


Digitman   (2004-03-05 12:41:00) [1]


> Есть ли готовый компонент для отображения таблицы, хранящейся
> в ресурсах файла?


да по колено, где она хранится !

ресурс PE-модуля - всего лишь своего рода контейнер

в ран-тайм птвоим приложением выделяется память и из контейнера этого туда считываются данные, хранимые там

в каком формате хранятся данные в этом (или любом ином) контейнере - тебе решать

ну пусть это, например, будут данные в формате, генерируемом компонентом TClientDataSet
тогда в ран-тайм ты создаешь экз-р класса TResourceStream, считываешь в этот поток данные из ресурса
далее создаешь экз-р TClientDataSet и вызываешь его метод LoadFromStream

все ! НД готов к работе ! Его подготовил ClientDataSet ..

а далее все как обычно и до безобразия просто : создаешь экз-ры TDatasource и TDBGrid, настраиваешь цепочку TClientDataSet + TDatasource + TDBGrid, как если бы вместо TClientDataSet был лбой другой компонент, например, TTable ... и все ! НД у тебя перед носом в гриде ! делай с ними что хошь ..


Игорь   (2004-03-05 12:26:00) [2]

Мне тоже нужна такая фигня. Я делаю справочник только для просмотра. И нужно, чтобы был только один файл - EXE.
Есть ли готовый компонент для отображения таблицы, хранящейся в ресурсах файла?
Я нашел такой в RXLib - RxMemoryData. Но данные в него надо закачивать самому, это занимает много времени, когда таблица большая. Вот если бы компонент сам сохранял в своих ресурсах таблицу, как, например, TImage сохраняет в ресурсах картинку.
Если кто что подобное видел...


Anatoly Podgoretsky   (2004-03-05 10:15:00) [3]

У меня тоже сомнения насчет понятий :-)


Digitman   (2004-03-05 10:02:00) [4]


> Anatoly Podgoretsky ©   (05.03.04 09:51) [12]


> Основную сложность вызовет не ресурс, а разработка TResouceDataset


а что там сложного ?
если опираться на логику цельного считывания ресурса (хранящего полные БД-данные) в блок памяти, то разработка сабжа сводится к его наследованию от какого-нибудь TMemoryDataSet или TClientdataSet... при открытии НД, ассоциированного с сабжем, сначала ресурс считывается в блок памяти достаточного размера, а далее работа с блоком уже реализована в методах готового класса-предка

здесь другой вопрос - что подразумевается автором под базой данных ... ведь в общем случае БД - это не только некая единственная табличка, на основании данных в которой требуется сформировать в ран-тайм некий НД ..


Anatoly Podgoretsky   (2004-03-05 09:51:00) [5]

Модификация ресурса не является сложной задачей. Но обычно тот кто может это реализовать не будет это делать из за отсутсвия реальной необходимости. Основную сложность вызовет не ресурс, а разработка TResouceDataset

В свое время ФоксПро 2.6 имел такую штатную возможность, как RO таблица в ресурсе и полноценная работа с ним, возможно более позднии версии сохранили эту возможность. Так что если есть такая необходимость то можно подумать о готовом инструменте с реализованной возможностью, то есть Visual FoxPro
Но мне кажется что реально такой необходимости по всей видимости нет.


Digitman   (2004-03-05 09:28:00) [6]


> Anatoly Podgoretsky ©   (05.03.04 09:12) [8]
> Для указанной платформы решается.


я не об этом ... понятно, что соотв.ф-ции для модификации ресурсов в ран-тайм имеются

другой вопрос - нетривиальная организация логики обновления ресурса в условиях когда ресурс относится именно к РЕ-модулю (т.е. в дан.случае с ехе-файлом), ассоциированному с тек.процессом ... если не задействовать разного рода недок.трюки, то поизвращаться придется крепко ... стоит ли задумка того ? ... вот в чем вопрос ..


Anatoly Podgoretsky   (2004-03-05 09:16:00) [7]

В сторону наследника от TDataset


Кщд   (2004-03-05 09:15:00) [8]

Anatoly Podgoretsky ©   (05.03.04 09:12) [8]
в какую сторону думать?


Anatoly Podgoretsky   (2004-03-05 09:12:00) [9]

Для указанной платформы решается.


Digitman   (2004-03-05 09:09:00) [10]


> -Evgeney


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

а если требуется модификация ? как намерен обновленную базу записывать назад в ресурс ? в ран-тайм ?


-Evgeney -   (2004-03-05 08:45:00) [11]

Понятно всем спасибо.


Hooch   (2004-03-05 08:42:00) [12]

какие люди ?


Anatoly Podgoretsky   (2004-03-05 08:42:00) [13]

rc файл и поделючить к проекту.


-Evgeney -   (2004-03-05 08:35:00) [14]

Как то же люди впихивать базу в EXE?


-Evgeney -   (2004-03-05 08:20:00) [15]

как это можно сделать через ресурсы, ссылочка есть?


Рамиль   (2004-03-05 08:19:00) [16]

БД в обычном понимании ну ни как не получится. Можно только ресурсы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо