Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

Отображение длинных текстов в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.04 c
3-1150304770
vvQuad
2006-06-14 21:06
2006.08.20
Перенос БД на другой комп


1-1152013774
Искандер В.
2006-07-04 15:49
2006.08.20
Нестандартные шрифты


15-1153419666
Доброже(в|л)атель
2006-07-20 22:21
2006.08.20
Network Boot кто делал? поделитесь опытом!


2-1154032666
susergey
2006-07-28 00:37
2006.08.20
ShellExecute


1-1151994943
PRT
2006-07-04 10:35
2006.08.20
Открыть с помощью...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский