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

Вниз

редактирование результатов join-запроса (ADO, MS SQL)   Найти похожие ветки 

 
nikkie   (2003-02-05 00:00) [0]

Есть основная таблица (T) + справочник (D). В справочнике пара полей - CODE + NAME. В основной таблице есть ссылка на справочник (CODE). Данные отбираются join-запросом и показываются в DBGrid.

select T.*, D.NAME from T left outer join D on T.CODE = D.CODE

Программа добавляет новую запись с помощью Insert + Post. Пользователь заполняет поля T.*, в том числе T.CODE. Соответствующий NAME я подтягиваю. Хотелось бы отобразить NAME для новой записи в гриде. Однако, изменение поля NAME в dataset приводит к изменению поля в справочнике D, что нежелательно.

Через BDE все вероятно решилось бы с помощью TUpdateSQL. Что можно сделать через ADO?


 
sniknik   (2003-02-05 01:12) [1]

ADOCommand


 
Snake   (2003-02-05 04:31) [2]

На Королевстве есть такая фича, как ваще работать с ADO и с объединениями в том числе, вот:
http://www.delphikingdom.com/helloworld/ado02.htm


 
stone   (2003-02-05 09:54) [3]

Если уж ты вносишь изменения напрямую, то лучше выбирать только Т.* , а D.NAME подставить как Lookup поле


 
nikkie   (2003-02-05 18:54) [4]

2 sniknik
Будьте добры объяснить, как использование ADOCommand может здесь помочь.

2 Snake
Спасибо огромное, эта и следующая (ado03.htm) статьи дали вариант решения проблемы. Выставление св-ва Update Resync, как написано в статье не помогает - видимо здесь разница между Access и MS SQL. Помогает только одновременное выставление всех трех св-в Update Resync, Unique Table и Resync Command.

Кстати, только что пришло в голову - как Resync Command будет работать если у меня в primary key более одного поля? Надо проверить, скорее всего работать не будет...

2 stone
Lookup мне кажется не удачным решением. Что делать если справочник не маленький? Перетаскивать его полностью на клиента и искать в нем на клиенте? Для каждой записи в датасете запускать запрос на сервер?

>Если уж ты вносишь изменения напрямую...
Необязательно. Я готов и руками написать insert, update, delete. Я только хочу видеть изменения сразу в dataset (refresh и close/open не предлагать).

Если у кого-нибудь есть еще идеи реализации редактирования данных - напишите.


 
sniknik   (2003-02-05 19:00) [5]

TUpdateSQL нет можно только эмулировать через ADOCommand - insert, update, delete


 
nikkie   (2003-02-05 19:34) [6]

2 sniknik
Так как эмулировать-то? Я могу сделать insert, только это никак не отобразится на датасете.


 
sniknik   (2003-02-05 19:47) [7]

> Через BDE все вероятно решилось бы с помощью TUpdateSQL. Что можно сделать через ADO?

я так понял, что именно с апдейтом проблемы.


 
nikkie   (2003-02-05 19:50) [8]

нет, проблема в том, что
>Хотелось бы отобразить NAME для новой записи в гриде



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

Форум: "Базы";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-76030
Maxik777
2003-02-13 16:00
2003.02.24
И снова о выборе директории


14-76196
Agent Smith
2003-02-07 18:17
2003.02.24
MYST 3


3-75760
Andrio
2003-02-05 16:12
2003.02.24
базы данных


3-75771
VitGun
2003-02-05 18:14
2003.02.24
Доступ к 1С через OLE


9-75728
Карлсон
2002-08-03 18:51
2003.02.24
Объясните как делается меню.





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