Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.27;
Скачать: CL | DM;

Вниз

Изменения в связанных таблицах   Найти похожие ветки 

 
Abu   (2002-06-04 10:41) [0]

Есть ADODataSet1 c CommandText, н-р,
CommandText="SELECT A.BData Data, B.SName Nam FROM Basa1 A FULL JOIN Basa2 B ON A.ID_B2=B.ID"

Теперь если надо поменять значение в поле "Nam" DataSet-a - в базе меняется не A.ID_B2, а B.SName - поле справочника.
Если поменять значение поля A.ID_B2 через ADOCommand, то как обновить данные в DataSet-e? Ведь присваивание ADODataSet1.FieldByName("Nam").Value="..."
опять пытается изменить значение в справочнике.


 
Abu   (2002-06-04 12:09) [1]

Ребят, что все так безнадежно? Или не понятно?


 
Johnmen ©   (2002-06-04 12:21) [2]

Не очень понятно....
Какие компоненты (Data-Aware) используются ?


 
Abu   (2002-06-04 12:55) [3]

Попробую сначала. Есть таблицы:
Base2 - (справочник)
ID SName
1 что-то1
2 что-то2
3 что-то3

и Base1 (использующая его)
BData ID_B2
01.01.01 1
02.01.01 3
05.05.02 1

В ADODataSet1 выбираются данные из Base1, но вместо ID_B2 подставляются значения SName из Base2:
ADODataSet1.CommandText="SELECT A.BData Data, B.SName Nam FROM Basa1 A FULL JOIN Basa2 B ON A.ID_B2=B.ID" (1)

Теперь что делать, если хочу изменить значение поля ID_B2 в Base1. Если меняешь соответствующее значение в ADODataSet1 (хоть программно, хоть вручную) - Delphi пытается поменять не ID_B2 в Base1, а SName в Base2. Если поменять значение в БД через запрос, с пом.ADOCommand н-р, то как обновить именно это значение в ADODadaSet1, или обязательно снова повторять выполнение запроса (1)?

А может я, вообще, неправильно делаю?



 
Johnmen ©   (2002-06-04 13:02) [4]

>>>Если меняешь соответствующее значение в ADODataSet1 (хоть программно,...

А как меняешь то ?...


 
wicked ©   (2002-06-04 13:13) [5]

2 Abu
скорей всего, неправильно... ;) подвязывай справочник не через full join, а средствами dataset, то есть через lookup-поля... с ними-то, надеюсь, умеешь работать?...


 
Abu   (2002-06-04 13:14) [6]

ADODataSet1.FieldByName("Nam").Value :=ComboBoxK.Text;



 
Johnmen ©   (2002-06-04 13:27) [7]

да, похоже тебе надо lookup-поля, см.wicked © (04.06.02 13:13)


 
Abu   (2002-06-04 14:04) [8]

Спасибо.

>wicked ©
уже умею :)



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

Текущий архив: 2002.06.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-88799
dimonf
2002-06-16 18:11
2002.06.27
Подскажите, где можно скачать компонент Async Pro v. 3.0 и выше?


14-89028
fliz
2002-05-24 17:23
2002.06.27
НОВЫЕ хохмы про программистов


14-89021
keymaster
2002-05-03 20:51
2002.06.27
Форум по VCL


1-88942
Tzota
2002-06-15 16:31
2002.06.27
Как создать что-то вроде своего диалогового окна?


1-88867
Мефодий
2002-06-13 20:12
2002.06.27
Мастера ! Где же вы ? Помогите же !!!!!