Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2012, 23:24   #1
Serj93
 
Регистрация: 03.04.2012
Сообщений: 3
По умолчанию Запись больших строк в dbase

Всем доброго времени суток! Работаю с dBase через Table. Есть необходимость записывать строки большой длинны из поля Memo; тип поля ячейки таблицы ftString маловат, а при использовании ftWideString записывается только 1 символ, хотя размерность выставляю...
Код:
    with FieldDefs do
    begin
      Add('Number', ftInteger, 0, false);
      Add('Text', ftWideString, 2000, false);
    end;
Есть еще такой тип как ftMemo, но как в такую ячейку сохранить все поле не представляю... при обращении к полю AsМemo ведь нет а на стринг не реагирует...
Код:
Table1.Append;
Table1.FieldByName('Number').AsInteger:=SpinEdit1.Value;
Table1.FieldByName('Text').AsString:=Memo1.Lines.Text;
Table1.Post;
Что я не так делаю и как лучше сохранить объемные тексты из поля Мемо? А то с этими типами полей не знаю как разрулить, уже по всякому пробовал ...

Последний раз редактировалось Serj93; 03.04.2012 в 23:31.
Serj93 вне форума Ответить с цитированием
Старый 07.04.2012, 14:10   #2
Serj93
 
Регистрация: 03.04.2012
Сообщений: 3
По умолчанию

Фуххх, с вышеописанным разобрался. Оказывается в тип ftMemo очень даже все запивывается, только в DBGrid не выводится сам текст... а при считывании ...AsWideString работает. Ну кто же знал!??!)))

Теперь проблема в другом... как корректно удалить запись из таблицы? Находишь нужную строку (Locate или еще как) и Table1.Delete;? только в самих создаваемых файлах БД на диске всеравно остаются кусочки текстов с удаленной строки если через блокнот посмотреть... это нормально вообще?!
Serj93 вне форума Ответить с цитированием
Старый 07.04.2012, 16:24   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
диске всеравно остаются кусочки текстов с удаленной строки если через блокнот посмотреть... это нормально вообще?!
Да. это нормально.
на самом деле по стандарту в DBF файле первым в структуре записи идёт признак удаления записи (вообще, в нормальной программе работы с DBF можно получить эти удалённые записи и даже нужные восстановить (отменить удаление).
Чтобы окончательно и безвозратно уничтожить записи нужно сжать файл - открыть его в монопольном режиме и выполнить команду PACK (как это через BDE делается - не помню - погуглите).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.04.2012, 19:50   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
открыть его в монопольном режиме и выполнить команду PACK
Это если автору Фокспро известно.
Цитата:
как это через BDE делается - не помню - погуглите
А по-моему никак... Разве что новую таблицу создавать. DataBase Desctop кажись умел это делать
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.04.2012, 11:43   #5
Serj93
 
Регистрация: 03.04.2012
Сообщений: 3
По умолчанию

Спасибо за отзывы. Ну то что файлы захламлятся будут меня не оч сильно волнует, места на диске много
Программа сама под win7 пишется на RAD Studio XE; только когда запустил в виртуальной машине на винХР вылезла ошибка:
"An error occured while attempting to initialize Borland Database Engine (error $2108)"
и файлы БД не создаются... С чем это связано? в системе чего-то не хватает для работы с BDE?
Serj93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись строк в файл С++ zrtw Помощь студентам 0 22.12.2011 21:39
Путаница с типами для больших строк WennY Общие вопросы Delphi 5 02.09.2011 06:27
Запись и удаление строк YurIbr89 Помощь студентам 1 23.05.2011 21:39
Запись всех строк в одну. Lazio Помощь студентам 1 10.10.2009 21:44