FBDataSet + DBText

Модератор: Модераторы

Ответить
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

FBDataSet + DBText

Сообщение Little_Roo »

Встала проблема - перенести оболочку лицейской базы с Delphi7+FIBPlus на Lazarus :cry:

Наткнулся на некоторые грабли (просьба ногами не бить - я не профи)
1. В FBDataset пока не переправил DefaultFormats -> DisplayFormatInteger на #0 - отображалось поле в DBEdit как 12?345 вместо 12345
долго искал почему...У FIBPlus все нормально.
2. И ГЛАВНОЕ - не удается вывести средний балл (в базе поле float) в DBText - выдает просто 0 :cry:
Опять в маске вывода дело? Какое?
Да, пробовал вывод этого поля в DBEdit, в Label через label17.Caption := floattostr(fbdataset1.Fields.FieldByName('sball5').AsFloat) - те же грабли...


WinXP, W2k
Lazarus 0.9.29 r22930 FPC 2.3.1 i386-win32-win32/win64
FBDataSet 1.9.3.34
FireBird 2.1.3
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Little_Roo писал(а):1. В FBDataset пока не переправил DefaultFormats -> DisplayFormatInteger на #0 - отображалось поле в DBEdit как 12?345 вместо 12345

проблема UTF8 на форуме было

про второе не понял. но у меня копеек нету негде.

Добавлено спустя 1 минуту 27 секунд:
на худой конец можешь попробовать select cast(f as varchar(10))
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Little_Roo писал(а):2. И ГЛАВНОЕ - не удается вывести средний балл (в базе поле float) в DBText - выдает просто

вроде был когдато такой глюк
в текущем транке долюно быть исправлено.
Little_Roo писал(а):В FBDataset пока не переправил DefaultFormats -> DisplayFormatInteger на #0 - отображалось поле в DBEdit как 12?345 вместо 12345
долго искал почему...У FIBPlus все нормально.

по этому поводу я недавно расписывал что надо правильно локализовать в винде стандартные массивы и переменные - переводить их из кодировки win1251 в utf8.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

alexs писал(а):
Little_Roo писал(а):2. И ГЛАВНОЕ - не удается вывести средний балл (в базе поле float) в DBText - выдает просто

вроде был когдато такой глюк
в текущем транке долюно быть исправлено.

Сенькую :P А где это обновление выцепить можно? URL или что-то там...

Добавлено спустя 15 минут 34 секунды:
по этому поводу я недавно расписывал что надо правильно локализовать в винде стандартные массивы и переменные - переводить их из кодировки win1251 в utf8.

Вот только где? :oops:

А может для таких как я кодеров (не стыжусь, я учитель и по совместительству :( с кабинетом директора ПРОГРАММЮР :oops: )
статью вписать...или обновить Ваши разработки, так как на Вашем сайте ох-ч-ч-ч-ч-ч-чень старое и не работающее лежит...
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

На сайте действительно очень старое. У меня нет времени его сопровождать.
Свежие исходники берутся из свн.
например командой (для её работы требуется установленный svn-клиент)

Код: Выделить всё

svn co svn://svn.shamangrad.net/FBDataSet
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

alexs писал(а):На сайте действительно очень старое. У меня нет времени его сопровождать.
Свежие исходники берутся из свн.
например командой (для её работы требуется установленный svn-клиент)

Код: Выделить всё

svn co svn://svn.shamangrad.net/FBDataSet


Спасибо :P
Только я понял, что данная командная строка для линукса...или я туплю...
Аватара пользователя
Attid
долгожитель
Сообщения: 2589
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

для венды будет svn.exe который надо сначало установить
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

Траблы продолжаются - обновил FBDAtaset (svn revision 69) но...
В DBText (и для теста в Label) число из Firebird выводится как-то уж о-о-о-чень странно.
Базу перекомпилировал - поля типа float перебил на numeric(3,2)
IB-FB Development Studio и IBExpert значения полей показывают корректно, а из программы поле отображается так:
Например, средний балл за семестр:
IBExpert - 5,00
моя прога - 461731551796160,00 :x

или
IBExpert - 3,71
моя прога - 461553659610879,00 :x :x
Да, строковые и целочисленные поля отображаются корректно

У базы characterset выставлен в csUTF8
Win2k, WinXP
Lazarus 0.9.29 r22930 FPC 2.3.1 i386-win32-win32/win64
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

Продолжаю сам себя :!:
IB-FB Development Studio и IBExpert значения полей показывают корректно, а из программы поле отображается так:
Например, средний балл за семестр:
IBExpert - 5,00
моя прога - 461731551796160,00 :x

или
IBExpert - 3,71
моя прога - 461553659610879,00 :x :x
Да, строковые и целочисленные поля отображаются корректно


Кто-то сталкивался????
Подстановка UIBDataset - отбражение поля Numeric ПРАВИЛЬНОЕ ...НО read-only :x :x :x
Где собака порылась? (с)горби


Lazarus 0.9.29 r23129 FPC 2.3.1 i386-win32-win32/win64
fbdataset rev.71 uib rev.346
alexrayne
постоялец
Сообщения: 125
Зарегистрирован: 03.12.2008 15:56:26

Сообщение alexrayne »

насколько я понял Вы использовали FBDataSet с последним фиксом утечек памяти по ansi строкам. немогли бы дать отчет о наличии утечек при работе с записями содержащими стоки?
еще вопрос, пользовались ли Вы FieldMap когда нить, былили баги?

по поводу флота: имхо стоит посмотреть немогло ли получиться несовпадение типа флотов рекорда и флотов филда? флотов ведь много разных - Single Double extended real48

Добавлено спустя 22 минуты 17 секунд:
Алексей посмотри ка TFBCustomDataSet.InternalInitFieldDefs:

Код: Выделить всё

      case FQuerySelect.Fields.FieldType[i] of
        uftNumeric:

там описаны далее идет выбор типа поля по типу поля в запросе, в UIB однако окромя SQL_DOUBLE незабывают SQL_D_FLOAT и SQL_FLOAT

Добавлено спустя 3 часа 3 минуты 4 секунды:
тестовая ветка порядочно устарела. обновитесь из транка
Ответить