![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
В DBGrid не отображается знаечние поля. [D7, MySQL]
Jane © (2004-01-02 18:23:00)
Всем привет!
По какой причине в DBGrid не отображается содержимое текстовых полей. Т.е. у меня в моей БД (СУБД-MySql) есть поля.. разных типов. Так в DBGrid отображаются все значения полей.. кроме полей, имеющих тип text, вместо содрежимого он пишет: если нет значения (Memo); если же в поле чтот-то забито,т.е. есть значение есть, то (MEMO). С чем это может быть связано? и Как от этого избавиться? Т.Е. ЧТО делать??????
___Nikolay (2004-01-04 08:32:00) [1]Попробуй так:
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;
denisch79 (2004-01-03 19:49:00) [2]
А латинский набор оотображается? У меня такое было пока не прописал русские кодировки сервере и на клиенте, но как это делал помню смутно
Desdechado (2004-01-03 13:41:00) [3]
text - это тип для хранения текста неизвестной заранее длины, поэтому в гриде вполне логично их не отображать. Можно (и обычно так и делают) рядом с гридом поставить DBMemo, который и будет показывать содержимое мемо-поля текущей записи.
Все сразу не рекомендуют фетчить (т.е. в гриде показывать), поскольку траффик может катастрофически возрастать.
Jane (2004-01-02 20:44:00) [4]
Ксожалению DBGridEh не помог. или я не смогла его правильно настроить. Что бы можно было бы еще придумать? не подскажете? Я просто не понимаю почему TDBRichEdit отображает значение. Принцип его работы..
Дмитрий В. Белькевич (2004-01-02 19:26:00) [5]
Blob, он же memo - поле, содержащее данные произвольной длины.
Попробуй DBGridEh - он может memo поля отображать. Это, конечно, немного per rectum, но, вдруг поможет?
Jane (2004-01-02 19:05:00) [6]
в Мускуле есьт поля и типа blob и типа text. Правда я не знаю что это знчит. я никогда не работала с типом blob и в чем его отличие. Самое что интересное что компонент TDBRichEdit видит знаечния этих полей. Мне просот необходимо чтобы визуально эот вес выглядела в виде таблицы. И не хотелось заморачиваться сильно. Нельзя ли как-нить в DBGrid все сделать?
Дмитрий В. Белькевич (2004-01-02 18:54:00) [7]
Никогда не работал с MySql, у неё поля типа text и blob/memo различаются? Если нет - тогда ищи грид, который мемо-поля может отбражать. Например, dbgrideh.