Вниз
Скачать: 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.049 c
2-1341647784
Дмитрий2
2012-07-07 11:56
2013.03.22
Помогите с запросом


2-1331397815
crank
2012-03-10 20:43
2013.03.22
Выбор БД


15-1345846617
wl
2012-08-25 02:16
2013.03.22
Книга


15-1333528430
Дмитрий С
2012-04-04 12:33
2013.03.22
SizeOf( ж );


15-1351367113
заводчанин
2012-10-27 23:45
2013.03.22
CNC Mazatrol




   Наверх