 ûԶ庯
-----------------------------
1 ûԶ庯(UDF)ļĿ
2 WindowsUDF
3 UNIXUDF


1 ûԶ庯(UDF)ļĿ
--------------------------------------------------
    :UDF\md5

    Ŀ:    
        ÷UDFMD5DATAMD5FILEַ
        ļϢժҪָƣchecksumMd5ҪһȵϢ
        һ128λϢժҪļ裬ܲͬ
        ϢҪϢԤȸϢժҪҲԲκϢMD5
        ҪӦǩ磬ڹ׼ϵͳRSAһ˽׶
        ļ֮ǰһְȫģʽļѹ
 
 
    : UDF\regex

    Ŀ:
        ÷UDF REGEXPֳ֧ıʽʽ﷨
        ҪPerl 5
        

2 WindowsUDF
-----------------------------------
    رע:
        ܷǳʹVC ++԰Ĳдdll makeļ
        ҪעҪṹԱΪ4ֽڡ
        
    Build:
        1. ʹ΢C(Visual C ++ 6.0 ݵı)
        2. ѡ񴴽'̬ӿ'(DLL)
        3. 'Include Files'·'C:\DBMaker\5.4\Include'
          'C:\DBMaker\5.4\Samples\udf\md5'
        4. 'Library Modules' ·'C:\DBMaker\5.4\LIB'
        5. ӿģ'dmudf.lib'
        6. ѡBuildļ md5.dll

    ִmd5:
        1. ݿˣӹؼDB_LBDIRָ·磬
          
            [DBSAMPLE5]
            DB_LBDIR=C:\DBMaker\5.4\samples\database        ;  WIN32ƽ̨     

        2. ļmd5.dllݿlib·

        3. ݿͻˣdmSQL

        4. ִSQLӵݿDBSAMPLE5

             dmSQL> connect to 'DBSAMPLE5' 'SYSADM';

        5. ûԶ庯

             dmSQL> create function md5.MD5DATA(string) returns string;
             dmSQL> create function md5.MD5FILE(string) returns string;

        6. ú
        
             dmSQL> select md5data('a string') from SYSINFO;
             dmSQL> select md5file('a full path filename') from SYSINFO; 

    ִregex:
        1. ûԶ庯

             dmSQL> create function regex.REGEXP(string, string) returns int;

        2. ú
           га'trigger'ı
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/trigger/')=1; 
           
           га'trigger'ıִСд
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/trigger/i')=1;
           
           гֽı
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/\d$/')=1; 
           
           гa, b,  cͷıִСд
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/^[a-c]/i')=1; 


3 UNIXUDF
--------------------------------
    Build:
        1. ļṩʲô 'cc'

        2. û'dbmaker'Ŀ¼£inlcude pathõ
           'inlcude'·C磺
           
             % cc -fpic  -I. -I/APP_HOME/include -c md5c.c md5hl.c

        3. md5.oӵڿͻ-ģʽ¼صĹģ飬磺
           
             % ld -Bshareable -o $@ md5c.o md5hl.o

    ִmd5:
        1. shell'make'

             % make

           ļmd5.so  md5testУmd5.soDBMaker 
           ݿʹõĹģ飬md5testǿʱִļĹ
           иٺ͵ԡ
                   
         2. ݿˣӹؼDB_LBDIRָ·, 

            [DBSAMPLE5]
            DB_LBDIR=/APP_HOME/samples/DATABASE

        3. MakefileΪmd5.soļݿlib·¡

        4. ݿͻˣdmsqlc
        
             % /APP_HOME/bin/dmsqlc

        5. ִ SQLݿDBSAMPLE5

             dmSQL> connect to 'DBSAMPLE5' 'SYSADM';

        6. ûԶ庯

             dmSQL> create function md5.MD5DATA(string) returns string;
             dmSQL> create function md5.MD5FILE(string) returns string;

        7. ú

             dmSQL> select md5data('a string') from SYSINFO;
             dmSQL> select md5file('a full path filename') from SYSINFO; 

    Execute regex:
        1. shell'make'

             % cd pcre
             % make

           һļ'libpcre.a'Perlݵĳʽƥ档

             % cd ..
             % make

           ļregex.soregexregex.so 
           ûDBMaker ݿʹõĹģ, regex ǿ
           ʱִļĹжиٺ͵ԡ 
          
        2. ݿˣӹؼDB_LBDIRָ·磬 

            [DBSAMPLE5]
            DB_LBDIR=/APP_HOME/samples/DATABASE

        3. MakefileΪļregex.soݿlib·¡

        4. ݿͻˣdmsqlc
        
             % /APP_HOME/bin/dmsqlc

        5. ִSQLݿDBSAMPLE5

             dmSQL> connect to 'DBSAMPLE5' 'SYSADM';

        6. ûԶ庯

             dmSQL> create function regex.REGEXP(string, string) returns int;

        7. ú
           га'trigger'ı
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/trigger/')=1; 
           
           га'trigger'ıignorance case.
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/trigger/i')=1;
           
           гֽı
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/\d$/')=1; 
           
           гa, b, cͷı, ignorance
           case.
           
             dmSQL> select TABLE_NAME from SYSTABLE 
                     where regexp(TABLE_NAME,'/^[a-c]/i')=1; 


