Главная страница
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.018 c
9-93315
r0n1n
2003-07-16 03:08
2004.01.29
Модели...


1-93477
UNick
2004-01-15 17:30
2004.01.29
Где OnClick у


14-93686
ghg
2004-01-05 16:31
2004.01.29
сшивка нескольких mpg-ов в один


3-93390
pashtet
2003-12-30 14:13
2004.01.29
TtreeView


8-93592
Zheks
2003-08-26 15:35
2004.01.29
растягиваемый круглый Shape