Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Добрый день!
Есть программа, которая обращается к базе данных.
Возможно ли в момент обращения программы к базе данных подменить запрос?

Например,
select *
  from rbItems
 where key_code = 11

заменить на
select *
  from rbItems
 where key_code = 11
   and group_id = 12

Подскажите, пожалуйста, как это сделать? Знакомый говорил, что в 1С такое срабатывало. Нашли какой-то пропаченный драйвер ODBC который позволял подменять запросы.
11 янв 10, 15:32    [8166070]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
ну так и ищите драйвер...

для спящего время бодрствования равносильно сну
11 янв 10, 15:40    [8166133]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Алексей2003
ну так и ищите драйвер...

для спящего время бодрствования равносильно сну


К сожалению, найти нигде не можем :(
11 янв 10, 15:47    [8166185]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Supra93
Member

Откуда:
Сообщений: 8174
view не подойдет?
11 янв 10, 15:54    [8166228]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Supra93
view не подойдет?

подойдет и view
вот только мне нужно фатически вернуть другой набор данных в программу. как это сделать?
11 янв 10, 16:02    [8166297]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36808
Dimbuch®
Supra93
view не подойдет?

подойдет и view
вот только мне нужно фатически вернуть другой набор данных в программу. как это сделать?
Как сделать view? Командой create view.
11 янв 10, 16:03    [8166309]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dimbuch®
Supra93
view не подойдет?

подойдет и view
вот только мне нужно фатически вернуть другой набор данных в программу. как это сделать?

Ну так если "подойдет и view", то что мешает вместо таблицы rbItems создать view с уже встроенным фильтром ?
11 янв 10, 16:04    [8166321]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Glory

Ну так если "подойдет и view", то что мешает вместо таблицы rbItems создать view с уже встроенным фильтром ?


Нет... такой вариант нельзя.

Еще раз постараюсь объяснить то что мне нужно:
Имеем запрос от программы к базе данных. Мне необходимо вернуть в программу не те данные, которые возвращает этот запрос, а скорректированные данные.
Вот если бы бы при обращении к базе программа запускала бы хранимую процедуру - я бы дописал в этой процедуре то, что мне надо, и всё. Однако программа запускает не зранимую процедуру, а выполняет запрос.
Исходников от программы, к сожалению, нет.
11 янв 10, 16:10    [8166364]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dimbuch®
Glory

Ну так если "подойдет и view", то что мешает вместо таблицы rbItems создать view с уже встроенным фильтром ?


Нет... такой вариант нельзя.


Религия не позволяет ?
11 янв 10, 16:11    [8166372]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Glory

Религия не позволяет ?


а как? если эта таблица используется в программе как справочник? я не могу ее переименовать и создать вьюшку с таким же именем
11 янв 10, 16:12    [8166390]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Dimbuch®
Glory

Религия не позволяет ?


а как? если эта таблица используется в программе как справочник? я не могу ее переименовать и создать вьюшку с таким же именем
А говорили, что хранимую процедуру дописали бы.
Как же так?
11 янв 10, 16:14    [8166406]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dimbuch®
Glory

Религия не позволяет ?


а как? если эта таблица используется в программе как справочник? я не могу ее переименовать и создать вьюшку с таким же именем

Вы озвучите причину вашего "не могу" ?
11 янв 10, 16:16    [8166428]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
iap
Dimbuch®
Glory

Религия не позволяет ?


а как? если эта таблица используется в программе как справочник? я не могу ее переименовать и создать вьюшку с таким же именем
А говорили, что хранимую процедуру дописали бы.
Как же так?


Нельзя переименовать. Т.к. таблица используется. Откуда программа узнает, где у нее справочник, если я переименую таблицу?
11 янв 10, 16:17    [8166432]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dimbuch®

Нельзя переименовать. Т.к. таблица используется. Откуда программа узнает, где у нее справочник, если я переименую таблицу?

Программа будет работать с view-ом
11 янв 10, 16:18    [8166444]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Glory
Вы озвучите причину вашего "не могу" ?

Таблица задействована в системе как справочник. Если я ее переименую. Как тогда справочник будет работать в программе?
11 янв 10, 16:19    [8166455]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Glory
Dimbuch®

Нельзя переименовать. Т.к. таблица используется. Откуда программа узнает, где у нее справочник, если я переименую таблицу?

Программа будет работать с view-ом


Спасибо, я попробую.
11 янв 10, 16:19    [8166467]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Dimbuch®
Glory
Вы озвучите причину вашего "не могу" ?

Таблица задействована в системе как справочник. Если я ее переименую. Как тогда справочник будет работать в программе?

Молча будет работать
11 янв 10, 16:20    [8166472]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Dimbuch®
Откуда программа узнает, где у нее справочник, если я переименую таблицу?
Лучше скажите, как программа узнает, что ей подсовывают VIEW, а не таблицу
11 янв 10, 16:20    [8166474]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Konst_One
Member

Откуда:
Сообщений: 11514
наверное проверяет по INFORMATION_SCHEMA.TABLES на тип TABLE_TYPE='BASE TABLE' ?
11 янв 10, 16:24    [8166522]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Konst_One
наверное проверяет по INFORMATION_SCHEMA.TABLES на тип TABLE_TYPE='BASE TABLE' ?
Правда что ли?
Я много раз так делал. Никогда проблем не было.
Может оказаться полезным создать VIEW с опцией WITH VIEW_METADATA
11 янв 10, 16:40    [8166710]     Ответить | Цитировать Сообщить модератору
 Re: Подмена запроса во время выполнения  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 47
Всем спасибо!
Вариант с VIEW работает.
11 янв 10, 16:54    [8166858]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить