龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

在存储过程中调用外部的动态连接库(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
char szFileName[MAX_PATH+1]; void WriteInfo(const char * str); extern "C" SRVRETCODE WINAPI SetFileName(SRV_PROC* pSrvProc) { WriteInfo("SetFileName start"); int paramCount = srv_rpcparams(

char szFileName[MAX_PATH+1];

void WriteInfo(const char * str);

extern "C" SRVRETCODE WINAPI SetFileName(SRV_PROC* pSrvProc)
{
    WriteInfo("SetFileName start");
    int paramCount = srv_rpcparams(pSrvProc);
    if (paramCount != 1){
        WriteInfo("Param Err start");
        return XP_ERROR;
    }

    BYTE      bType;
    unsigned long  cbMaxLen;
    unsigned long  cbActualLen;
    BOOL      fNull;

    int ret = srv_paraminfo(pSrvProc, 1, &bType, &cbMaxLen, &cbActualLen,
            NULL, &fNull);
    if (cbActualLen){
        ZeroMemory(szFileName, MAX_PATH+1);
        memcpy(szFileName, srv_paramdata(pSrvProc, 1), cbActualLen);
        WriteInfo("Set filename ok");
        return (XP_NOERROR);
    }
    else {
        WriteInfo("Set filename param failed");
        return XP_ERROR;
    }
}

extern "C" SRVRETCODE WINAPI addLine(SRV_PROC* pSrvProc)
{
    WriteInfo("addline start");
    int paramCount = srv_rpcparams(pSrvProc);
    if (paramCount != 1){
        WriteInfo("addline param err");
        return XP_ERROR;
    }

    BYTE      bType;
    unsigned long  cbMaxLen;
    unsigned long  cbActualLen;
    BOOL      fNull;
    bool      rt = false;

    int ret = srv_paraminfo(pSrvProc, 1, &bType, &cbMaxLen, &cbActualLen,
            NULL, &fNull);

    if (cbActualLen){

精彩图集

赞助商链接