Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Синхронизация нескольких таблиц .dbf


Страницы:   1 2

ikondakov ©   (2004-03-22 11:07:00) 

Фишка такая, надо синхронизировать 2 (и более) таблиц из-за ограничения в 255 полей, но если в одну из таблиц ничего не записывается, то она как-то выпадает и при осуществлении навигации всё идёт вкривь и вкось. как бороться с этим???
синхронизация такая: при щелчке на кнопку выполняется
Table1.Insert;
Table2.Insert;
...
Вот.


Sergey13   (2004-03-23 17:23:00) [1]

2ikondakov   (23.03.04 17:15) [21]
Ну... прикупи еще. Не помешает. 8-)


Term   (2004-03-23 17:21:00) [2]

ну рас есть один ID то добавь во вторую базу тоже поле ID и по ним выбирай
купи еще книг


ikondakov   (2004-03-23 17:15:00) [3]

Да есть книжки, вот только не по базам данных, вернее всего немного там про БД. (ну обычные книги по программингу на дельфях!)


Sergey13   (2004-03-23 16:50:00) [4]

2ikondakov   (23.03.04 14:11) [19]
>Я пишу сам, просто база - результат исследования и лишние данные. (мусор)
Мусор - это когда есть много данных, но толку от них мало. 8-)

>Единственное что могу сделать, так это в обе таблици добавить поле ID(по умолчанию есть только в первой)
Скорее делай.

> которое обозначает номер записи!
Это не номер, а идентификатор (по крайней мере должен быть им!!!), однозначно идентифицирующийчто либо (в данном случае строку-запись). Одинаковый ID в разных таблицах будет у соответствующих друг другу записей.

ЗЫ: а книжку купи какую нить, почитай, полезно.


ikondakov   (2004-03-23 14:11:00) [5]

Я пишу сам, просто база - результат исследования и лишние данные. (мусор) Единственное что могу сделать, так это в обе таблици добавить поле ID(по умолчанию есть только в первой) которое обозначает номер записи!


roottim   (2004-03-23 12:43:00) [6]

ноги этого поста растут отсюда
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1079684954&n=1

я согласен со всеми высказываниями... но если необходимо..
то используй 2 табл дбф... движок BDE + TQuery + UpdateSQL, генерируй первичный ключ для всавки (например дата время в виде Double (обычный TDateTime и ф-я Now предполагаю данные по карточке вносит один человек.. так-что нормально) )
ну и применяй UpdateSql для всавку, удаление, редактирование 2-х связанных по ПК ключу


Term   (2004-03-23 12:32:00) [7]

а почему такое условие что нельзя менять структуру?
ты сам прогу пишеш? или доделываеш чтото?


ikondakov   (2004-03-23 11:48:00) [8]

2 [14] а немного поподробнее... если можно, просто никакой толковой ниги по базам и дельфи нет под рукой!


Алхимик   (2004-03-23 08:56:00) [9]

Есть подозрение, что автор не знаком с нормализацией.
Самая здравая мысль - поизучать её.


Сергей Суровцев   (2004-03-22 23:50:00) [10]

>ikondakov   (22.03.04 11:07)
Запрети добавление в сетке, делай его по своей кнопке одновременно в обеих таблицах. Причем Append, а потом Post. Запишется и пустая строка. Гарантированно.


Sergey13   (2004-03-22 13:51:00) [11]

2sniknik ©   (22.03.04 13:06) [12]
"Подгонять" не получится. Иначе левой руке бабушки будет соответствовать правая рука дедушки. Тут надо именно писать в обе таблицы одновременно (и гарантировано), пусть даже пустые записи. Но какие при этом траблы у автора возникают не понятно, поэтому и советы только теоретические. 8-)


sniknik   (2004-03-22 13:06:00) [12]

ну почемуже невыполнима? можно
только это еще более гиморно, чем с уникальным идентификатором, просто подгоняй колчество записей в "отстающей" таблице чтобы реально номера записей совпадали.
это идея, реализация за тобой.


Наталия   (2004-03-22 12:45:00) [13]

Тогда ответ: "Миссия невыполнима"...


ikondakov   (2004-03-22 12:11:00) [14]

Какой бы он ни был правильный переделывать структуру таблиц НЕЛЬЗЯ!


Плохиш   (2004-03-22 12:07:00) [15]

>ikondakov   (22.03.04 11:46) [6]

> 2 Соловьёв. Не мжет быть всё так гиморно

Вообще-то тебе предложили правильный вариант.


ikondakov   (2004-03-22 11:59:00) [16]

Да наступил, но как же тогда лечить???


Sergey13   (2004-03-22 11:55:00) [17]

2ikondakov   (22.03.04 11:46) [6]
>А почему это не правильно???
Ну ты же наступил уже на эти грабли.


ikondakov   (2004-03-22 11:46:00) [18]

Да надо обеспечить одинаковое количество записей.
А почему это не правильно???

2 Соловьёв. Не мжет быть всё так гиморно. А переделывать структуру я не могу, об этом я уже говорил!!!


Соловьев   (2004-03-22 11:42:00) [19]

Имхо, надо чуть переделать структуру БД:
1 таблица с 3-мя полями - уникальный номер записи, имя поля , значение.
При такой организации можно хранить хоть 355 тыс полей :)
Главное организовать потом редактирование такой таблицы, но это уже с помощью SQL - Table тут не поможет.


Sergey13   (2004-03-22 11:35:00) [20]

Если я что нибудь понял, то у тебя количество записей в обеих таблицах должно совпадать. Для синхронной навигации видимо применяется номер записи.
Правильно? Если да, то это неправильно!!! 8-)
Если изменить что либо и вообще влиять на это ты не можешь, то надо обеспечивать это правило одинакового количества.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо