Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Наталия Косичкина Знаток (303), закрыт 14 лет назад
Требуется в Delphi 7 работать с таблицами формата dbf - чрез запросы SQL
Как лучше всего реализовать, дабы обеспечить максимальную переносимость на другой компьютер ( просто скопировав папку с программой)
BDE требует создание алиасов же?
ADO требует наличия драйверов в [Панель управления]->[Администрирование]->Источника данных (ODBC)-> на закладке [пользовательский ODBC] или же на системной
т.е. там еще нужно будет прописать в реестре (но под разные версии винды может понадобится или 1 или 2 драйвера, может быть еще както)
Возможно перекодировка таблиц в другой формат
В общем - требуется открывать таблицы максисум добавив dll в папку с программой (или что-нибудь аналогично) но без установки спец.по
Лучший ответ
Cheery Высший разум (200686) 14 лет назад
Пользуйтесь SQLite
http://sqlite4delphi.sourceforge.net/
Наталия КосичкинаЗнаток (303) 14 лет назад
Таблицы придется перекодировать или можно оставить в данном формате?
И есть где-либо мануал? Если можно)
Cheery Высший разум (200686) Там же и примеры в комплекте должны быть, судя по информации со страницы Придется, скорее всего, перекодировать - движок то использует свой формат. Плюс.. это же, скорее всего, не единственная его реализация ru.wikipedia.org/wiki/SQLite
Остальные ответы
Europanda Гуру (3873) 14 лет назад
Самый оптимальный вариант в этом случае использование mdb и ConnectionString к локальной папке больше никаких драйверов и по не надо, всегда для лбд его использую если требуется работа на любом компьютере без заморочек с установкой.
Наталия КосичкинаЗнаток (303) 14 лет назад
mdb - Access?

А можете привести пример ConnectionString к локальной папке - ну просто скопировать
Наталия Косичкина Знаток (303) подключение чрез ADO?
EuropandaГуру (3873) 14 лет назад
Да Access. Кидаем на форму со странички ADO компоненту ADOConnection чтобы не замарачиватся и к каждой табличке ConnectionString не писать, нажимаем в Object Inspector на свойстве ConnectionString далее Build и строка будет создана автоматически Ну а дальше через GetDir получаем путь к текущей папке лепим переменнную свою и присваиваем ADOConnection1.ConnetcionString := MyConnection; Думаю разберетесь. Ну а дальше в ADOTable или ADOQuery проставляем свойство Connection в ADOConnection1 ну или как там захочется его вам обозвать.
EuropandaГуру (3873) 14 лет назад
А драйвер укажите Microsoft Jet 4.0 OLE DB Provaider сним везде будет работать или можете поэкспериментировать с другими драйверами.
Наталия Косичкина Знаток (303) А тип mdb - в Accesse - 2000 или 2002-2003 - или без разницы?
EuropandaГуру (3873) 14 лет назад
Ну если не планируете запускать под вин 95-98 то особой разницы нет, я предпочитаю 2000 для лучшей переносимости на разные машины.
Наталия Косичкина Знаток (303) Благодарю, а не подскажете из-за чего может так быть: Когда чрез ADO - dbf в DBgrid - отображается таблица - ширина столбцов нормальная.... сейчас при проверке mdb обнаружилось что слишком широкая величина почемуто....может ли это быть колво символов в ограничении текстового типа (когда таблицу в конструкторе создаешь) и можно сделать что-то типа Auto-size?
EuropandaГуру (3873) 14 лет назад
А MDAC как минимум 2.5 сейчас на любой машине есть, так что ставить дополнительно ничего не надо, Microsoft движок доступа к своим БД везде воткнули.
Наталия Косичкина Знаток (303) И на машине с 2000 виндой без интернета?
EuropandaГуру (3873) 14 лет назад
Автосайза нет, только вручную при разработке выставить ширину колонок, или двойной щелчок на DBGrid в EditingColumns правой кнопкой Add All Fields и потом или в коде или в объект инспекторе ставим нужный Width или ищем стороннюю компоненту типа библиотеки Rx в RxDBGrid вроде есть AutoSize, Rx старая библиотека, можно найти и поновее гриды с кучей дополнительных возможностей.
Bono Мыслитель (6640) 14 лет назад
Если без установки спец ПО, то ни в коем случае не используйте BDE. Он не обязательно требует создавать алиасы, но его установка обязательна. Кстати после его установки начинаются косяки с кодировками. Очень тупая и устаревшая технология. Компоненты ADO, как правило, в любой системе присутствуют (начиная с Win 2K SP4), поэтому его используйте. ODBC, при этом, совсем не обязательно настраивать. Подключайтесь через Jet-провайдера с указанием расширения, что DBF - тогда и настравать ODBC не надо. Пример: ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\bb.dbf;Extended Properties=dBASE IV;" Можно конечно и через ODBC-провайдера, но только правильно нужно создать строку подключения (без создания ссылок через панель управления) .
А вообще, честно говоря, это все давно устаревшие технолгии. Сейчас есть и более удобные средства коммуникации, облегчающие настройку клиентских приложений в плане доступа к данным. WCF, например, да только в этом Delphi 7 и даже более новых версиях она до сих пор не доступна.
Алексей Крюков Мастер (2430) 14 лет назад
delphi+FibPlus+FireBird+IBExpress рулят (имхо) .
DBF усталрело как испражнения мамонта на неандертальской тропе.
BonoМыслитель (6640) 14 лет назад
Никто ж не спорит. Только инертность некоторых гос-контор (например, ФОМС, налоговая и пр.) все еще вынуждает эту хрень использовать.
Похожие вопросы