Технический форум
Вернуться   Технический форум > Программирование > Библиотека > Программы и программирование


Ответ
 
Опции темы Опции просмотра
Старый 03.11.2010, 09:26   #21 (permalink)
VipeR
Имперская инквизиция
 
Аватар для VipeR
 
Регистрация: 14.02.2007
Сообщений: 6,097
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3046
По умолчанию

нет, bde не обязателен
VipeR вне форума   Ответить с цитированием
Старый 03.11.2010, 14:27   #22 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

А как тогда обойтись, что нужно скопировать?
MrSTEP вне форума   Ответить с цитированием
Старый 12.12.2013, 00:38   #23 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

Цитата:
Сообщение от VipeR Посмотреть сообщение
нет, bde не обязателен
Глупости. Как аббревиатура BDE расшифровывается, хотя бы, в курсе?
Без него ничего не заработает. Другое дело, что у грамотно написанного софта всегда есть инсталлятор. Большинство серьёзных сред разработки инсталляторов (вроде InstallShield) при компиляции инсталлера позволяют установкой одной галочки прикрутить к инсталлятору BDE.
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Старый 02.05.2014, 05:08   #24 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

Немного подниму тему.
Для создания не особо сложных баз данных порекомендую использовать такой компонент Delphi, как TClientDataSet. Бросаем компонент на форму, создаем таблицу, сохраняем ее или в формате .cds или в формате .xml.
Преимущества: небольшой размер, высокая скорость работы, нет необходимости устанавливать BDE; также нормально организуется и работает совместный доступ к базе (например, по сети). У меня есть несколько приложений, работающих с таблицами в формате .cds
Если у кого есть интерес, могу расписать более подробно создание и работу с такими таблицами
Debianer вне форума   Ответить с цитированием
Старый 02.05.2014, 09:47   #25 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Было бы интересно увидеть, пиши.
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 05.05.2014, 05:55   #26 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

Итак, базы данных с использованием компонента TClientDataSet.
После того, как мы определились с полями таблицы, создадим ее.
Создаем новый проект, на форму бросаем TClientDataSet из вкладки Data Access, нажимаем на компоненте правкой кнопкой мыши и выбираем пункт Fields Editor.
Опять щелкаем правой кнопкой мыши в появившемся редакторе полей, и выбираем пункт "New Field". Задаем параметры создаваемого поля: его имя (Name), выбираем тип поля (Type) и, при необходимости, размер поля.
После создания необходимых полей опять нажимаем на компоненте TClientDataSet правую кнопку мыши и выбираем пункт Create Dataset, а затем Save to binary MyBase file. Сохраняем таблицу под нужным именем. При необходимости создаем дополнительные таблицы таким же образом.
Теперь перейдем к использованию созданных таблиц. Первым делом в секцию uses разрабатываемого приложения обязательно дописываем MidasLib - это позволит использовать приложение безо всяких сторонних библиотек (в противном случаем нам пришлось бы распространять приложение с библиотекой Midas.dll).
Ну а далее бросаем на форму TDataSource, TClientDataSet, связываем их. В свойствах TClientDataSet указываем путь к созданной таблице (FileName), и устанавливаем свойство Active в True. Готово.
Работать с записями можно точно также, как при использовании компонента TTable; например, для отображения записей можно подключить TDBGrid. Я делал небольшой телефонный справочник для агентства недвижимости, ниже простейший пример по добавлению записи (в моем cлучае запись добавляется из файла Excel):
cds.Append;
cds.FieldByName('FIO').AsString:=String(Sheet.Cell s[i,1]);
cds.FieldByName('Phone').AsString:=Copy(s,1,Pos(', ',s)-1);
cds.Edit;
cds.Post;


Для поиска данных можно использовать процедуру Locate:
CDS.Locate('FIO;Address;Phone',VarArrayOf(['Васечкин','Ленинская','67-55-55']),[]);

В заключение хочу сказать о некоторых преимуществах данного метода создания и использования баз данных:
- очень компактный размер. В моем случае таблица с тремя полями и кол-вом записей 2775 весит 88 Кб.
- быстрая скорость работы, за счет того, что операции производятся в ОЗУ.
- нет необходимости таскать с приложением BDE.
Debianer вне форума   Ответить с цитированием
Старый 05.05.2014, 11:18   #27 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

В данном случае СУБД состоит из двух файлов - *.exe и файла самой таблицы? Так? Приложение видит таблицу только если они в одной папке?
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Старый 05.05.2014, 11:37   #28 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

В простейшем случае - да, больше ничего за собой тащить не надо. Таблицу можно положить куда угодно, и подключать ее динамически. Свойство Active ставим в False, потом указываем путь к таблице, делаем Open, потом свойство Active ставим в True.
Debianer вне форума   Ответить с цитированием
Старый 06.05.2014, 03:30   #29 (permalink)
Debianer
Member
 
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
По умолчанию

Да, маленькое дополнение: необязательно таскать ЕХЕ и таблицу. Я делал так: созданную таблицу потом пихал в файл .RES и линковал с ЕХЕ. При первом запуске делал проверку на наличие таблицы, и, если ее нет, то просто извлекал пустую таблицу из ЕХЕ, клал рядом и потом уже активировал ClientDataSet. Пустые таблички занимают ну до смешного ничтожно мало места, так что оно того стОит
Debianer вне форума   Ответить с цитированием
Старый 06.05.2014, 10:34   #30 (permalink)
vasilych
Member
 
Аватар для vasilych
 
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
По умолчанию

Цитата:
Сообщение от Debianer Посмотреть сообщение
Я делал так: созданную таблицу потом пихал в файл .RES и линковал с ЕХЕ
А зачем так сложно? С тем же успехом при старте exe можно проверять наличие таблицы, и в случае её отсутствия создавать со всеми необходимыми полями и свойствами.
__________________
Одна голова - хорошо, а три - сквозной канал!©
vasilych вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
delphi, бд delphi

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:22.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.