Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];

Вниз

Как выташить инфу из TMemoField   Найти похожие ветки 

 
ArhAngeL2   (2002-08-13 16:33) [0]

у меня проблема есть поле TMemoField. Мне нужно его обработать. Пытаюсь выташить строку через (поле).AsString или через (поле).Varible на этой строке выдаеться ошибка:
Cannot access field "text" in a filter
Таблица Paradox
Посоветуйте как мне выташить оттуда инфу...


 
Mike Kouzmine   (2002-08-13 16:39) [1]

Что значит вытащить и что значит обработать? Приведи текст


 
SaS13   (2002-08-13 16:45) [2]

ArhAngeL2 © (13.08.02 16:33)
А НД отфильтрован?


 
3JIA9I CyKA   (2002-08-13 17:38) [3]

Assign
Ку?


 
ArhAngel2   (2002-08-13 18:12) [4]

Я ищу строку в поле memo. Хочу отфильтровать таблицу.
Это происходит в OnFilterRecord TTable


 
3JIA9I CyKA   (2002-08-13 18:35) [5]

Assign ку или не ку?


 
ArhAngel2   (2002-08-13 19:14) [6]

Assign не ку


 
3JIA9I CyKA   (2002-08-13 19:16) [7]

Тады ку-ку.


 
Ig Li   (2002-08-13 21:48) [8]

Кто-нибудь даст дельный совет, а то одни эмоции.


 
Виталий Панасенко   (2002-08-14 08:51) [9]

Попробуй передать его компонету TMemo и обрабатывай


 
Mike Kouzmine   (2002-08-14 09:26) [10]

Так приведи код, что спрашивать?


 
Igel   (2002-08-14 11:20) [11]

У меня была схожая ситуация...
Нужно было в DBGrid-e отразить содержимое поля МЕМО. Решил так:

1. Событие GetText поля TTable(думаю и TQuery пойдет)

procedure TDM_telefone.GetTextFieldMemo(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
//Меняем возвращаемое полем значение
Text:=GrabMemoAsString(TmemoField(sender));
end;


2. Функция описана выше... :)) Преобразует в строку

function GrabMemoAsString(TheField:TmemoField):string;
var stream:TADOBlobStream;
MemSize:integer;
Buffer: PChar;
begin
if TheField.IsNull then Result:="" else
begin
{создаем поток от поля
Я использовал компоненты АДО, поэтому использовал
TADOBlobStream. Базовый пример был с TBlobStream
}
stream:=TADOBlobStream.Create (TheField, bmread);
with stream do
try
//Память, занимаемая потоком (размер потока)
MemSize := Size;
//На свободную
inc(MemSize);
// выделяет область памяти и возвращаем указатель
Buffer := AllocMem(MemSize);
try
//Читаем данные из потока в выделенную область памяти
Stream.Read(Buffer^, MemSize);
//Возвращаем в строковом виде
result:=string(Buffer);
finally
FreeMem(Buffer, MemSize);
end;
finally
free;
//Меняем спец символы на пробелы.
while Pos(#10, result)> 0 do result[Pos(#10, result)]:=" ";
while Pos(#13, result)> 0 do result[Pos(#13, result)]:=" ";
end;
end;
end;


З.Ы. Из базового примера кроме идеи ничего нет... Сначала не врубался пока не обратил внимания на конструкцию:
procedure TDM_telefone.GetTextFieldMemo(Sender: TField;
var Text: String; DisplayText: Boolean);
Тогда понял, как текст возвращается преобразованный ... :))
Учимся потихоньку!! :))


 
Ig Li   (2002-08-14 12:07) [12]

Отобразить МЕМО поле вобщем то не проблема. Как отфильтровать таблицу.
Ситуация такая:
Есть поле Мемо,например "Характеристика", как отобрать все данные в "Характеристике" которых встречается слово, например "Спокойный".


 
ArhAngel2   (2002-08-14 21:07) [13]

Не получается все тажа самая ошибка...
Наверное Table блокирует memo во время фильтрации...
Вне этого события все нормально но именно в этой процедуре глючит...
Пришлось немного схитрить. Чтобы отфильтровать таблицу я добавил поле TBooleanField и если запись удовлетворяет условию то True иначе False
и поставил стандартную фильтрацию (таблица).Filter="(поле)=Trye"
и перебераю по каждой записи.
Потерял в производительности и в размере БД,но зато работает
ЕСЛИ КТО-ТО ЗНАЕТ ЕЩЕ СПОСОБ, ПОЖАЛУЙСТА, НАПИШИТЕ!!!




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

Форум: "Базы";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
3-13946
3asys
2002-08-12 23:59
2002.09.05
Record is deleted


3-13915
nic418
2002-08-15 10:32
2002.09.05
Help! Создание сложного индекса для .DBF - файла с BDE


14-14246
Malder
2002-08-07 00:22
2002.09.05
UBPFD


3-13966
RDA
2002-08-16 10:07
2002.09.05
Структура базы данных в 1С


1-14113
Бегинер
2002-08-23 19:31
2002.09.05
Свойства объектов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский