動態cgi 傳值後端(二)

By
Advertisement
前端資料習慣性是放在目錄:產品名/client 底下
這其中包括了開tcpopen、socket、tcprecv的lib
而.h檔案則都是放在 ../include
後端則是 ../mklib

../mklib/funspcA.f
宣告DB連線的STRUCTURE以及後端相對應的含式
#ifndef _funspcA_
#define _funspcA_

extern  int AL_do_OPUser(struct dbs_request *, struct dbs_respond *);

struct _DBService ALDBServiceA[] = 
{
        { "OPUser", OPUser, AL_do_OPUser, 1, MAX_ACCESS,0}
}

../mklib/ServiceFunc.c
尋找對應的含式
struct _DBService *
AL_GetFunction(opcode)
int     opcode;
{
        int     fidx;
        int     SearchGo;
        struct _DBService * fun;

        SearchGo = TRUE;
        if(SearchGo == TRUE)
        {
                for (fidx=0; fidx < sizeof(ALDBServiceA) / sizeof(struct _DBService) ; fidx++ ) {
                        if (opcode == ALDBServiceA[fidx].opcode) {
                                fun = (struct _DBService *) &(ALDBServiceA[fidx]);
                                SearchGo = FALSE;
                                break;
                        }
                }
        }
}

../mklib.pc/test.pc
AL_do_OPUser(in, out)
struct dbs_request *in;
struct dbs_respond *out;
{
        QRYITEM         qryitem;
        char            subfun[MAX_FUNCTION_LEN+1];
        char            buff[8192];
        int             reclen;
        int             item;
        int             start;
        sTESTSTRUCT     qqry;
        memset(&qqry, 0x00, sizeof(sTESTSTRUCT));
        memcpy(&subfun, &(in->databuf[offset]), MAX_FUNCTION_LEN);
        offset = 0;
        reclen = 0;

        memset(&qryitem, 0x00, sizeof(QRYITEM));
        offset += MAX_FUNCTION_LEN;
        if (!strcmp(subfun, "qusrlist"))
        {
                memcpy(&qryitem, &(in->databuf[offset]) , sizeof(QRYITEM));
                offset += sizeof(QRYITEM);
                memcpy(&qqry, &(in->databuf[offset]), sizeof(sTESTSTRUCT));
                offset += sizeof(sTESTSTRUCT);
                out->value = AL_DBQryUserList1(opid, &qryitem, &qqry, out->databuf, &reclen, in);

                out->replen = MIN_REP_LEN + reclen;
                return(SUCCESS);
        }
}

0 意見:

張貼留言

技術提供:Blogger.

Latest Photos

Join the Team

Blogger news

Popular Posts