|
Запрос к внешнему источнику данных. | ☑ | ||
---|---|---|---|---|
0
nomid
24.11.15
✎
10:35
|
Доброго времени. Помогите, кому не лень.
Подключен внешний источник данных ODBC, FireBird 2.5 Делаю запрос к таблице ВИД: &НаСервере Функция ЗапросНаСервере ВыбрБаза = ПоучитьВыбраннуюБазу(); ВнешнийИсточник = "ВнешнийИсточникДанных."+ВыбрБаза+".Таблица.OSZNCHANGE"; ТабЗнач = Новый ТаблицаЗначений(); Запрос = Новый Запрос; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = МенеджерВТ; Запрос.Текст = "ВЫБРАТЬ * |ПОМЕСТИТЬ ВР |ИЗ | | &ВнешнийИсточник КАК ВнешнийИсточник"; Запрос.УстановитьПараметр("ВнешнийИсточник",ВнешнийИсточник); ТабЗнач = Запрос.Выполнить().Выгрузить(); Возврат ТабЗнач; КонецФункции Получаю ошибку: Неверные параметры "ВнешнийИсточник" <<?>>&ВнешнийИсточник КАК ВнешнийИсточник Выичисляю выражение "ВнешнийИсточник", получаю: "ВнешнийИсточникДанных.VID.Таблица.OSZNCHANGE" Если я не помещаю во врменную таблицу и не использую МВТ, то ошибка следующая: "Содержимое объекта данных может быть выбрано только во временную таблицу" При этом, указав полную строку в запросе, все отрабатывает. |
|||
1
VikingKosmo
24.11.15
✎
10:37
|
А результаты запроса к внешним источникам нельзя соединять в запросе с таблицами БД, внезапно, правда?
|
|||
2
VikingKosmo
24.11.15
✎
10:38
|
Сначала выгрузи данных из внешнего источника в ТЗ, а потом уж делай с этой ТЗ, что хочешь
|
|||
3
nomid
24.11.15
✎
10:48
|
Собственно проблема не в выгрузки данных, а как засунуть ВИД в переменную. То есть при выборе определенного источника в форме, запрос уходит к нему.
Если я делаю без установки параметров, запрос вида: "ВЫБРАТЬ * |ИЗ | | ВнешнийИсточникДанных.VID.Таблица.OSZNCHANGE КАК ВнешнийИсточник"; Проходит нормально и я получаю ТЗ. А вот как мне вместо "VID" подставлять разное значение ума не приложу. Или это не реализуемо? |
|||
4
НЕА123
24.11.15
✎
10:55
|
Запрос.УстановитьПараметр("ВнешнийИсточник",ВнешнийИсточник);
<- Запрос.Текст = СтрЗаменить("&ВнешнийИсточник", ВнешнийИсточник); |
|||
5
НЕА123
24.11.15
✎
10:56
|
*
СтрЗаменить(Запрос.Текст, "&ВнешнийИсточник", ВнешнийИсточник); |
|||
6
Живой Ископаемый
24.11.15
✎
10:57
|
2(3) Никак. Выгрузить результат запроса к ВИДу в ТЗ, ТЗ запихнуть в переменную.
|
|||
7
Живой Ископаемый
24.11.15
✎
11:01
|
а, ну да, меняя сам запрос
|
|||
8
nomid
24.11.15
✎
11:28
|
(5) Огромное спасибо. Сам бы не допер.
Рабочий результат, вдруг кому пригодится: &НаСервере Функция ЗапросНаСервере() ВыбрБаза = ПоучитьВыбраннуюБазу(); ВнешнийИсточник = "ВнешнийИсточникДанных."+ВыбрБаза+".Таблица.OSZNCHANGE"; ТабЗнач = Новый ТаблицаЗначений(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ * | |ИЗ | | &ВнешнийИсточник КАК ВнешнийИсточник"; Запрос.Текст = СтрЗаменить(Запрос.Текст,"&ВнешнийИсточник", ВнешнийИсточник); ТабЗнач = Запрос.Выполнить().Выгрузить(); Возврат ТабЗнач; КонецФункции |
|||
9
User_Agronom
24.11.15
✎
11:28
|
(0) Собирай текст запроса демонически.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |