Как узнать о новом View

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Как узнать о новом View

Сообщение dihl » 20 окт 2006, 20:02

День добрый.
Столкнулся со следующей проблемой: программно создаю View в БД, но не могу к нему получить доступ из программы, пишет что такого View нет. Проблема решается только отсоединением от БД и снова подключением, но это очень уж коряво. Есть более лаконичное решение. Заранее спасибо.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 20 окт 2006, 20:52

Commit ?

dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Сообщение dihl » 20 окт 2006, 21:20

WildSery писал(а):Commit ?
Commit уже сделан при добавлении View, а у DataBase Commit`а почему то нет

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 20 окт 2006, 21:29

а у DataBase Commit`а почему то нет
что-что?
скажи-ка нам.
1. какую версию сервера используешь
2. какой уровень изолированности (параметры) у транзакции, которая "хочет увидеть view"
3. какие компоненты используются
4. включено ли в компонентах кэширование метаданных

в принципе, эти 4 вопроса являются наводящими, по ним ты сам сможешь определить, что ты делаешь не так.

dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Сообщение dihl » 21 окт 2006, 17:51

kdv писал(а):
а у DataBase Commit`а почему то нет
что-что?
скажи-ка нам.
1. какую версию сервера используешь
2. какой уровень изолированности (параметры) у транзакции, которая "хочет увидеть view"
3. какие компоненты используются
4. включено ли в компонентах кэширование метаданных

в принципе, эти 4 вопроса являются наводящими, по ним ты сам сможешь определить, что ты делаешь не так.
1. Использую firebird 1.5
2. Уровень изолированности: Read Committed
3. Компоненты: TIBDataBase и TIBTransaction
4. Кэширование что-то не нашел...по умолчанию значит :)

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 21 окт 2006, 18:44

3. Компоненты: TIBDataBase и TIBTransaction
Что-что?. Приведи код, который у тебя создает View.

dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Сообщение dihl » 23 окт 2006, 13:51

CyberMax писал(а):
3. Компоненты: TIBDataBase и TIBTransaction
Что-что?. Приведи код, который у тебя создает View.
Уже разобрался с проблемой, сам неправильно установил TIBTransaction к разным TIBQuery. Спасибо, что помогли с решением.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 23 окт 2006, 14:00

А ты вьюхи на лету создаешь? Плохая идея... :?

dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Сообщение dihl » 25 окт 2006, 16:21

Dimitry Sibiryakov писал(а):А ты вьюхи на лету создаешь? Плохая идея... :?
А чем плохая? Думал для ускорения работы с БД сделать для каждого пользователя свою View или от этого быстрее работать с БД прога не будет?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 25 окт 2006, 16:42

Думал для ускорения работы с БД сделать для каждого пользователя свою View или от этого быстрее работать с БД прога не будет?
а почему view должно работать быстрее чем обычный запрос? тем, что запрос view хранится на сервере? И?

dihl
Сообщения: 6
Зарегистрирован: 20 окт 2006, 19:57

Сообщение dihl » 26 окт 2006, 21:38

kdv писал(а):
Думал для ускорения работы с БД сделать для каждого пользователя свою View или от этого быстрее работать с БД прога не будет?
а почему view должно работать быстрее чем обычный запрос? тем, что запрос view хранится на сервере? И?
Тем что обычный запрос идет к записям всей БД, а если запрос к View, которая в несколько раз меньше (например раз в 5, чем БД), то думал, что соответственно запрос будет тоже выполняться быстрее... это так?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 26 окт 2006, 22:48

Тем что обычный запрос идет к записям всей БД, а если запрос к View, которая в несколько раз меньше (например раз в 5, чем БД), то думал, что соответственно запрос будет тоже выполняться быстрее... это так?
Бред не надо писать. View это запрос, который хранится в БД. И практически ничем больше от запросов, выдаваемых с клиента, не отличается. На view можно создать триггеры как на таблице, но это к делу не относится.
Почитайте что-нибудь по азам СУБД.

Ответить