Вниз
Скачать: CL | DM;

динамический двумерный массив of integer: не могу найти ошибку..   Найти похожие ветки 

← →
whoim ©   (2012-02-04 17:56) [0]



blocks_array: Array[1..1024] of Array of integer;

...

ADOQueryBlocks.SQL.Text := "SELECT BlocksAndLeds.* FROM BlocksAndLeds WHERE (BlocksAndLeds.block_num <> NULL) AND (BlocksAndLeds.led_num <> NULL) ORDER BY BlocksAndLeds.block_num";
ADOQueryBlocks.Open;
while (NOT ADOQueryBlocks.Eof) do
   begin
   SetLength(blocks_array[ADOQueryBlocks.FieldByName("block_num").AsInteger], High(blocks_array[ADOQueryBlocks.FieldByName("block_num").AsInteger]) + 1);
   blocks_array[ADOQueryBlocks.FieldByName("block_num").AsInteger][High(blocks_arra y[ADOQueryBlocks.FieldByName("block_num").AsInteger])] := ADOQueryBlocks.FieldByName("led_num").AsInteger;

   ADOQueryBlocks.Next;
   end;



Суть - к фиксированной части массива путь лежит через известные ADOQuery.FieldByName("block_num"), а вот вторую размерность массива нужно сделать динамической в зависимости от количества записей..

Ошибка обращения к памяти по ячейке вылетает на этапе присвоения значения..

Отчего?


← →
whoim ©   (2012-02-04 17:58) [1]

Текущие записи в таблице выглядят так:

http://my.jetscreenshot.com/1474/20120204-x1jw-24kb


← →
whoim ©   (2012-02-04 18:05) [2]

ага.. поа не напишу - не вижу входа..
SetLength(blocks_array[ADOQueryBlocks.FieldByName("block_num").AsInteger], High(blocks_array[ADOQueryBlocks.FieldByName("block_num").AsInteger]) + 2);

+2


← →
Anatoly Podgoretsky ©   (2012-02-05 13:03) [3]

Ошибка прилетела и прокищала, я вылетаю



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.045 c
15-1350574326
ES
2012-10-18 19:32
2013.03.22
TImageList, ссылка с другой формы


6-1247157100
axis_of_evil
2009-07-09 20:31
2013.03.22
TidSMTP


2-1329910656
SIV5000
2012-02-22 15:37
2013.03.22
Копирование файлов ОС


2-1340358517
webpauk
2012-06-22 13:48
2013.03.22
Присвоение TNotifyEvent


2-1342616491
Максим
2012-07-18 17:01
2013.03.22
как отсортировать данные, не занося ВСЕХ их в массивы?




   Наверх