|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
ClientDataSet.OnCalcFields
проблема следующая:
Обычная трехзвенка через DCOM : БД (пока MSAcsess, будет перенос на MSSQLServer),программа-сервер, программа-клиент. (т.е. AdoQuery<->DataSetProvider<->DCOMConnection<->ClientDataSet) Есть таблица работников. Есть поля F Фамилия, I имя, O отчество. В вызове метода OnCalcFields на поле FIO (Caclulated!) делаю следующее: Таблица.FieldByNAme('FIO').asstring:=Таблица.Field ByNAme('F').asstring+' '+Таблица.FieldByNAme('I').asstring+' '+Таблица.FieldByNAme('O').asstring И тут вместо нормальных Иванов Иван Иванович получается И?||ичич|||| Хотя F, I , O отображаются отдельно нормально! WTF господа? Последний раз редактировалось Sphinx, 16.02.2011 в 06:12. |
#2
|
||||
|
||||
Ну как-бы такого не может быть, но оно есть
Попробую погадать, тип поля для FIO какой задан? Если строка, то длина какая? Дельфи какая версия? Может это юникод такое выкаблучивает? Попробуйте для эксперимента писать не напрямую в Таблица.FieldByNAme('FIO').asstring, а в переменную, а уже потом в FIO. Неплохо-бы точку останова в вызове этого события сделать и посмотреть, что реально собирается в FIO. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
||||
|
||||
^_^
Спасибо, за пинок в нужном направлении, сенсей ^_^ !
Хотя поля F, I , O широкие стринги (WideString) , оказалось что суммировать их в поле FIO типа WideString было ошибкой (хотя и Delphi по умолчанию сразу выпадал на неё!) Пересоздал FIO типа String и все программировалось как нужно! |