12.12.2013, 00:38 | #23 (permalink) |
Member
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
|
Глупости. Как аббревиатура BDE расшифровывается, хотя бы, в курсе?
Без него ничего не заработает. Другое дело, что у грамотно написанного софта всегда есть инсталлятор. Большинство серьёзных сред разработки инсталляторов (вроде InstallShield) при компиляции инсталлера позволяют установкой одной галочки прикрутить к инсталлятору BDE.
__________________
Одна голова - хорошо, а три - сквозной канал!© |
02.05.2014, 05:08 | #24 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Немного подниму тему.
Для создания не особо сложных баз данных порекомендую использовать такой компонент Delphi, как TClientDataSet. Бросаем компонент на форму, создаем таблицу, сохраняем ее или в формате .cds или в формате .xml. Преимущества: небольшой размер, высокая скорость работы, нет необходимости устанавливать BDE; также нормально организуется и работает совместный доступ к базе (например, по сети). У меня есть несколько приложений, работающих с таблицами в формате .cds Если у кого есть интерес, могу расписать более подробно создание и работу с такими таблицами |
02.05.2014, 09:47 | #25 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Было бы интересно увидеть, пиши.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
05.05.2014, 05:55 | #26 (permalink) |
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. |
05.05.2014, 11:18 | #27 (permalink) |
Member
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
|
В данном случае СУБД состоит из двух файлов - *.exe и файла самой таблицы? Так? Приложение видит таблицу только если они в одной папке?
__________________
Одна голова - хорошо, а три - сквозной канал!© |
05.05.2014, 11:37 | #28 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
В простейшем случае - да, больше ничего за собой тащить не надо. Таблицу можно положить куда угодно, и подключать ее динамически. Свойство Active ставим в False, потом указываем путь к таблице, делаем Open, потом свойство Active ставим в True.
|
06.05.2014, 03:30 | #29 (permalink) |
Member
Регистрация: 07.08.2012
Адрес: Находка, Приморский край
Сообщений: 336
Сказал(а) спасибо: 14
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1671
|
Да, маленькое дополнение: необязательно таскать ЕХЕ и таблицу. Я делал так: созданную таблицу потом пихал в файл .RES и линковал с ЕХЕ. При первом запуске делал проверку на наличие таблицы, и, если ее нет, то просто извлекал пустую таблицу из ЕХЕ, клал рядом и потом уже активировал ClientDataSet. Пустые таблички занимают ну до смешного ничтожно мало места, так что оно того стОит
|
06.05.2014, 10:34 | #30 (permalink) |
Member
Регистрация: 17.01.2012
Адрес: Краснодар
Сообщений: 2,713
Записей в дневнике: 5
Сказал(а) спасибо: 30
Поблагодарили 254 раз(а) в 36 сообщениях
Репутация: 59322
|
А зачем так сложно? С тем же успехом при старте exe можно проверять наличие таблицы, и в случае её отсутствия создавать со всеми необходимыми полями и свойствами.
__________________
Одна голова - хорошо, а три - сквозной канал!© |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
delphi, бд delphi |
|
|