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

Проблема с random   Найти похожие ветки 

← →
badaxe ©   (2003-01-15 15:37) [0]

Приветствую.
Возникла такая проблема:
при помощи ф-ции random заполняю массив номерами записей в рекордсете.

randomize;
for j:= 1 to 5 do
begin
a[j]:=random(query.RecordCount);
end;

Данный кусок выполняется без проблем, при закрытии приложения возникает ошибка "Access violation at address 00401D41 in module qqqq.exe"
А если закомментировать строчку с random, то все закрывается нормально.
Где тяпка?


← →
badaxe ©   (2003-01-15 15:52) [1]

ну хоть намекните... :(


← →
Digitman ©   (2003-01-15 15:53) [2]

однозначно, что "тяпка" - не в Random()

- либо объект Query не существует
- либо массив a[] не существует
- либо выход за пределы памяти, распределенные тобой под массив a[]

p.s. наивно полагать, что св-во query.RecordCount будет меняться в ходе выполнения такого цикла, если ты этого ожидаешь


← →
badaxe ©   (2003-01-15 15:58) [3]


> p.s. наивно полагать, что св-во query.RecordCount будет
> меняться в ходе выполнения такого цикла, если ты этого ожидаешь

Вовсе нет... все что мне нужно - это случайным образом выбрать несколько записей из рекордсета...

> - либо выход за пределы памяти, распределенные тобой под
> массив a[]

а как выяснить так ли это ?


← →
gsu ©   (2003-01-15 16:03) [4]

>> Данный кусок выполняется без проблем
странно, а все range cheking стоят ?
и проверь, как создаешь все объекты (массив)


← →
Digitman ©   (2003-01-15 16:06) [5]


> все что мне нужно - это случайным образом выбрать несколько
> записей из рекордсета


глупей не придумаешь - всякий раз для формирования параметра ф-ции Random() обращаться к объекту Query лишь затем, чтобы в рез-те получить одно и то же зн-е св-ва RecordCount )


var
rc: Integer;
...
rc := query.RecordCount
for j:= 1 to 5 do
begin
a[j]:=random(rc);
end;



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

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



Память: 0.46 MB
Время: 0.014 c
4-72605
MikeZ
2002-12-08 17:44
2003.01.23
Как убить программу, спрятаную в трее?


3-72115
Vitalik S
2002-12-29 11:02
2003.01.23
Глюк с Хранимой процедурой


6-72428
Mirolex
2002-11-13 04:15
2003.01.23
Как программно отправить email...


6-72457
dkDimon
2002-10-31 13:46
2003.01.23
Ожидание Инета


14-72459
Total
2003-01-04 18:32
2003.01.23
Total Commander




   Наверх