![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Помогите правильно записать 3-х мерный массив в таблицу БД...
Итак есть массив var store:array[1..L,1..N,1..M] of Integer; Есть база и таблица такого типа: (1 основное поле - дата (день), 2 поле для хранения этого массива) ... Код:
with FieldDefs do
begin
Add('date',ftDate,0, True); // date
Add('tab',ftBytes, SizeOf(store)*4, False); // array data
end;[/b]Код:
with Form1.dt2 do
begin
Insert;
FieldByName('date').AsDateTime := Form1.dtp1.date ; // date
FieldByName('tab').Value[1] := store[1,1,1]; //array
Post;
endКак можно правильно записать массив (желательно без цикла, одним махом весь массив в БД) ??? Я также пробовал менять типа поля на ftARRAY но не знаю как с ним работать: Код:
...FieldByName('tab').AsArrayof Integer (??) := store[];Последний раз редактировалось Admin, 30.05.2013 в 09:50. |
|
#2
|
||||
|
||||
|
А нафик такой изврат? В плоскую структуру 3-х мерку запихивать?
Но пускай так надо. У вас тогда каждая ячейка должна содержать не элемент, а одномерный массив элементов, а таким макаром: Код:
FieldByName('tab').Value[1] := store[1,1,1]вы получаете плоскую 2-мерную табличку. |
|
#3
|
|||
|
|||
|
Цитата:
FieldByName('tab').Value := store; ? да и как правильно все таки задать поле для моего массива? LMN:=L*M*N; // размер массива в байтах Add('tab',ftBytes, LMN*4, False); // 4 байта на INTEGER или так? Add('tab',ftArray(?), LMN*4, False); // 4 байта на INTEGER |
|
#4
|
||||
|
||||
|
У вас целочисленные данные. Создайте поле типа Blob и запихивайте туда третью размерность потоком. Считывайте так-же.
|
|
#5
|
|||
|
|||
|
Цитата:
А можно пример как мой массив запихнуть в поток? Попробовал Stream := TMemoryStream.Create; BlobStream:= TABSBlobStream(CreateBlobStream(FieldByName('tab') ,bmWrite)); Но одни ошибки... ![]() |
|
#6
|
|||
|
|||
|
Цитата:
Я бы не спрашивал, но в интернете нету примеров Вернее там миллиард копий дебильного примера в котором Блоп записывается в файловый поток и читается оттуда. А мне это совершенно не надо, у меня единая БД - 1 файл. А вот как 3-х мерный массив засунуть в поток(память) и оттуда в Блоб в таблицу - таких примеров нигде не нашел... ![]() |