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

Вниз

В DBGrid не отображается знаечние поля.   Найти похожие ветки 

 
Jane   (2004-01-02 18:23) [0]

Всем привет!
По какой причине в DBGrid не отображается содержимое текстовых полей. Т.е. у меня в моей БД (СУБД-MySql) есть поля.. разных типов. Так в DBGrid отображаются все значения полей.. кроме полей, имеющих тип text, вместо содрежимого он пишет: если нет значения (Memo); если же в поле чтот-то забито,т.е. есть значение есть, то (MEMO). С чем это может быть связано? и Как от этого избавиться? Т.Е. ЧТО делать??????


 
Дмитрий В. Белькевич ©   (2004-01-02 18:54) [1]

Никогда не работал с MySql, у неё поля типа text и blob/memo различаются? Если нет - тогда ищи грид, который мемо-поля может отбражать. Например, dbgrideh.


 
Jane   (2004-01-02 19:05) [2]

в Мускуле есьт поля и типа blob и типа text. Правда я не знаю что это знчит. я никогда не работала с типом blob и в чем его отличие. Самое что интересное что компонент TDBRichEdit видит знаечния этих полей. Мне просот необходимо чтобы визуально эот вес выглядела в виде таблицы. И не хотелось заморачиваться сильно. Нельзя ли как-нить в DBGrid все сделать?


 
Дмитрий В. Белькевич ©   (2004-01-02 19:26) [3]

Blob, он же memo - поле, содержащее данные произвольной длины.
Попробуй DBGridEh - он может memo поля отображать. Это, конечно, немного per rectum, но, вдруг поможет?


 
Jane   (2004-01-02 20:44) [4]

Ксожалению DBGridEh не помог. или я не смогла его правильно настроить. Что бы можно было бы еще придумать? не подскажете? Я просто не понимаю почему TDBRichEdit отображает значение. Принцип его работы..


 
Desdechado ©   (2004-01-03 13:41) [5]

text - это тип для хранения текста неизвестной заранее длины, поэтому в гриде вполне логично их не отображать. Можно (и обычно так и делают) рядом с гридом поставить DBMemo, который и будет показывать содержимое мемо-поля текущей записи.
Все сразу не рекомендуют фетчить (т.е. в гриде показывать), поскольку траффик может катастрофически возрастать.


 
denisch79   (2004-01-03 19:49) [6]

А латинский набор оотображается? У меня такое было пока не прописал русские кодировки сервере и на клиенте, но как это делал помню смутно


 
___Nikolay ©   (2004-01-04 08:32) [7]

Попробуй так:


procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect:
TRect;
Field: TField; State: TGridDrawState);
var
P: array [0..1023] of Char; { MemoField buffer }
BS: TBlobStream;
S: string;
begin
if Field is TMemoField then
with (Sender as TDBGrid).Canvas do
begin
{ Table1Notes is the TMemoField }
BS := TBlobStream.Create(Table1Notes, bmRead);
FillChar(P, SizeOf(P), #0);
BS.Read(P, SizeOf(P));
BS.Free;
S := StrPas(P);
{ remove carriage returns & line feeds }
while Pos(#13, S) > 0 do S[Pos(#13, S)] := " ";
while Pos(#10, S) > 0 do S[Pos(#10, S)] := " ";
{ clear the cell }
FillRect(Rect);
{ fill cell with memo data }
TextOut(Rect.Left, Rect.Top, S);
end;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-93541
Valter
2004-01-18 00:39
2004.01.29
Listview добавление множества записей


1-93499
pASkdua
2004-01-16 18:14
2004.01.29
Как напечатат все содержимое SrcollBox-а?


1-93487
Луарвик
2004-01-15 13:35
2004.01.29
Копирование файла из буфера обмена на диск


3-93368
hfa
2004-01-02 13:01
2004.01.29
Oracle Servers


3-93338
NickNaz
2004-01-04 20:15
2004.01.29
отчет Quick Rep