Главная страница
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.48 MB
Время: 0.012 c
7-72567
_toltec
2002-11-14 02:06
2003.01.23
Имя функций в DLl


6-72447
IlyaGer
2002-11-26 18:49
2003.01.23
Как вызвать почт. клиент, установить емайл и прицепить файл?


14-72485
Andrey-k
2003-01-06 00:34
2003.01.23
TAdvStringGrid v2.4


3-72096
Criptus
2002-12-26 12:45
2003.01.23
Список активных пользователей


1-72212
TAN
2003-01-14 12:52
2003.01.23
DBGrid