Главная страница
    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.46 MB
Время: 0.005 c
1-88827
don_dampster
2002-06-14 10:33
2002.06.27
SysTray


7-89063
Sergn
2002-03-25 17:37
2002.06.27
Table of content CD( таблица содержания Компакт Диска)


1-88864
Luxer
2002-06-17 21:30
2002.06.27
Help me!


3-88705
Timur_2002
2002-06-03 12:06
2002.06.27
Вопрос по InterBase


1-88797
Niko.
2002-06-15 19:07
2002.06.27
Dll





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