![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
динамический двумерный массив 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