Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2013, 22:19   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию проблема с отображением данных поля MEMO в Delphi

привет всем, подключился из delphi XE к базе .accdb в этой базе есть поля типа MEMO и при подключении через adoconnection в этих полях стоит надпись (WIDEMEMO), как с этим бороться?как сделать так чтоб отображался текст который находиться в этих полях?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 30.04.2013, 22:24   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Если открыть как таблицу - никак. Если открыть как запрос - изменением типа возвращаемых значений, например с помощью функции MID(), извлекая часть строкового значения из поля MEMO
ReportCube вне форума Ответить с цитированием
Старый 01.05.2013, 01:26   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

не думаю что этот вариант мне подойдет при сотнях тыс записей
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 01.05.2013, 02:17   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

где стоит эта надпись?
eval вне форума Ответить с цитированием
Старый 01.05.2013, 10:28   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от betirsolt Посмотреть сообщение
не думаю что этот вариант мне подойдет при сотнях тыс записей
каким образом сотни тысяч записей могут запретить Вам воспользоваться предложенным способом?!
Вы бы попробовали сначала, потом уже конкретно смогли указать, что Вас устраивает или нет!
запрос будет выглядеть примерно так:
Код:
select Поле1, Поле2, Поле3, mid(ПолеМемо,1, 200) as PoleMMM
from ВашаТаблица
Хуже, если в этом поле находятся НУЖНЫЕ данные и их там много (текст документа, например).
Тогда Вам НЕ нужно отображать данное поле в DBGid (это же всё равно бессмыслено - зачем Вам колонка шириной в 500 /1000, 10000 или сколько там символов в поле/)!


Цитата:
Сообщение от eval Посмотреть сообщение
где стоит эта надпись?
в дбгриде, например...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.05.2013, 11:31   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
в дбгриде, например...
зачем в грид пихать километр странного текста, да еще в каждой записи?
это криво, ну если уж так приспичило в гриде то надо либо перебивать тип при подъеме из базы, либо искать пути переопределения отображения, типа OnDrawDataCell или чего там есть ..
eval вне форума Ответить с цитированием
Старый 01.05.2013, 15:44   #7
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Serge_Bliznykov
я использую dbgrid, и в этом поле у меня может быть примерно до 2тыс символов
Цитата:
каким образом сотни тысяч записей могут запретить Вам воспользоваться предложенным способом?!
я просто думаю что прога зависнет при этом, нет? вообще посоветуйте как лучше сделать клиент для работы с такой базой?может я не правильные инструменты использую?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 01.05.2013, 17:15   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я использую dbgrid, и в этом поле у меня может быть примерно до 2тыс символов
Тогда рекомендую их отображать в DBMemo а не в гриде.
Вот дедовские способы кстати:
http://delphiworld.narod.ru/base/dbg...mo_fields.html
http://delphiworld.narod.ru/base/memo_in_dbgrid2.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.05.2013, 12:39   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure TFrameXX.ADODataSet1AfterOpen(DataSet: TDataSet);
begin
 self.ADODataSet1.FindField('shortname').OnGetText:=self.doGetMemoText;
  self.ADODataSet1.FindField('fullname').OnGetText:=self.doGetMemoText;  
end;

procedure TFrameXX.doGetMemoText(sender: TField; var Text: string; displaytext: boolean);
begin
  text:=sender.AsString;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с отображением munhauz Общие вопросы Delphi 2 24.01.2013 01:30
Проблема с отображением кодировки в Базе Данных Lindemann66 C/C++ Базы данных 2 02.08.2011 15:54
Проблема с отображением. Simel HTML и CSS 1 07.01.2011 01:57
Проблемы с отображением кирилицы в Memo VHomer Компоненты Delphi 12 07.12.2010 20:18
Проблема с отображением текста ALR Свободное общение 0 18.02.2007 20:08