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

Толку от UDF RAND() ?   Найти похожие ветки 

← →
kaif ©   (2003-10-15 15:47) [0]

В библиотеке ib_udf.dll есть такая функция:

DECLARE EXTERNAL FUNCTION rand
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT "IB_UDF_rand" MODULE_NAME "ib_udf";

Попытка соорудить с ее помощью что-то вроде случайных цен в справочнике товаров:

update goods set price = rand()

назначает всем товарам случайную, но одинаковую цену.

Я хочу понять, как народ использует rand() и использует ли вообще?


← →
kaif ©   (2003-10-15 15:53) [1]

Я даже попытался так:

create procedure update_goods_prices
as
declare variable id integer;
declare variable price decimal(8,2);
begin
for select id from goods
into :id
do
begin
price = 100 + 200 * rand();
update goods
set price = :price
where id = :id;
end
end

==================
execute procedure update_goods_prices
==================
Пофиг! все цены ОДИНАКОВЫЕ.

Что делать?


← →
Vlad ©   (2003-10-15 15:56) [2]

Продавать товары по одинаковой цене.
Это лучше, чем по случайной :)


← →
Johnmen ©   (2003-10-15 16:00) [3]

>kaif ©

Я не использую, но предполагаю, что надо перед вызовом rand сделать инициализацию генерации случ. чисел. Д.б.соответствующая ф-ия.
По кр. мере в RFUNC именно так.


← →
kaif ©   (2003-10-15 16:21) [4]

Vlad © (15.10.03 15:56) [2]
:)

2 Johnmen © (15.10.03 16:00) [3]
Я тоже так поначалу думал, но что-то в документации по UDF не видно никакой функции, инициализирующей RAND. Все, что там написано к RAND это:

Returns a random number between 0 and 1. The current time is used to seed the random number generator.

Видимо под current time понимается время старта транзакции (больше мне в голову ничего не приходит).

А RFUNC это что?


← →
Johnmen ©   (2003-10-15 16:36) [5]

>kaif ©

Это библиотека UDF"ов. Я ей пользуюсь...:)



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

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



Память: 0.46 MB
Время: 0.024 c
3-40816
angel2000
2003-10-22 11:17
2003.11.13
ВЫделение строки в гриде


1-41333
[BAD]Angel
2003-10-30 23:07
2003.11.13
Проверка существования файла... :(


1-41556
Alexandr!
2003-11-04 11:40
2003.11.13
Qreport


3-41019
Wudu
2003-10-15 20:44
2003.11.13
Как создать пустую InterBase базу


6-41861
Юрий Краснощек
2003-09-05 12:18
2003.11.13
Как узнать включен, ли компьютер в лок. сети. Не пингуя




   Наверх