Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


whoim ©   (2012-02-04 17:56:00) 



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'), а вот вторую размерность массива нужно сделать динамической в зависимости от количества записей..

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

Отчего?


Anatoly Podgoretsky   (2012-02-05 13:03:00) [1]

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


whoim   (2012-02-04 18:05:00) [2]

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

+2


whoim   (2012-02-04 17:58:00) [3]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо