|
|
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Когда то листал форум и находил ответы на этот вопрос, но т.к. это мне не нужно было, то и игнорировал это. А теперь найти не могу правильное решение данного вопроса. При отображении через DBGrid(связь с MS SQL Server) данных с строковым типом, то отображаются нужные данные, но в конце добавляются пробелы... :( Как с этим можно бороться??? Заранее спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 14:03 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Нашел в чем грабли... Заменил char на varchar, а в обработчике поставил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Скажимте, правильное ли решение??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 15:24 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Так, всё-таки, какой у Вас тип поля какой на серевре? Как получаете данные с сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 16:10 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Отображаются данные в связки ADOConnection1, ADOTable1, DataSource1, DBGridEh1. Тип поля на сервере был char(10), заменил его на varchar(10)... А потом на поле первой колонки в DBGridEh1 повесил событие для того чтобы если пользователь сам вручную добавит пробелы в начале или конце строки, то их убираем программным путем через Trim. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 16:19 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
авторТип поля на сервере был char(10), заменил его на varchar(10)... Поле char отличается от varchar тем, что всегда имеет фиксированную длину, а недостающие символы дополняются пробелами. После замены все значения, что были до этого в таблице, останутся такими же - с пробелами на конце. Варианты: а) убрать ненужные пробелы, одноразовая операция: Код: plaintext 1. 2. Код: plaintext 1. Я бы рекомендовал первый варинт, т.к. он одноразовый, к тому же сокращает место под данными и убирает совершенно ненужный overhead для сервера во втором случае и клиента - в третьем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 16:30 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
@Гавриленко Сергей Алексеевич У меня к вам вопрос. 1) При ваших вариантах тип поля какой установлен у вас? char или varchar? 2) Ваш вариант (а) где использовать? Просто я предлагал заменить char на varchar и на клиенте или на серваке в тригере убирать пробелы. Думаю, что в идеале убирать пробелы на серваке в тригере. Но как в тригере это сделать, не подскажите? Спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2005, 18:22 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Не нужно никаких триггеров. Вы определитесь, что Вам нужно, char'ы или varchar'ы. В основном, конечно, юзаются varchar'ы, но, если интересно, поищите поиском, особенно по форуму MSSQL, там поднималась несколько раз тема char vs varchar. После этого отконвертите данные в выбранный Вами тип, и если Вы сменили тип с char'а на varchar(но никак не наоборот), то Вам придется одноразво (пункт а) обрезать незначащие пробелы, которые остались после char'а. И все, проблема исчерпана. Остальные два варианта я привел для полноты картины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2005, 19:42 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
Понятно. А что делать если после перевода char в varchar и через update все обрезал, то что делать если уже после этого всего пользователь в окне редактирования ввел сам пробелы? Они сами убираются серваком??? Я думаю, что нет. Вот поэтому я и предлагал их удалять(уже после конвертации и массовом удалении пробелов) на клиенте или на серваке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2005, 19:51 |
|
||
|
Пробелы в DBGrid
|
|||
|---|---|---|---|
|
#18+
StasX4Понятно. А что делать если после перевода char в varchar и через update все обрезал, то что делать если уже после этого всего пользователь в окне редактирования ввел сам пробелы? Они сами убираются серваком??? Я думаю, что нет. Вот поэтому я и предлагал их удалять(уже после конвертации и массовом удалении пробелов) на клиенте или на серваке... Удалять можно на этапе вставки. Если, например, юзаете хп, это довольно просто. Можно удалять на этапе выборки - примеры я тоже приводил. З.Ы. Почитайте BOL на предмет SET ANSI_PADDINGS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2005, 20:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32976788&tid=2033565]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 413ms |

| 0 / 0 |
