Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.18;
Скачать: CL | DM;

Вниз

Синхронизация нескольких таблиц .dbf   Найти похожие ветки 

 
ikondakov   (2004-03-22 11:07) [0]

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


 
Sergey13 ©   (2004-03-22 11:11) [1]

2ikondakov   (22.03.04 11:07)  
>надо синхронизировать 2 (и более) таблиц из-за ограничения в 255 полей
Только ради бога, структуру не надо здесь показывать полностью. 8-)


 
Ильш ©   (2004-03-22 11:12) [2]

блин, а как ты еще думал...
записываай хотя бы чего-нить... хотя бы ID уникальный или еще чего...
а вообще то у тебя не вопрос, а какой то сумбур - нифига не понятно... объясни по русски!


 
ikondakov   (2004-03-22 11:21) [3]

Обьясняю по русски. Есть 2 таблицы. Надо записывать в них данные. Причём данные не обязательно что-то содержат. может быть и пусто. Записывать надо сразу в 2 таблицы, потому что по сути, это одна, но порезанная, и если в одну вносить данные, а в другую не, то в итоге, при склейке данные поплывут, что просто катастрофично. Когда я вношу новую запись и изменяю (вношу значения) хотябы в одно поле каждой таблицы, то всё ровно, но если в одной из таблиц ничего не внесено, то эта запись как бы пропадает и когда выполняю навигацию, то синхронность сползает. Нельзя изменять структуру таблицы и автоматически вносить поля, может через вычисляемые???


 
Sergey13 ©   (2004-03-22 11:35) [4]

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


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

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


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

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

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


 
Sergey13 ©   (2004-03-22 11:55) [7]

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


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

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


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

>ikondakov   (22.03.04 11:46) [6]

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


 
Term ©   (2004-03-23 12:32) [17]

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


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

ноги этого поста растут отсюда
http://delphimaster.net/view/3-1079684954/

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


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

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


 
Sergey13 ©   (2004-03-23 16:50) [20]

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

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

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

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


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

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


 
Term ©   (2004-03-23 17:21) [22]

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


 
Sergey13 ©   (2004-03-23 17:23) [23]

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.18;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.026 c
11-1062401435
Igit
2003-09-01 11:30
2004.04.18
как прочитать KERNEL CPUUsage


7-1076490451
Leech
2004-02-11 12:07
2004.04.18
Размер диска


14-1079020337
WebErr
2004-03-11 18:52
2004.04.18
2D - forever


14-1080293236
Dmitriy O.
2004-03-26 12:27
2004.04.18
О методах шифрованного общения через иннет.


7-1076228238
Ермак
2004-02-08 11:17
2004.04.18
Взаимодействие с сервисом