Главная страница
    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
8-1075969776
nike
2004-02-05 11:29
2004.05.09
winamp (in_mp3.dll, out_wave.dll) + delphi


1-1082379585
ASvencim
2004-04-19 16:59
2004.05.09
Конвертация *.bmp в *.jpeg


6-1079600219
Ozone
2004-03-18 11:56
2004.05.09
CreateIpForwardEntry


1-1082729025
Ivolg
2004-04-23 18:03
2004.05.09
Сменить обои


6-1079081830
Jaxtor
2004-03-12 11:57
2004.05.09
Отсылка сообщения через Outlook 2000 (COM)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский