![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с DBF и с повторяющимися данными [D6, DBF for Windows]
KidMan © (2002-12-19 22:21:00)Привет! Хочу попросить у вас совета. В данный момент я пишу тестовую маленькую прогу типа записной книжки где есть поля для ввода номера аси, мыла, веб-паги и так далеее.
Проблема в том что у какого то лица инфу о котором я заношу в БД может быть несколько ась, ящиков и т.д. Не хотелось бы создавать две БД и связывать их между собой по ключевому полю... Т.е. связать их реалиционно так чтобы во второй базе сохранялись дополнительные вси и т.д. и чтобы записи были связаны с основной БД по полю например "имя"... Я достаточно подробно описал ситуацию?
В дополнение скажу что работаю с DBF for Win локально и без создания алиаса БД. Пишу напрямую в свойстве Table1.TableName := "c:\dase\xxx.dbf"
Инфа будет высвечиваться в DBGRID.
Вопрос банален: правильную ли я выбрал тактику и какая есть альтернатива?
Заранее благодарю!
myor (2002-12-20 12:33:00) [1]
> Что же касается вашего замечания ЮЮ
замечание как раз правильное, хотя тебя, конечно, все поняли.
но ты должен понимать разницу межде БД и таблицей. для твоей проги нужна только одна бдс двумя-тремя (sniknik), а может и больше, таблицами. а вопрос об использовании нескольких бдпри написании простого блокнота- нонсенс.
Vint (2002-12-20 12:21:00) [2]Если в твоем блокноте только текст, он небольшого размера и ты не замарачиваешся со всякими сортировками, поиском и т.д. может прокатить IniFile. Скажем SectionValues это ФИО, а SectionsList.Values это тел., адрес и ...
Код будет минимальный, а работать будет все шустро!
Alexander Vasjuk (2002-12-20 11:39:00) [3]А я в таких случаях пользуюсь TClientDataSet.
Он может читать/писать в файл.
Причем, связаные таблицы хранятся тоже в 1 файле...
sniknik (2002-12-20 11:33:00) [4]сделай поиск типа "компоненты без BDE", выдаст кучу ссылок уверен. По некоторым причинам выбрал себе HALCYON (исходники, поддержка клиперных индексов).
брал отсюда
http://www.vodonosov.newmail.ru/develop/develop.htm
ЮЮ (2002-12-20 11:05:00) [5]Read, Write с типизированными файлами
TSringList.LoadFromFile, .SaveToFile и т.п.
KidMan (2002-12-20 10:59:00) [6]Сорри! Вы были правы на счет БДЕ я ошибся! Виноват! :(((
Подскажите тогда плиз альтернативный путь чтобы не использовать БДЕ... а то я представляю какого размера будет интсаляшка такой простой маленькой програмки!
Заранее благодарю!
sniknik (2002-12-20 10:27:00) [7]KidMan © (20.12.02 09:39)
> Сообщаю вам, что для того чтобы БД (по крайней мере ДБФ-файл) работала локально на машине достаточно не исполбзуя БДЕ, в свойстве так любимой вами таблицы указать локальный путь к файлу:
Table1.TableName := "c:\base\xxx.dbf";
и все проблемы решены...
заблуждение, может вам в дальнейшем дорого стоить (минимум программу переписать). Если уж используеш компоненты с вкладки BDE то мирись с тем что придется ее ставить на клиенте, независимо от того как путь к базе прописываеш.
Vint (2002-12-20 10:04:00) [8]>KidMan © (20.12.02 09:39)
Вот единственное... не хотелось бы мне использовать мемо поля... Расбухнет БД быстро...
И не надо их использовать! Во первых в Paradox от них только глюки, во вторых по ним медленный поиск, по моему 255 буквами можно описать в блокноте что угодно!
Что же касается вашего замечания ЮЮ
Тебе говорили про BDE, а не про Alias, без BDE ты не только не настроишь языковой драйвер, но даже не откроешь свою таблицу, поэтому подумай всетаки насчет текстового файла, для блокнота самое то!
Хотя если программу делаешь только для себя, то можно и под SQL сервер замочить :-)
KidMan (2002-12-20 09:39:00) [9]Спасибо всем за советы Мастера! Учту и постараюсь выбрать оптимальный вариант. Вот единственное... не хотелось бы мне использовать мемо поля... Расбухнет БД быстро...
ЮЮ
--
Что же касается вашего замечания ЮЮ, то замечу вместо того чтобы улыбаться с сарказмом, играть определениями (ведь старым программистам под ДОС наверно понятно, что разницы между понятием Таблицы и БД нет, ибо в во времена до объектно-ориентированного програмирования Таблицы теперешние назывались именно БД - физический файл) и давать неправильные советы, стоило бы немного сбись с себя спесь :)) Не обижайтесь ЮЮ, но вы очень грубо ошиблись, утверждая, что мне нужен будет алиас в БДЕ создавать для проги. Сообщаю вам, что для того чтобы БД (по крайней мере ДБФ-файл) работала локально на машине достаточно не исполбзуя БДЕ, в свойстве так любимой вами таблицы указать локальный путь к файлу:
Table1.TableName := "c:\base\xxx.dbf";
и все проблемы решены...
Спасибо еще раз всем и Удач!
vopros (2002-12-20 09:19:00) [10]Если хочешь все в одной таблице хранить используй поле , например Примечание, где храни кучу всяко инфы.
sniknik (2002-12-20 08:47:00) [11]лутще даже 3 таблицы, в главной инфа о человеке, его ID, а все что имеет неопределенное количество в отдельных таблицах связаным по ID. Пока у тебя это аси и ящики (ведь и им не обязательно быть одинаковым по количеству, значит разные таблици)
если захочеш отказатся от DBF, то иши нормальную замену (с поддержкой индексов, SQL если предполагаются запросы), но никак не текстовый файл. (мое мнение)
ЮЮ (2002-12-20 08:17:00) [12]>Я хочу использовать одну ДБ
Одну ТАБЛИЦУ, а не ДБ. Зачем тогда вообще использовать DBF? ведь для завпуска твоей маленькой проги надо ещё будет и BDE устанавливать, о чем ты даже наверное и не подозреваешь :-).
Используй тогда простой текстовый (или бинарный) файл
KidMan (2002-12-20 08:09:00) [13]Я хочу использовать одну ДБ... Но тогда как я понимаю у меня один выход - намеренно создать конкретное кол-во полей типа ICQ1, ICQ2 и т.д.
Хотелось бы этого избежать...
KSergey (2002-12-20 06:30:00) [14]Не понятно: Не хотелось бы создавать две БД и связывать их между собой по ключевому полю...но связать их реалиционно так чтобы во второй базе сохранялись дополнительные вси и т.д. и чтобы записи были связаны с основной БД по полю например "имя"...
Так все таки 2 таблицы или нет? Чего именно не хотелось бы делать?
В принципе, тактика для первой программы верна любая. Ну а когда она (прграмма) будет готова и будет нормально работать - сразу возникнет желание немного все изменить, которое выльется в полностью новую программу ;) Вот и все.