![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Способ для хранения массива в поле... [D7, MSSQL]
HepB © (2005-07-29 20:08:00)Возникла потребность в хранении массива целых чисел, в моём случае в одной записи таблицы нужно сохранить 32 таких массива. Подскажите способ. Возможно ли это осуществить используя тип данных поля binary или varbinary? (MS SQL Server 2000)
HepB (2005-07-30 14:59:00) [21]>ну сделай id, num, val1, val2, ... val32
>ссылка по num будет указывать на все 32 массива...
главное - придумать как поместить в поле val1...valn массив.
HepB (2005-07-30 14:53:00) [22]Хорошо, с этим ясно, спасибо ;)
Так какой выбрать тип поля для поставленной задачи и как в Delphi с ним работать? Как я понимаю, по высказанным в этой ветке репликам, для записи нужно массив вогнать в поток, а потом поток вогнать в поле таблицы, для чтения наоборот. Напишите, пожалуйста, код для реализации этих операций, лучше - пример.
sniknik (2005-07-30 14:52:00) [23]> sniknik, нужно хранить в каждой записи 32 массива. Т.е. 1000 записей должны хранить 32000 различных массива.
все одно. ну пусть 32 масива в записи.
ну сделай id, num, val1, val2, ... val32
ссылка по num будет указывать на все 32 массива...
а 1000 * 255 записей такая структура выдержит с легкостью, даже задумываться не надо. и + основную, рабочую таблицу ит лишних полей разгрузиш.
sniknik (2005-07-30 14:43:00) [24]> код работы
http://www.yandex.ru/yandsearch?text=LoadFromStream+Delphi&stype=www
+ добавь в поиск этот название компонент через которые у тебя доступ быстрее найдеш.
sniknik (2005-07-30 14:37:00) [25]> В SQL Server 2000 нет никакого BLOB :(
есть, не там смотрел
в глоссарии смотрим
BLOB
See definition for:binary_large_object
идем по ссылке
binary large object
A piece of binary data that has an exceptionally large size (such as pictures or audio tracks stored as digital data), or any variable or table column large enough to hold such values. In Transact-SQL, a BLOB is stored in an imagecolumn. Sometimes the term BLOB is also applied to large character data values, such as those stored in textor ntextcolumns.
(это общий термин а не конкретный тип поля ;)
HepB (2005-07-30 14:37:00) [26]Нужно в поле типа binary или другой, поддерживаемый MSSQL Server 2000 загружать/выгружать массив a:array[1..255] of integer;
HepB (2005-07-30 14:29:00) [27]В SQL Server 2000 нет никакого BLOB :(
AlexWlad (2005-07-30 14:16:00) [28]Если BDE - смотри TBlobStream.
Для ADO - TBlobField.LoadFromXXXX.
HepB (2005-07-30 13:58:00) [29]Нужно в поле типа blob или binary загружать/выгружать массив a:array[1..255] of integer;
Anatoly Podgoretsky (2005-07-30 13:53:00) [30]Что ты хочешь?
HepB (2005-07-30 13:44:00) [31]sniknik, нужно хранить в каждой записи 32 массива. Т.е. 1000 записей должны хранить 32000 различных массива.
AlexWlad, не получилось найти :(
Закиньте в эту ветку код работы с массивом целых чисел и blob полем, пожалуйста.
sniknik (2005-07-30 11:37:00) [32]> DiamondShark не вник в вопрос.
не. это ты не вник в ответ. ;о)
что такое есть таблица как не масив записей...? (только из горизонтали он "развернут" вниз, в вертикаль (если показывать на бумажке хорошо получается ;о))))
ну вот и сделай себе дополнительную таблицу/массив с примерной структурой
id - автоинкремент, num - номер массива (от 1 до 32), val - значение.
а в своей таблице вместо поля binary или varbinary делай поле integer с указанием на номер массива - num.
может не так удобно будет сохранять/доставать "массивы" но зато будет проще доступ к его отдельным элементам, и возможнось обработки по значениям на SQL сервере. (вернее обрабатывать будет проше, а возможно то в любом случае)
AlexWlad (2005-07-30 11:04:00) [33]Тут недавно пробегали ветки про работу с BLOB через поток, через параметр СП - поищи, там довольно просто...
HepB (2005-07-30 01:36:00) [34]Спасибо, за советы. Если не трудно напишите код для примера на каждый способ. DiamondShark не вник в вопрос. З.Ы. массивы не более 255 элементов будут содержать.
DiamondShark (2005-07-29 23:47:00) [35]Способ очень простой:
Создаётся таблица, и связывается отношением.
Храни хоть двести миллионов массивов.
Anatoly Podgoretsky (2005-07-29 21:56:00) [36]AlexWlad © (29.07.05 21:30) [3]
в SQL 2005 размер varbinary размер 2 гб,
на текущий момент млжно использовать image размер до 2 гб
AlexWlad (2005-07-29 21:30:00) [37]Если не нужна сортировка, выборки и т.п. - BLOB. Впрочем, если влезешь в 8000 байт, то тогда можно и varbinary.
Виталий Панасенко (2005-07-29 21:25:00) [38]а в IB/FB/Yaffil это реализовано без вые....:-) (ща начнут клевать)
Fay (2005-07-29 20:15:00) [39]2 HepB (29.07.05 20:08)
Можно. Их даже можно получать substring-ом. Всё зависит от размера массива 8)