Главная страница
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.021 c
14-93662
Knight
2004-01-07 23:50
2004.01.29
Курс доллара ЦБ РФ на 6 января:


3-93353
uu
2004-01-02 18:39
2004.01.29
Paradox ---> Interbase


14-93693
Nous Mellon
2004-01-06 12:22
2004.01.29
Видеоголоволомка :)


1-93456
Lkan
2004-01-16 08:03
2004.01.29
Хеш


1-93498
vlgrig1961
2004-01-19 09:01
2004.01.29
Как в TreeView писать итемы своим цветом