Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 811

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Использую базу SQL server 2000 через ADOQuery вывожу запрос на отображение всех данных таблицы в DBgrid одно из полей имеет формат Text так вот при отображении данных в DBgrid заместо текста вижу (MEMO), как сделать чтобы вместо данной надписи отображался весь текст находящийся в поле таблицы!
Читал что то про перерисовку DBgrid'a через свойства компонента Table, но как было описано данный метод здесь не подходит поскольку использую ADOQuery...

kensh1n Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: kensh1n (статус: Посетитель)
Вопрос отправлен: 18 мая 2009, 23:06
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 10; последнее сообщение — 22 ноября 2009, 11:04; участников в обсуждении: 3.
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 09:20 [#1]:

Очень странный вопрос! Сетка DBGrid изначально не может отображать большие текстовые массивы. Для этого служит компонент DBMemo или DBRichEdit. Не знаю для чего ВАМ это, но мне за многолетнюю практику не приходилось переделывать DBGrid. Для отображения в DBGrid-e текста используйте тип поля VARCHAR максимальная длина которого в MS SQL SERVER 2000 составляет 8000 символов. По-моему 8000 символов - огромный текст и всегда хватает с излишком!
kensh1n

kensh1n (статус: Посетитель), 19 мая 2009, 11:06 [#2]:

Да я бы так и сделал единственное что смущает меня фиксированная длина поля выходит если указываешь 8000 символов, пишешь текст на 20 символов и получаем 7980 символов пустой строчки в ДБгриде а размерность текста заранее я точно определить немогу дело в том что это будет описание к видеофильмам когда большие когда то маленькие потому я и использовал тип поля text в принципе я понимаю что правильно будет использовать ДБмемо но из компонентов которые я использовал изначально используется только ДБгрид!
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 11:44 [#3]:

Вы ошибаетесь! CHAR - поле символьного типа фиксированной длины. Если длина введенной строки меньше установленной, она дополняется пробелами до указанного значения(8000 символов), а вот VARCHAR - поле символьного типа ПЕРЕМЕННОЙ длины. Сохраняется только фактически введенная строка. Конечные пробелы могут отсекаться, что определяется с помощью установки параметра SET ANSI_PADDING. Максимальное количество символов в строке - 8000.
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 11:52 [#4]:

И по-моему, если сделать такую операцию с DBGrid-ом, то произойдет денормализация. Вам не кажется, что DBGrid после этого начнет подвисать? Если бы я такое сделал с DBGrid-ом где-нибудь в банке, то меня бы за такое сразу выгнали бы! Для серьезного проекта такой подход не должен применяться...
kensh1n

kensh1n (статус: Посетитель), 19 мая 2009, 12:01 [#5]:

"Для этого служит компонент DBMemo или DBRichEdit" спс!
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 12:07 [#6]:

Интересно перефразированная ВАМИ строчка это сарказм? Просто разбираться в чужих компонентах - адский труд, что и не всегда получится! Легче написать новый компонент...:)
kensh1n

kensh1n (статус: Посетитель), 19 мая 2009, 12:11 [#7]:

никакого сарказма не было просто когда я разрабатывал свой интерфейс у меня сразу были сомнения насчет использования только DBGrid'a вы развеяли последние сомнения за что я выражаю вам свою благодарность...
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 12:16 [#8]:

Спасибо...
7Ghost

7Ghost (статус: 1-ый класс), 19 мая 2009, 12:18 [#9]:

Это моя работа!
bek

bek (статус: Посетитель), 22 ноября 2009, 11:04 [#10]:

помогите, что не правильно! при нажатии обновить пишет Не правильно определен обьект Параметр.
ADOQuery1.SQL.Clear;
str :='update [Клиенты] set [Тип компании] ='''+ComboBox2.Text+''',[Компания]='''+Edit7.Text+''',[Адрес]='''+Edit8.Text+''',[Директор]='''+Edit9.Text+''',[РНН]='''+Edit10.Text+''',[Тел]:='''+Edit11.Text+'''where КлиентID='+DBLookupComboBox2.Text;

ADOQuery1.SQL.Add(str);
ADOQuery1.ExecSQL;

ADOTable1.Close;
ADOTable1.Open;

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:35
Выполнено за 0.03 сек.