powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Необновляемый" обновляемый рекордсет в ADP
4 сообщений из 4, страница 1 из 1
"Необновляемый" обновляемый рекордсет в ADP
    #32776899
kk@comson.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тема не раз обсуждалась:
Здесь
или, например,
здесь
Но надежда умирает последней. Помогите, чем сможете. Сервер SQL + ADP "делают" меня, как младенца. Вот пример:

Делаю таблицы:

Код: plaintext
TABLE t1 (t1_ID int IDENTITY ( 1 ,  1 ) NOT NULL , t1_Text nvarchar ( 50 ))\nTABLE t2 (t2_ID int IDENTITY ( 1 ,  1 ) NOT NULL ,t1_ID int NOT NULL ,t2_Value int NOT NULL)

Делаю view (к первичному ключу таблицы приделан JOIN заведомо необновляемого представления):

Код: plaintext
CREATE VIEW v2\nAS\nSELECT t1.t1_ID, t1.t1_Text, v1.Sum_Values\nFROM t1 INNER JOIN\n(SELECT     t1_ID, SUM(t2_Value) AS Sum_Values\nFROM  t2\nGROUP BY t1_ID) v1 ON t1.t1_ID = v1.t1_ID\nGO

Выполняю v2 в Enterprise Manager - все путем, t1_Text (поле таблицы с ключом) обновляется, причем ни VIEW_METADATA, ни INSTEAD_OF триггеров для этого не требуется.

Выполняю в ADP, при попытке обновить t1_Text пишет "рекордсет не обновляемый".

Нахожу в свойствах представления v2 (в ADP) "обновлять, как представление", уверенно ставлю галочку, сохраняю, выполняю - те же яйца.

Открываю v2 в QA и медленно сливаю - ADP вставил в текст инструкции CREATE (ALTER) VIEW слова WITH VIEW_METADATA!

Собственно вопросы:
1. Для чего (или кого) ADP добавил WITH VIEW_METADATA? Ведь именно он (ADP) все равно рекордсет не обновляет!

2. А что же сервер? Если ему сказано "НЕ ОТСЫЛАТЬ КЛИЕНТУ СВЕДЕНИЯ О БАЗОВЫХ ТАБЛИЦАХ ПРЕДСТАВЛЕНИЯ", зачем же он ADP все рассказывает?

Заранее спасибо за советы, уверенное "Вам без шансов" тоже поможет, сбережет силы.

P. S. Как я вывернулся (через задницу):
1. На компе с сервером создаю пустой MDB (формат 2002) и системный ODBC DSN.
2. Прилинковываю v2 к MDB через DSN.
3. Прилинковываю v2 под другим именем к ADP. На сервере появляется представление типа "mbd_name . . . view_name", которое обновляется в ADP, как положено. Данные при этом, видимо, совершают затейливый путь

Код: plaintext
SQL <-> ODBC DSN <-> MDB <-> ODBC DSN <-> SQL <-> Драйвер(не знаю какой) <-> ADP 

По дороге сведения о базовых таблицах теряются и ADP уже не "умничает", а работает, как положено.
...
Рейтинг: 0 / 0
"Необновляемый" обновляемый рекордсет в ADP
    #32777023
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
используй ХП
...
Рейтинг: 0 / 0
"Необновляемый" обновляемый рекордсет в ADP
    #32777209
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и я там был мёд с пивом пил
делай так:
подзапрос v2 - в функцию с ключем по t1_ID
t1_Text обновляй через форму (можно типа datasheet), в форме укажи unique table = t1

работает без вяких галочек в аксесе
и без schemabinding и без VIEW_METADATA
...
Рейтинг: 0 / 0
"Необновляемый" обновляемый рекордсет в ADP
    #32777843
aleks2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kk@comson.ruТема не раз обсуждалась:
Нахожу в свойствах представления v2 (в ADP) "обновлять, как представление", уверенно ставлю галочку, сохраняю, выполняю - те же яйца.

Собственно вопросы:
1. Для чего (или кого) ADP добавил WITH VIEW_METADATA? Ведь именно он (ADP) все равно рекордсет не обновляет!


А для чего ты ставишь [\/] "обновлять, как представление"?
Это и есть WITH VIEW_METADATA.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "Необновляемый" обновляемый рекордсет в ADP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]