Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поле типа Memo - при больших объемах ошибка! [D5, dBase, FoxPro]


Fishka ©   (2004-11-19 12:36:00) 

Заказчики стали работать с программой и вводить текстовую информацию. Из документа, созданного в Word-е, пытались копировать текст и сохранять. Примерно листов 8 сохраняется без проблем, а вот при большем объеме ничего не сохраняется и вываливается ошибка, где посылают по адресу... У заказчиков Pentium 1 и памяти 32 Мб.
Что мне делать? Что и как исправлять? Реально до 25 листов документа надо держать в поле dbf-файла.


YurikGL   (2004-11-22 12:44:00) [1]

Советую копировать не через буфер а подсоединяться через ole

далее что-то типа

vr1,vr2:olevariant;

vr1:=1;
vr2:=WordApplication1.ActiveDocument.Characters.Count;
dataset.fieldbyname('поле memo').value:=WordApplication1.ActiveDocument.Range(vr1,vr2).Text;


janb   (2004-11-22 11:52:00) [2]

Ты возьми свою прогу и протестируй сам на эти самые кавычки скобки и т.д. с малом текстом большим текстом и т.д. Можеть тебе удастся найти ошибку


sniknik   (2004-11-22 11:29:00) [3]

кроме ограничений
> Fishka   (22.11.04 10:47) [10]

> Coхраняю: insert into .....
> и список полей, в т.ч.
> Query1.SQL.Add(QuotedStr(Memo.Text));

ну допустим из этого понятно как на самом деле ты сохраняеш (аткрывающую/закрывающую скобки допустим ранее/позднее внес)
но что будет если в тексте встречается кавычка? (что при большом обьеме очень вероятно)
например в Memo.Text коротеоткий текст "это кавычка ' правда?"
в запросе поимеем (допустим одно поле вносится)
insert into ..... ..... ('это кавычка ' правда?')
(или везде такая ")
как думаеш сработает? а если базу поменять?

> попробовать по-другому сохранять.
параметр.


ocean   (2004-11-22 11:21:00) [4]


> На экране Memo (не DBMEMO)


Смотрю HELP по TMemo: ограничение 64 К. Все же предлагаю подумать о другом визуальном элементе. Можно сделать кнопку с чем-то вроде:
Fields[...].AsString := Clipboard.AsText;


Fishka   (2004-11-22 10:47:00) [5]

Coхраняю: insert into .....
и список полей, в т.ч.
Query1.SQL.Add(QuotedStr(Memo.Text));

Мысль хорошая: попробовать по-другому сохранять.
А конкретнее? Edit+Post? Потоком?


janb   (2004-11-22 10:27:00) [6]

1. Фишка с акссесом я сам тоже не работал :( просто слышал что она стабильнее некоторых баз даных

2. а как ты сохраняешь в базу
может из-за этого он тебя ... может тебе реализовать это по другому?


Fishka   (2004-11-22 10:18:00) [7]

На экране Memo (не DBMEMO), который надо сохранить в поле типа Memo dbf-файла. И при больших объемах меня посылают по адресу...
Вопрос: как избежать этой ошибки?


ocean   (2004-11-22 09:56:00) [8]

Я, например, так и не понял: речь о поле Memo, а не компоненте VCL. Что же там на экране? DBMemo или Grid? Думаю, что без VCL тут все же не обходится
Так что предлагаю показать на экране более подходящий визуальный элемент, тот же RichEdit (не знаю, действительно ли он не имеет ограничений), а сохранял в базу самостоятельно.


Fishka   (2004-11-22 09:30:00) [9]

1. У меня почти нет опыта работы с Аксессом. Аксесс нормально работает на таких слабых машинах? Аксесс стабильно работает?
Коннектиться через ADO? А если не будут устанавливаться драйвера?
2. Эта программа довольно большая, и переделка займет много времени. Порядка 40 справочников, не считая вводимых пользователями данных.
Хотелось бы остаться на dbf.


janb   (2004-11-22 09:06:00) [10]

Fishka   (22.11.04 08:52) [4]  если думаешь что все дело в базе то может на другой базе попробуешь
на аксесовской например


Fishka   (2004-11-22 08:52:00) [11]

В компоненте Мемо при копировании виден весь текст. А вот при попытке сохранить в dbf-файл вываливается ошибка.
Мне кажется, что проблема в dbf-файле, и замена Мемо на RichEdit ничего не даст.
MORA   (19.11.04 13:23) [3]
Вроде как копируется текст, но там разные шрифты, выделение жирным....... Может, это и есть графика и т.п., и может,Вы и правы. А мне-то что делать???


MORA   (2004-11-19 13:23:00) [12]

я так подумал ,а может твои юзверя копируют не только текст, но и графику или другие элементы ,а при вставке и происходит ошибка...


MORA   (2004-11-19 12:54:00) [13]

>>[1]
Это у компонента Мемо 32К. А у поля, насколько я знаю,неограничено (по крайней мере, если верить хелпу).
Может, ты используешь Мемо, у к-рого 32К, дык понятно происхождение ошибки. Используй другой компонент, например [1]


ЮЮ   (2004-11-19 12:44:00) [14]

>У заказчиков Pentium 1 и памяти 32 Мб

а у Memo - только 32K. Вот такая несправедливость. Попробуй RichEdit вмест Мемо


Наверх

Титульная страница Поиск, карта сайта Написать письмо