Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с запросом - не хочет менять вьюшку. Вьюшка кросовая с вычисляемыми полями 
:(
    Опции темы
Bes
Дата 9.8.2005, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



SQLServer2000
создаю вьюшку
Код

create view view3 as
SELECT table1.k1, 
table1.nazv, 
isnull((select top 1 k2 from table2 where table2.nazvan = table1.nazv),0) as код,  
case when table1.nazv = table2.nazvan then 0 else 1 end AS Совп,
table2.nazvan
FROM table2 RIGHT JOIN table1 ON table2.k2 = table1.kod

пишу в QA запрос
Код

update view3 set nazv = 'c' where k1 = 3

получаю ошибку
Код

Server: Msg 4421, Level 16, State 1, Line 1
Derived table 'view3' is not updatable because a column of the derived table is derived or constant.

почему не работает? smile а ведь работало вроде smile

Это сообщение отредактировал(а) Bes - 9.8.2005, 10:01
PM MAIL   Вверх
Grig
Дата 9.8.2005, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



Блин..
точно.
Интересно почему так?
А есть возможность у тебя работать с временными таблицами?
Например
Код

SELECT table1.k1,    
table1.nazv,    
isnull((select top 1 k2 from table2 where table2.nazvan = table1.nazv),0) as код,    
case when table1.nazv = table2.nazvan then 0 else 1 end AS Совп,    
table2.nazvan    
into #tab1
FROM table2 RIGHT JOIN table1 ON table2.k2 = table1.kod
go
update #tab1 set nazv = 'c' where k1 = 3
go
select * from #tab1
go



--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



не очень понял, а что это? smile

PM MAIL   Вверх
Grig
Дата 9.8.2005, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



#tab1 - это временная таблица
попробуй, запусти это в QA - все будет работать - проверено.


--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Кратенькую справку по временным таблицам можно?
Чем они грозят?
Приложение у меня сетевое моногопользовательское.
PM MAIL   Вверх
Grig
Дата 9.8.2005, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



Цитата(Bes @ 9.8.2005, 12:02)
Кратенькую справку по временным таблицам можно?

Попытаюсь.
Временные таблицы бывают локальные (в одной базе данных) и глобальные (канают на весь сервер.)
#tab - локальная
##tab - глобальная
это поименнованая область памяти на машине клиента. (вот тут я могу ошибатся, но кажется именно так)
По моему, самый удобный способ для работы с сетевыми приложениями.
Работаешь с ними как с обычными таблицами, после завершения сеанса они самоуничтожаются
хотя можно также убивать их вручную. drop table....

Это сообщение отредактировал(а) Grig - 9.8.2005, 12:22


--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



А другие пользователи увидят изменения первого?
PM MAIL   Вверх
Grig
Дата 9.8.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



не-а.
Это ж временная таблица - личное дело пользователя
Он там чего-нибудь наизменял, например, пиши ему типа: "сохранить данные?"
и если да, перекидывай их из временной в основную таблицу.
Если их несколько навалилось на одну таблицу, используй блокировки, транзакции.


--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Вот а мне надо чтобы все видели изменения всех.....
не пойдет тогда
PM MAIL   Вверх
Grig
Дата 9.8.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



Ну тогда копируй не во временную таблицу, а в нормальную..

Добавлено @ 12:40
хотя лучше со вьюшкой поразбиратся


--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Да уж, все равно спасибо, но вопрос таки остается открытым.... smile
PM MAIL   Вверх
Grig
Дата 9.8.2005, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



стоп!
А что тебе мешает по факту изменения данных из временной таблицы каждого юзера апдейтить основную.
Все это бузусловно должно работать.
Делай только это в транзакции.
Может покажешь какие-нибудь фрагменты кода, чтоб было понятнеее?
Только поскорее, а то у нас скоро ночь, а я на работе smile


--------------------
        
PM MAIL ICQ   Вверх
Bes
Дата 9.8.2005, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 806
Регистрация: 8.12.2004

Репутация: 2
Всего: 7



Фрагменты кода акцессовские а это анализ на QA так что нечего тут приводить. не задерживаю, спокойной ночи smile
PM MAIL   Вверх
Grig
Дата 9.8.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 809
Регистрация: 29.4.2005
Где: Иркутск

Репутация: 4
Всего: 16



Чтобы Access с SQL-ом в Дельфи подружить
Надо порядком погемороится..
Сейчас я тоже примерно этим и занимаюсь.
Удачи!



--------------------
        
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1142 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.