Перевод приложения под Oracle на Firebird

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
elbug
Сообщения: 3
Зарегистрирован: 02 июн 2006, 09:05

Перевод приложения под Oracle на Firebird

Сообщение elbug » 02 июн 2006, 09:44

Есть приложение написаное на ADO под Oracle. Необходимо переложить под Firebird.
Проблема заключается в седующем: целочисленные поля для Oracle определяются как TBCDField, а в Firebird, как TIntegerField - появляется ошибка о несовпадении типов. Подскажите, пожалуйста, возможно ли приведение полей таблиц к какому-то общему типу? Или какие-нибудь пути решения этого

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

Сообщение Dimitry Sibiryakov » 02 июн 2006, 10:53

Неужели используются статические определения полей?..
Лучше всего состряпать какой-нибудь data abstraction level. Заодно получишь программу способную работать с обеими серверами.

elbug
Сообщения: 3
Зарегистрирован: 02 июн 2006, 09:05

Сообщение elbug » 02 июн 2006, 11:11

использовать условную компиляцию?

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Re: Перевод приложения под Oracle на Firebird

Сообщение eugeney » 02 июн 2006, 12:01

elbug писал(а):Есть приложение написаное на ADO под Oracle. Необходимо переложить под Firebird.
Проблема заключается в седующем: целочисленные поля для Oracle определяются как TBCDField, а в Firebird, как TIntegerField - появляется ошибка о несовпадении типов. Подскажите, пожалуйста, возможно ли приведение полей таблиц к какому-то общему типу? Или какие-нибудь пути решения этого
Ты в базе FB определяй поля как numeric(18,0), тогда они будут TBCDField. Это фича оракла приводить все NUMBER.

elbug
Сообщения: 3
Зарегистрирован: 02 июн 2006, 09:05

Сообщение elbug » 02 июн 2006, 12:22

У меня Firebird 1.5.
Пробовал заменять NUMERIC разной разрядности и точности, но
в компонентах тип получается: TSmallIntegerField или TLargeIntegerField для ключевых полей и TFloatField для неключевых полей

eugeney
Сообщения: 79
Зарегистрирован: 29 окт 2004, 18:51

Сообщение eugeney » 05 июн 2006, 15:16

elbug писал(а):У меня Firebird 1.5.
Пробовал заменять NUMERIC разной разрядности и точности, но
в компонентах тип получается: TSmallIntegerField или TLargeIntegerField для ключевых полей и TFloatField для неключевых полей
Какой компонентой доступа пользуешся?

Ответить