Вниз
Скачать: 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.055 c
6-1264750451
Pavel
2010-01-29 10:34
2013.03.22
Многопоточность в Indy


15-1331135502
Jeer
2012-03-07 19:51
2013.03.22
С праздником Весны !


2-1339410261
Вася
2012-06-11 14:24
2013.03.22
id последней добавленной записи ???


6-1260272923
krisri
2009-12-08 14:48
2013.03.22
Сокеты


2-1339941974
ankazh
2012-06-17 18:06
2013.03.22
ShowModal




   Наверх