К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

8.2 и Файрбёрд

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.Зака зы".


К списку вопросов






Copyright ©, Все права защищены