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

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

Использование коллекции Properties для ADODataSet [D7, MSSQL]


Patrick ©   (2004-04-06 10:46:00) 

Объясните, пожалуйста, такой момент, работаю с многотабличным запросом, но производить изменения надо только в одной таблице,
нашел, что устанавливать надо Properties, настроил в событии OnWillChangeRecord на всяк случай,
 qMarks.Properties['Unique Table'].Value := 'Marks';
 qMarks.Properties['Update Criteria'].Value := adCriteriaKey;
 qMarks.Properties['Update Resync'].Value:= adResyncAll;
для сброса изменений на сервер, пользуюсь BatchUpdate
при удалении, вроде всё как и должно быть, удаляется строка (строки) только из одной таблицы, а вот при добавлении записей система, видимо, пытается добалять строки во вспомогательные (справочные таблицы), чего естественно делать не надо, может кто подскажет, где можно почитать про эти свойства по-подробнее, или что-либо по данной проблеме?


KSergey   (2004-04-06 13:22:00) [1]

а) либо поискать компоненты, которые работают через ADO, но имеют UpdateSQL аля стандартные

б) либо использовать "оторванные" ADO'шные DataSet (после получения данных- отключаемся от Connection'а) - тогда на BeforeUpdate можно прописать свою логику. Хотя там тоже есть "моменты"


Patrick   (2004-04-06 13:16:00) [2]

В примерах всё как бы представлено для Access'а, но если я пользую MS SQL и хранимые процедуры для представления данных и их изменения, то что же в свойстве 'Resync Command' нужно указывать фрагмент хранимой процедуры, это как то неинтересно переносить серверную часть на клиентскую, может всё-таки есть какое-то решение чтобы можно было пользоваться UpdateBatch и было бы всё нормально? А то правда в ADO 'горе от ума'.


KSergey   (2004-04-06 12:59:00) [3]

Да кривовато это все, по-моему.. Вообще вся эта реализация "ума" в ADO мешает, либо я не умею пользоваться...
Только эксперименты могут дать ответ...


serge35   (2004-04-06 11:07:00) [4]

Сначала надо сделать запись в основной таблице,
затем получить ID этой записи, затем последовательно сделать добавление во все вспомогательные таблицы с ID новой записи в основной таблице.


Наверх

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