Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Можно ли вносить изменения... [D7, IB6.x]


Страницы:   1 2

PrettyFly ©   (2003-08-29 14:34:00) 

Можно ли как-нибудь вносить изменения в DataSet организованный из двух таблиц, например:

SELECT A.*, B.Name
FROM A INNER JOIN И ON(B.IDA = A.ID)

т.е. так, чтобы и в базе всё правильно менялось?


Reindeer Moss Eater   (2003-09-01 11:29:00) [21]

Но ведь во втором моем примере обновление работает.

SELECT t1.* - все поля присутствуют, значит и ключевые там есть.
Когда "все работает" обновляются поля из обеих таблиц или одной?


Bless   (2003-09-01 11:25:00) [22]

>Обновление "нужных записей" станет невозможным.

Вот мои вышеприведенные примеры:
1)SELECT t1.*, t2.* FROM t1, t2 WHERE t1.kod=t2.kod
2)SELECT t1.* FROM t1, t2 WHERE t1.kod=t2.kod

Но ведь во втором моем примере обновление работает. Хотя нет ни одного ключа в таблице! А ведь данные из таблицы t1 выбраны точно те же, что и в первом примере запроса!
Так почему в первом случае инфирмации о ключевых полях не достаточно, а во втором - хватает?


Reindeer Moss Eater   (2003-09-01 11:14:00) [23]

А если у меня нет ни одного ключа в таблице?
Обновление "нужных записей" станет невозможным.


Bless   (2003-09-01 11:10:00) [24]

Гм... На русский я и сам перевести могу. Но яснее от этого не стало. Зачем этому запросу нужна информация о ключевых полях объединяемых таблиц? И как определить, что ее уже достаточно? А если у меня нет ни одного ключа в таблице?


Reindeer Moss Eater   (2003-09-01 11:05:00) [25]

Тебе же сказали по-русски: недостаточно информации о ключевых полях таблиц, входящих в объединение


Bless   (2003-09-01 11:04:00) [26]

А с запросом
SELECT t1.* FROM t1, t2 WHERE t1.kod=t2.kod
редактируется без проблем.


Bless   (2003-09-01 11:02:00) [27]

>MSSQL позволяет редактировать такие наборы данных.

В гриде отображается результат запроса
SELECT t1.*, t2.* FROM t1, t2 WHERE t1.kod=t2.kod

При попытке изменить в гриде что-нибудь, возникает ошибка

Project Project1.exe raised exception class EOleException with message "Insufficient key column information for updating or refreshing". Process stopped. Use Step or Run to continue.

В чем может быть проблема?


Sergey,Masloff   (2003-09-01 09:39:00) [28]

GRAND © (29.08.03 15:58) [2]
>Если юзать FIBPlus, то там с этим гемора на порядок меньше.
Никаких проблем нет даже если FIBPlus не использовать


Reindeer Moss Eater   (2003-09-01 09:34:00) [29]

А тот же вопрос, только применительно к MSSQL
MSSQL позволяет редактировать такие наборы данных.


Bless   (2003-09-01 09:24:00) [30]

Что, никто не знает? Или нельзя никак?


Bless   (2003-08-29 16:19:00) [31]

А тот же вопрос, только применительно к MSSQL через ADO-шные компоненты?


GRAND   (2003-08-29 15:58:00) [32]

PrettyFly © (29.08.03 14:34)

Если юзать FIBPlus, то там с этим гемора на порядок меньше.


Карелин Артем   (2003-08-29 14:39:00) [33]

Да, только надо самостоятельно реализовывать логику на изменение таблиц с помощью IbDataSet или IBUpdateSQL в виде соотв. запросов.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо