Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: 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 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
3-72054
Darkwin
2003-01-04 22:29
2003.01.23
оптимизация


6-72431
Konsul
2002-11-24 15:22
2003.01.23
Dial-up


3-72092
sizmrebi
2002-12-27 13:45
2003.01.23
MasterQuery


3-72146
moxx
2003-01-03 15:51
2003.01.23
Вывод картинок из базы данных


3-72165
Black Cat
2003-01-02 11:45
2003.01.23
ORA-04021 (таймаут операции блокировки)