![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() День добрый.
Delphi XE БД: DBF Вот такая проблема: - есть простой запрос с тремя полями: 2 из которых (A и B) обычные текстовые данные, а одно (С) - вычисляемое (на основе двух полей) - так вот: если я использую CalcFields, то вычисляемое поле НЕ ВЫЧИСЛЯЕТСЯ - всегда возвращается пустая строка Привожу код Код:
procedure TDM.Q1CalcFields(DataSet: TDataSet); begin С.AsString := A.AsString + B.AsString; end; А и B - простые строки и данные в таблице есть но что самое интересное - не работает и такой код Код:
procedure TDM.Q1CalcFields(DataSet: TDataSet); begin С.AsString := 'QQQQQQQQQQQQQQQQQq'; Showmessage(С.AsString); //все равно возвращает '' end; |
#2
|
||||
|
||||
![]() в Delphi 7 такое смоделировал создав пустой обработчик события OnGetText у fkCalculated. решилось:
Код:
procedure TForm1.Table1CalcGetText(Sender: TField; var Text: String; DisplayText: Boolean); begin Text:=Sender.AsString; end; Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Попробовал у себя (в XE).
Не помогло. Все также возвращает '' |
#4
|
||||
|
||||
![]() залей минимальный проект воспроизводящий ошибку
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Залил кокроткий проект
|
#6
|
||||
|
||||
![]() на Delphi 7 все нормально.
а если без вычисляемого поля делать: Код HTML:
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Это упрощенный пример.
В реальной ситуации мне надо провести вычисления, которые нельзя сделать средствами SQL... |
#8
|
|||
|
|||
![]() Есть еще варианты по решению этой проблемы?
Я так и не могу добиться вычисления этого поля... |
#9
|
||||
|
||||
![]() Цитата:
![]() ^ поле А = 254 символа поле В = 4 символа поле С = 20 символов ... непорядок Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 12.11.2012 в 15:00. |
#10
|
|||
|
|||
![]() В БД строка лежит в закодированном виде.
В вычисляемом поле происходит декодирование строки и добавление к ней еще одной строки. |
#11
|
|||
|
|||
![]() Выставил 254 + 4 = 258.
Результат такой же. Делаю в XE3. В Delphi 7 проблемы такой у меня нет... |
#12
|
|||
|
|||
![]() И еще момент:
- если я использую Query1CalcFields, то у меня при выводе и основные поля A и B искажаются, хотя с ними ничего не делаю в этой процедуре |