нет, bde не обязателен
|
А как тогда обойтись, что нужно скопировать?
|
Цитата:
Без него ничего не заработает. Другое дело, что у грамотно написанного софта всегда есть инсталлятор. Большинство серьёзных сред разработки инсталляторов (вроде InstallShield) при компиляции инсталлера позволяют установкой одной галочки прикрутить к инсталлятору BDE. |
Немного подниму тему.
Для создания не особо сложных баз данных порекомендую использовать такой компонент Delphi, как TClientDataSet. Бросаем компонент на форму, создаем таблицу, сохраняем ее или в формате .cds или в формате .xml. Преимущества: небольшой размер, высокая скорость работы, нет необходимости устанавливать BDE; также нормально организуется и работает совместный доступ к базе (например, по сети). У меня есть несколько приложений, работающих с таблицами в формате .cds Если у кого есть интерес, могу расписать более подробно создание и работу с такими таблицами |
Было бы интересно увидеть, пиши.
|
Итак, базы данных с использованием компонента 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. |
В данном случае СУБД состоит из двух файлов - *.exe и файла самой таблицы? Так? Приложение видит таблицу только если они в одной папке?
|
В простейшем случае - да, больше ничего за собой тащить не надо. Таблицу можно положить куда угодно, и подключать ее динамически. Свойство Active ставим в False, потом указываем путь к таблице, делаем Open, потом свойство Active ставим в True.
|
Да, маленькое дополнение: необязательно таскать ЕХЕ и таблицу. Я делал так: созданную таблицу потом пихал в файл .RES и линковал с ЕХЕ. При первом запуске делал проверку на наличие таблицы, и, если ее нет, то просто извлекал пустую таблицу из ЕХЕ, клал рядом и потом уже активировал ClientDataSet. Пустые таблички занимают ну до смешного ничтожно мало места, так что оно того стОит
|
Цитата:
|
Часовой пояс GMT +4, время: 08:44. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.