![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли вносить изменения... [D7, IB6.x]
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 в виде соотв. запросов.