bonjour,
je veux creer une petite UDF en delphi me permettant de renvoyer un float . Le parametre passée à l'UDF est également un float. j'ai fait un test en ecrivant une fonction qui ramene la valeur absolu. ça donne cela :
declaration UDF
fonction delphi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DECLARE EXTERNAL FUNCTION ABS_1 FLOAT RETURNS FLOAT BY VALUE ENTRY_POINT 'UDF_abs' MODULE_NAME 'maDLL'
voila rien de bien compliqué...Pourtant si j'effectue la requete suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 function UDF_abs(avaleur: double): double; cdecl; export; var wval : string; begin //wval := floattostr(avaleur); //MessageDlg('DLL ' + wval, mtWarning, [mbOK], 0); if avaleur < 0 then result := avaleur*(-1) else result := avaleur; end;
j'obtiens 0,000 ??? La valeur passée semble correspondre à l'adresse mémoire ...pourtant j'ai trouvé des exemples d'UDF avec return FLOAT by value...?????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select abs_1(4) from rdb$database
Qqun peut il m'éclairer ?
Partager