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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2010, 00:31   #1
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию Сохранение текста типа Memo без создания отдельных файлов

Добрый вечер, очень нужна помощь. =(
Ситуация такая, программа выполняет ряд расчетов, результатом каждого из которых являются 9 небольших (50-70 байт) текстовых файлов. Пока количество расчетов было мало - все было нормально, сохранял просто во вложенных друг в друга папках. А программа-приемник нормально находила по заранее известному пути нужные файлы.
Сегодня столкнулся с глобальной проблемой такого подхода. В последнем проекте число расчетов возросло до 25000 (!), соответственно, в результате получилось 225000 файлов и туча папок. Работать с этим по итогу решительно невозможно, на диск записываться отказывается, WinRar такую массу проглатывать тоже не хочет.
Хотел упихать все это в несколько БД в виде таблиц, но оказалось, что поле memo сохраняется в отдельных файлах .mb, так что сократить обще количество файлов таким образом получится, максимум, в 9 раз (то есть, если записывать содержимое всех 9 текстовых файлов, являющихся результатом одного расчета в одну ячейку).
Посоветуйте, пожалуйста, как можно тут выкрутиться. Может быть есть возможность хранить текстовые документы в таблицах базы данных без создания отдельных файлов? Или еще какие-нибудь варианты?

Последний раз редактировалось Haladdin; 30.12.2010 в 00:39.
Haladdin вне форума Ответить с цитированием
Старый 30.12.2010, 00:34   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Что за БД, какой тип поля вы используете для хранения вашего Memo?
_Engine_ вне форума Ответить с цитированием
Старый 30.12.2010, 00:35   #3
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Что за БД, какой тип поля вы используете для хранения вашего Memo?
Таблица типа Paradox 7, тип поля - М (memo).
Haladdin вне форума Ответить с цитированием
Старый 30.12.2010, 00:39   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

В БД подход то другой, сохраняете в 1 таблице, просто в таблице есть ещё поля которые характеризуют запись. К примеру
поля
ID (идентификатор, аля счётчик), NOTE(описание, ну то как вы папки обзывали, возможно это не 1 поле, я же критерии не знаю), MEMO(собственно сама информация). Так вы и историю хранить сможете, и найти нужную запись, и всё в 1 месте))
ЗЫ парадокс не лучший выбор, но зато быстрая))

Последний раз редактировалось vovk; 30.12.2010 в 00:41.
vovk вне форума Ответить с цитированием
Старый 30.12.2010, 00:45   #5
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
В БД подход то другой, сохраняете в 1 таблице, просто в таблице есть ещё поля которые характеризуют запись. К примеру
поля
ID (идентификатор, аля счётчик), NOTE(описание, ну то как вы папки обзывали, возможно это не 1 поле, я же критерии не знаю), MEMO(собственно сама информация). Так вы и историю хранить сможете, и найти нужную запись, и всё в 1 месте))
ЗЫ парадокс не лучший выбор, но зато быстрая))
Да я просто кроме парадокса больше ничего не умею =\
Проблема с мемо в том что у меня в итоге получится, условно говоря одна или несколько таблиц, в которых будет в сумме 25000 ячеек типа memo, а для каждой ячейки создается отдельный файл .md. 25000 файлов, это, конечно, лучше чем 225000 но все равно много.
Haladdin вне форума Ответить с цитированием
Старый 30.12.2010, 01:00   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Говорю же не много таблиц а 1, и файл который создаётся тоже будет 1. Не или несколько а всегда 1 таблица. Создать 1 раз и работать только с записями.
vovk вне форума Ответить с цитированием
Старый 30.12.2010, 01:04   #7
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Говорю же не много таблиц а 1, и файл который создаётся тоже будет 1. Не или несколько а всегда 1 таблица.
А как же это
"mem0 - Строка символов произвольной длины. Поле типа Memo используется для хранения текстовой информации, которая не может быть сохранена в поле типа Alpha. Размер поля [1 - 240] определяет, сколько символов хранится в таблице. Остальные символы хранятся в файле, имя которого совпадает с именем файла таблицы, а расширение файла - mb"

Или если в таблице, грубо говоря, один столбец является полем типа memo, то создается только один файл .mb, вне зависимости от количества строк?
Haladdin вне форума Ответить с цитированием
Старый 30.12.2010, 01:05   #8
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от Haladdin Посмотреть сообщение
Да я просто кроме парадокса больше ничего не умею =\
Ну есть повод изучить что-нибудь посовременней
_Engine_ вне форума Ответить с цитированием
Старый 30.12.2010, 01:08   #9
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Ну да так и будет, все ваши данные будут хранится в 1 таблице,
Цитата:
Поле типа Memo
будет одно и соответственно файл *.mb тоже будет один.
количество файлов *.mb зависит не от количества записей, а от количества полей типа MEMO

Последний раз редактировалось vovk; 30.12.2010 в 01:11.
vovk вне форума Ответить с цитированием
Старый 30.12.2010, 01:10   #10
Haladdin
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Ну да так и будет, все ваши данные будут хранится в 1 таблице, будет одно и соответственно файл *.mb тоже будет один.
Это хорошая новость, попробую, спасибо!

Цитата:
Сообщение от _Engine_ Посмотреть сообщение
Ну есть повод изучить что-нибудь посовременней
Времени нет, увы =( Сроки жмут.

З.Ы. Еще вопрос в догонку, в Paradox 7 есть какое-нибудь ограничение по числу записей? Вот будет у меня таблица, скажем, с 50000 (или больше) записей - проблем не возникнет?

Последний раз редактировалось Haladdin; 30.12.2010 в 02:00.
Haladdin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение данных с Memo chepic Помощь студентам 4 22.02.2010 18:08
проверка изменений в Memo и сохранение Костян Пират Общие вопросы Delphi 5 20.03.2009 22:27
Сохранение текста (RichEdit) без формата Air Помощь студентам 2 06.08.2008 17:50