0
- 01.04.2012 - 20:13
|
Склеил-таки я через внешний источник данных 8.2 и файрбёрд. Клеится всё нормально, объектная модель работает, "представление", "ссылка", все в норме. Но есть четыре проблемки, с тремя жить можно, с одной довольно тяжко. Первая проблема это то, что одинэска отказывается работать с составными типами данных внутри внешнего источника. Ну да ладно, это обходится, правда не очень красиво, но решаемо. Вторая проблема это соединение строк. В файрбёрде строки стыкуются с помощью оператора "||", одинэска пытается их стыковать "+", ну да ладно, и это полбеды. Третья проблема, это невозможность использовать временные таблицы. По крайней мере, когда у источника стоит тип "Прочее". Но это то же решается. А вот четвёртую не могу победить. Нужно создать динамический список на основе таблицы внешнего источника. Одинэска пытается его получить запросом "SELECT TOP ... ", а файрбёрду надо "SELECT FIRST ... ". Может есть у кого мысли как обмануть одинэску? Пробовал источнику ставить другие типы, и постгри, и ибм, и оракл, но тогда другие ошибки вылезают. | |
1
- 01.04.2012 - 20:36
| (1) Жевали уже эту проблему. Разработчики платформы советуют не использовать дин. списки для баз феникса, использовать запросы и отчеты на компоновке пока они думают, что же им прикрутить к платформе... | |
2
- 01.04.2012 - 20:41
|
2-Reaper >Ясно. Спасибо. Буду пока мутить на стороне файрбёрда, попробую через вьюшку, внутрь её какую-нибудь процедурку запихаю, короче будем думать. :) | |
3
- 01.04.2012 - 20:43
| 2-Reaper >Эх, найти бы ту самую голубую длл-ку, и поменять в ней TOP на FIRST ;) | |
4
- 01.04.2012 - 20:46
| (4) Ну можно еще ODBC свой сделать, который будет в лоб пересылать запросы с теми же параметрами родному драйверу но подменяя в тексте инструкции "Select top" на "Select first". Это ИМХО разумнее. | |
5
- 01.04.2012 - 20:49
|
5-Reaper >Можно и так попробовать. Но сначала в самом файрбёрде попытаюсь. | |
6
- 02.04.2012 - 21:04
|
Ну вот, ещё одна неприятность. Делаем запрос: Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ |Заказы.Ссылка КАК Заказ, |Заказы.Номер, |Заказы.Дата |ИЗ |ВнешнийИсточникДанных.Оптима6_0.Таблица.Заказы КАК Заказы"; ТЗ = Запрос.Выполнить().Выгрузить(); В результате поле «Заказ» в ТЗ заполнено и имеет тип «ВнешнийИсточникДанныхТаблицаСсылка.Оптима6_0.Зака зы» Пока всё хорошо. Делаем следующий финт: Запрос.Текст = " |ВЫБРАТЬ |ТЗ.Заказ, |ТЗ.Номер, |ТЗ.Дата |ПОМЕСТИТЬ ВремТЗ |ИЗ |&ТЗ КАК ТЗ |; |ВЫБРАТЬ |ВремТЗ.Заказ, |ВремТЗ.Номер, |ВремТЗ.Дата |ИЗ |ВремТЗ КАК ВремТЗ"; Запрос.УстановитьПараметр("ТЗ", ТЗ); ТаблицаЗаказов.Загрузить(Запрос.ВыполнитьПакет()[1].Выгрузить()); В итоге поле ТаблицаЗаказов.Заказ становится пустым, но тип значения сохраняет "ВнешнийИсточникДанныхТаблицаСсылка.Оптима6_0.Зака зы". | |
| Интернет-форум Краснодарского края и Краснодара |