Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

ClientDataSet - Вставка порции данных   Найти похожие ветки 

 
alex123   (2004-04-15 13:04) [0]

Добрый день Мастера!
С одного из филиалов (нет связи) приносят таблицу с новыми документами. Она копируется в каталог IN лежащий рядом.
Один бухгалтер рещает их подлить в основную таблицу.
Используются файл-сервер ClientDataSet1 -> DataSetProvider1 -> ADSQuery1 (Advantage TDataSet 6.2).
Как лучше поступить?
1) Цикл по табличке, сравнение и вставка или правка в зависимости от того есть ли такая запись.
2) А нельзя ли так. Скажем в ClientDataSet1.Delta забрасываю данные из пришедшей таблички (как это лучше сделать?) и применить ClientDataSet1.ApplyUpdates()?
Но записи с совпадающими ключами я понимаю будут вообще проброшены а нужно сравнить измения и исправить данные в основной таблице если есть отличия.
Можно ли так или я выдумываю черт знает что на свою голову?
Спасибо.


 
alex123   (2004-04-15 13:04) [0]

Добрый день Мастера!
С одного из филиалов (нет связи) приносят таблицу с новыми документами. Она копируется в каталог IN лежащий рядом.
Один бухгалтер рещает их подлить в основную таблицу.
Используются файл-сервер ClientDataSet1 -> DataSetProvider1 -> ADSQuery1 (Advantage TDataSet 6.2).
Как лучше поступить?
1) Цикл по табличке, сравнение и вставка или правка в зависимости от того есть ли такая запись.
2) А нельзя ли так. Скажем в ClientDataSet1.Delta забрасываю данные из пришедшей таблички (как это лучше сделать?) и применить ClientDataSet1.ApplyUpdates()?
Но записи с совпадающими ключами я понимаю будут вообще проброшены а нужно сравнить измения и исправить данные в основной таблице если есть отличия.
Можно ли так или я выдумываю черт знает что на свою голову?
Спасибо.


 
serge35   (2004-04-15 13:26) [1]

Связь с удаленными базами - это всегда головная боль.
Открываешь новую таблицу, запускаешь по ней цикл, перед добавлением записи ищешь запись в основной базе, если такая есть, то переходишь на следующую запись.Если записи нет, то добавляешь ее в базу.
А что делать с одинаковыми записями - это надо решать с бухгалтером.


 
serge35   (2004-04-15 13:26) [1]

Связь с удаленными базами - это всегда головная боль.
Открываешь новую таблицу, запускаешь по ней цикл, перед добавлением записи ищешь запись в основной базе, если такая есть, то переходишь на следующую запись.Если записи нет, то добавляешь ее в базу.
А что делать с одинаковыми записями - это надо решать с бухгалтером.


 
alex123   (2004-04-15 13:40) [2]

А где лучше производить обновление, подливать в клиент ClientDataSet и затем ApplyUpdates или же лучще на сервере сразу в основную таблицу а затем на клиенте ClientDataSet.Refresh?


 
alex123   (2004-04-15 13:40) [2]

А где лучше производить обновление, подливать в клиент ClientDataSet и затем ApplyUpdates или же лучще на сервере сразу в основную таблицу а затем на клиенте ClientDataSet.Refresh?


 
serge35   (2004-04-15 14:10) [3]

Если надо добавлять записи в таблицу, то лучше всего использовать append -- post для основной таблицы.


 
serge35   (2004-04-15 14:10) [3]

Если надо добавлять записи в таблицу, то лучше всего использовать append -- post для основной таблицы.


 
Polevi ©   (2004-04-15 14:33) [4]

cdsMain.AppendData(cdsAdd.Data,false)


 
Polevi ©   (2004-04-15 14:33) [4]

cdsMain.AppendData(cdsAdd.Data,false)



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

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.034 c
1-1082381323
Феликс М.
2004-04-19 17:28
2004.05.09
Печать как из Ворда


1-1082618274
Zn
2004-04-22 11:17
2004.05.09
Какое событие использовать?


14-1082048518
RealRascal
2004-04-15 21:01
2004.05.09
Экономия траффика


3-1081924056
ГАГН
2004-04-14 10:27
2004.05.09
Проверка


14-1082013546
McSimm
2004-04-15 11:19
2004.05.09
Я приношу извинения всем посетителям сайта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский