Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.06.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
7-89060
sniknik
2002-04-01 10:49
2002.06.27
Как получить путь Dll


4-89065
Chir
2002-04-27 11:50
2002.06.27
Завершение работы Windows


6-88979
SeyCom
2002-04-06 20:03
2002.06.27
Где можно найти пример работы с WinPCap на Delphi?


1-88929
Korona
2002-06-14 20:26
2002.06.27
TForm1.Create(Screen)


7-89056
michael_B
2002-03-31 20:17
2002.06.27
Как спрятать(скрыть) все ярлыки на рабочем столе?





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