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

Вниз

Отображение длинных текстов в DBGrid   Найти похожие ветки 

 
s_t_d   (2006-06-15 10:37) [0]

Уважаемые мастера, пожалуйста посоветуйте, как быть.
База MS SQL (получена из вне). Одно поле в некоторой таблице объявлено varchar 600. При отображении в DBGrid значения не показываются, а в ячейках стоит "MEMO". С полями меньшей длины, например varchar 50, такого не происходит и в DBGrid все отображается нормально. Что почитать, куду "бежать"?


 
Sergey13 ©   (2006-06-15 10:39) [1]

Поставь рядом с гридом Мемо-контрол и читай там. В гридину можно впихнуть урезанное до разумных пределов поле.


 
s_t_d   (2006-06-15 10:46) [2]

[1] Спасибо, но ведь для формирования запроса я исп. Query и следовательно результирующий набор данных там. Как же в этой связке исп. предложенный Вами Мемо-контрол? Или я чего-то не понимаю?
Пожалуйста проясните, если не трудно.


 
Ega23 ©   (2006-06-15 10:52) [3]


> Уважаемые мастера, пожалуйста посоветуйте, как быть.
> База MS SQL (получена из вне). Одно поле в некоторой таблице
> объявлено varchar 600. При отображении в DBGrid значения
> не показываются, а в ячейках стоит "MEMO". С полями меньшей
> длины, например varchar 50, такого не происходит и в DBGrid
> все отображается нормально. Что почитать, куду "бежать"?
>


Всё, что больше varchar(255) воспринимается как BLOB. Поэтому или меняй размерность поля, или - Sergey13 ©   (15.06.06 10:39) [1]


 
Sergey13 ©   (2006-06-15 10:55) [4]

2[2] s_t_d   (15.06.06 10:46)
Если делать по умному, то в запросе надо запрашивать (помимо остальных нужных) только урезанное поле (как - не знаю для МССКЛ), а все поле вытаскивать по отдельному запросу юзера (типа трафик экономим).
Если делать по быстрому, то можно запросить сразу все поля. Добавить вычисляемое поле на подстроку длинного. Его в грид, само поле в Мемо-контрол.


 
s_t_d   (2006-06-15 10:56) [5]

[3] Менять размерность затруднительно - база не наша, а поступает из вне.
Что характерно, ни одной записи более 100 символов там нет.


 
Sergey13 ©   (2006-06-15 10:57) [6]

2[5] s_t_d   (15.06.06 10:56)
Если так, то делай вариант "по быстрому". 8-)


 
Desdechado ©   (2006-06-15 11:02) [7]

> я исп. Query и следовательно результирующий набор данных там.
> Как же в этой связке исп. предложенный Вами Мемо-контрол?
DBMemo знаешь?


 
MsGuns ©   (2006-06-15 17:27) [8]

Я делаю так:
Для "длинных" колонок есть фича "Открыть окно просмотра" (через экшн, повешенный на пункт пупапменю грида или кнопку панели управления - экшн подымается или опускается в зависимости от тэга TField.Tag, выставленный в 1 в дизайне для "широких" полей). Если юзер ее кликает, то создается форма окно с единственным объектом в нем - TMemo Align := alClient. Форма создается как fsStayOnTop, т.е. она все время наверху и можно ее как переместить в удобное место экрана (например, чтобы открыть интересующую часть грида), так и изменить размеры до удобных. В тэг соответствующей колонки грида записываю указатель на форму. Если юзер форму-мемо прикрывает, то тэг обнуляется.
По событиям датасета AfterScroll/Open делается в цикле просмотр тэгов всех колонок грида и если тэг содержит указатель на форму, в находящейся на ней единственный TControl (то самое мемо) записываю содержимое поля, на которое ссылается колонка грида.
Результат таков: грид "листается" и синхронно с ним меняются данные в формах-полях, кол-во которых зависит от числа "широких" полей и желания пользователя.



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

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

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1153719008
Ega23
2006-07-24 09:30
2006.08.20
С Днём рождения! 23 июля


15-1153486525
AlexanderMS
2006-07-21 16:55
2006.08.20
На чём написана DELPHI IDE?


3-1150146676
vvQuad
2006-06-13 01:11
2006.08.20
DBGrid, Query и печать


15-1153837535
Parus
2006-07-25 18:25
2006.08.20
Сайт


15-1153557263
DillerXX
2006-07-22 12:34
2006.08.20
Как сделать так, чтобы отключить...