DBMaker 5.4 汾WIN32 UDFĵ

1. 
2.  UDF dllļķ
3. ʾ - ѯUDF


1. 

UDF - ûԶ庯
Ŀǰ, DBMaker֧ûWIN32ƽ̨ϴԶ庯
ûԲCԴļģĸʽUDFΪUDFʹDBMaker
ǶƣֻҪDBMakerдUDF
DBMakerǶʽһΪû
UDFԴļʹUDF dllļṩ˿-dmudf.libͨʽ
ǻṩһģmakeļһģCԴļûο



2.  UDF dllļķ

ṩtemplate.cģmakeļudf60.mak΢VC++ 6.0ûο
udf60.makΪ˵

udf60.makȷdmudf.libļġ֮Ҫ
ʹVisual C++ṩIDEбҪ޸ġ

 1. makeģļudf60.makϣ·£ϲ 

 2. ѡ <ļ> -> <򿪹̨> makeļ̨̹

 3. <̨̹>ѡ<鿴ļ>, Ȼѡtemplate.c
        Ȼɾťɾ
        ɺڹѡ<>ѡ<ļ>Լ
        .cļ뵽̨̹еmakeļ 

 4. <> -> <>,WIN32Ϊ
        ڹõ<>,Ըı·makeļģУ60Deb
        Ϊм·

 5. ڹ<><>Уֱ޸<ļ>ı
        dllļơ޸</ģ>ֵ֧dmudf.lib
        ļ·ΪԼĹ·
        
Ĺ̺ͿԴԼdll makeļˡʹƵĲ裬
ҲԴWIN32ʽdllļᵽãṩ
ԭֵ

ע⣺ܷǳʹVC ++԰Ĳдdll makeļ
ֻע⽫ṹԱ4ֽڶ롣VC ++ 4.2 IDĘ̹ѡC/C++Ȼ
Իѡ<>ῴṹԱѡȻѡ4ֽڼɡ



УģmakeļΪͱдdllķ

template.cУסҪinclude libudf.hDBMakerṩ
ĺ

                                                               
 ʾ:                                                       
   __declspec(dllexport) datatype YOUR_FUNCTION( ...... )      
                                                               
 ߣҲڹ̨̹дһdefļ
 

ɺͿԴ԰ʽdllļˡɹ
õudf60.dllļ
 

ע 1. ʹtemplate.cΪmakeļеĬCļҪ
        makeļɾtemplate.cȻԼCļmakeļ
        udf60.mak̨̹ᵽķ

ע 2. UDFĺƱΪдĸ


3. ʾ - ѯUDF


˵ʹUDF

ʾ

һݿΪDMDEMODMDEMO,һt1ṹΪ
(c1 int, c2 char(10))t1һЩݡ

dmSQL> select * from t1;

    c1          c2     
=========== ========== 
         10 1          
         20 2          
         30 3          

3 rows selected


 1. ͨDBMakerֵ֧template.c,ǳɹudf60.dll
 2. ļdmconfig.ini, DMDEMOһ˵UDF dllļַ

        [DMDEMO]
        DB_DBDir = D:\UDFDEMO
        DB_FODIR = D:\UDFDEMO\FO
        DB_LBDIR = D:\UDF\60Deb <- 
        ^^^^^^^^^^^^^^^^^^^^^^^
 3. ݿDMDEMO,Ȼ󴴽UDF

[﷨] create function UDF_DLL_NAME.UPPERCASE_FUNCTION_NAME
          (FUNCTION_DATATYPE) RETURNS FUNCTION_OUTPUT_DATATYPE;

          УUDF_DLL_NAMEudf60 ,UPPERCASE_FUNCTION
          _NAMEINT2STR, FUNCTION_DATATYPEint,FUNCTION_OUTPUT
          _DATATYPEvarchar(11).

          create function udf60.INT2STR(int) RETURNS varchar(11);

 4. ѯUDFINT2STRĽ

[﷨] select UPPERCASE_FUNCTION_NAME(RELATED_TABLE_COLUMNNAME) from 
          RELATED_TABLE;
        
          Уݱt1ĽṹUPPERCASE_FUNCTION_NAME INT2STR, 
          RELATED_TABLE_COLUMNNAMEc1RELATED_TABLEt1.

          dmSQL> select INT2STR(c1) from t1;

          INT2STR(c1) 
          =========== 
          10          
          20          
          30          

          3 rows selected

 5. һԴһUDFSTR2INT


        dmSQL> create function udf60.STR2INT(varchar(11)) RETURNS int;

        dmSQL> select STR2INT(c2) from t1; 

        STR2INT(c2) 
        =========== 
                  1 
                  2 
                  3 

        3 rows selected
