![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование коллекции 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 новой записи в основной таблице.