Avatar billede searchz Nybegynder
19. januar 2002 - 15:44 Der er 2 kommentarer

tilfældige tal

Jeg har siddet for sjov og rodet lidt med InterBase 6.0 og stødt på en lidt sjov ting...
jeg har flg. i en stored procedure:

CREATE PROCEDURE SP_TEST returns (T double precision)
AS
DECLARE VARIABLE p varchar(255);
DECLARE VARIABLE r double precision;
DECLARE VARIABLE i integer;
BEGIN
    i=0;
    while(i<100) do
          begin
                r=0;
                r = rand();
                t=r;
                i=i+1;
                suspend;
          end
END

ovennævnte er ikke færdigt endnu men problemet er funktionen RAND() i UDF_LIB til Linux... i ovennævnte kode er det \"tilfældige\" tal det det samme i samtlige 100 rows der returneres, altså ikke en tilfældig serie.

Skyldes dette parseren i interbase, at kaldet i virkeligheden kun udføres engang for optimeringens skyld? idet at et enkelt kald i en anden stored procedure der bliver kaldt 100 gange rent faktisk generer 100 tilfældige tal?
Avatar billede martinlind Nybegynder
19. januar 2002 - 18:25 #1
du skal også køre en randseed, hvis den findes ( det burde den )

/Martin
Avatar billede searchz Nybegynder
19. januar 2002 - 23:39 #2
Der er ingen randseed i det UDF library.

hvorvidt programmøren har \"husket\" at tilføje den ved jeg ikke da jeg downloadede en binær udgave.

Jeg tror jeg vil lave noget multiplikation med millisekunder istedet for, for at løse problemet her og nu!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester