Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: CL | DM;

Вниз

Лишние пробелы в DB-компонентах   Найти похожие ветки 

 
Пубертанец   (2004-02-13 10:24) [0]

Короче, во всех DB-компонентах (DBEdit, DBGridEh и т.д.) для стринговых полей у меня отображаются лишние пробелы. Например, слово в поле занимает 5 символов, а само поле рассчитано на 15, то в компоненте отображаются лишние 10 символов (например, когда выделяю слово в компоненте это видно). Как в DesignTime запретить отображение этих лишних пробелов. В ClientDataSet у меня стоит DisableStringTrim=false - все чики-пуки, но все равно проблема не решается.


 
Плохиш   (2004-02-13 10:34) [1]

При создании таблиц использовать тип varchar вместо char


 
Соловьев ©   (2004-02-13 10:36) [2]

событие onGetText у поля и можешь делать все что угодно с текстовым полем. Например использовать Trim
Хотя [1] - лучший способ.


 
sniknik ©   (2004-02-13 10:37) [3]

в зависимости типа базы, поля, хз. чего еще поля могут дополнятся(и дополняются) пробелами потому как именно в этом виде лежат в базе.
выход сам их обрезай (trim) если база/движок непозволяет/не делает на onGetText к примеру.
если база позволяет то выбирай тот тип что держит поля в нужном тебе виде. varchar() вместо char() к примеру (для access MSSQL).


 
Пубертанец   (2004-02-13 10:50) [4]

Использую Firebird. Но не приведет ли использование varchar к потере производительности?


 
Пубертанец   (2004-02-13 11:09) [5]

varchar не помогло


 
sniknik ©   (2004-02-13 11:23) [6]

> varchar не помогло
у тебя еще есть промежуточное звено в связке, ClientDataSet а значит и DataSetProvider, они могут менять рекордсет при передаче. см. у напрямую у таблицы (скорее тебе единственное обрезание поможет :о)), trim имею в виду).


 
Пубертанец   (2004-02-13 11:42) [7]

Придется, наверное, все-таки в провайдере задавать в OnGetData - так работает нормально. Просто лень было что-то ручками писать, хотелось в DesignTime все параметры установить.

Всем спасибо за советы.


 
Anatoly Podgoretsky ©   (2004-02-13 11:50) [8]

Пубертанец (13.02.04 10:50) [4]
Но не приведет ли использование varchar к потере производительности?

Использование char вместо varchar приводит к потере производительности? Поскольку хранятся они одинаково, но для char производится дополнение пробелами и естестванно и передача этих пробелов клиенту.

Это ошибка какой то версии клиента, про который ты ничего не сообщаешь.


 
Пубертанец   (2004-02-13 11:55) [9]

А что сообщить про версию клиента? - я же сам его пишу


 
sniknik ©   (2004-02-13 12:06) [10]

> Это ошибка какой то версии клиента, про который ты ничего не сообщаешь.
достаточно и ClientDataSet-а, мелькал тут подобный вопрос когда напрямую получались короткие строки а с его использованием (трехзвенка) дополненые пробелами (база была аксесс вроде). проверять что в том случае что сейчас лень но похоже явление одного порядка (в смысле передаются данные через DCOM/SocketConnection или нет не влияет, скорее дополняется уже на приеме)
это конечно чисто логически, кому действительно нужно/интересно может проверить, возможно это не так/зависит от какихто настроек.


 
Anatoly Podgoretsky ©   (2004-02-13 13:08) [11]

В какой то версии IB/FB была такая ошибка, потом ее устранили.

Пубертанец (13.02.04 11:55) [9]
Пока понятно, что ты пишешь в Д6 и по всей видимости у тебя есть базы.


 
Пубертанец   (2004-02-13 14:05) [12]

База - WI-V6.2.972 Firebird 1.0.3


 
Пубертанец   (2004-02-13 14:05) [13]

База - WI-V6.2.972 Firebird 1.0.3.


 
div ©   (2004-02-16 13:53) [14]

в датасете при объявлении полей используй тип IBString вместо обычного String.



Страницы: 1 вся ветка

Текущий архив: 2004.03.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
14-43756
Andersen
2004-02-18 15:07
2004.03.14
Помогите советом, (Откос от армии)


6-43707
Кен
2004-01-09 01:56
2004.03.14
WebBrowser Когда кликаешь правой кнопкой на картинке, то в открыв


1-43541
Valter
2004-02-26 22:10
2004.03.14
Ошибка в RichEdit


1-43447
Petrovitch
2004-02-26 14:33
2004.03.14
установить курсор (мышкин) в какую-то определенную позицию Form.


1-43668
Builder
2004-03-01 19:16
2004.03.14
Excel и StringGrid