![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
CLientDataSet+SELECT 2 таблиц [D7, SAPDB]
LinOS © (2003-10-02 11:18:00)
Имеется БД. В ней таблицы A и B. SQLDataSet - Provider - ClientDataSet - DataSource- DBGrid.
таблицы
А B
-------- ----------
|id | |id |
|bid | |name |
|pid | |--------|
|amount|
--------
В ClientDataSet пишу:
ClientDataSet.CommandText="SELECT A.id, B.name, A.amount FROM A,B WHERE A.bid = B.id AND pid = 2";
ClientDataSet.Open
ВСе открывается показывает. Теперь хочу делать изменения.
Вставить name c id в DBGrid
И при ClientDataSet.ApplyUpdates(-1); Что бы записывалась B.id в A.bid.
Возможно такое.
Посоветуйте, как грамотнее осуществить.
LinOS (2003-10-02 12:16:00) [1]
Все Николай, спасибо огромное.
Главное навести на правильный путь.
LinOS (2003-10-02 11:57:00) [2]
В подчиненную таблицу ничего не вставляю - только беру информацию для вставки (id) и отображения (name).
Спасибо. А небольшой привер можно для полного понимания. А именно как сформировать SQL в Provider.BeforeUpdateRecord если одна строка добавлена, одна изменена, другая удалена?
Nikolay M. (2003-10-02 11:51:00) [3]
> С id все нормально - autoincrement.
Это как раз НЕнормально (если автоинкремент происходит на уровне БД).
Каким образом ты будешь узнавать его значение из главной таблицы, чтобы потом вставлять его в подчиненную?
http://rsdn.ru/article/db/midas_migration.xml#XSLTSECTION124143120120
LinOS (2003-10-02 11:45:00) [4]
С id все нормально - autoincrement.
Nikolay M. (2003-10-02 11:34:00) [5]Provider.ResolveToDataSet := True & Provider.BeforeUpdateRecord?
Попутно вопрос - как получается ID?