⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 storeproc.cpp

📁 用C++基于SQL SERVER使用存储过程
💻 CPP
字号:
// StoreProc.cpp : Defines the entry point for the DLL application.
//
#include "WaterProc.h"
#include "RainProc.h"
#include "stdafx.h"
#include "Srv_net.h"
//#include "Forcelib.h"

#define XP_NOERROR      0
#define XP_ERROR        1
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

char szStation5[MAX_PATH+1];
char szStation8[MAX_PATH+1];

void WriteInfo(const char * str);
extern "C" bool RunRainProc(char*,char*);
extern "C" bool RunWaterProc(char*,char*);

extern "C" SRVRETCODE WINAPI RainProc(SRV_PROC* pSrvProc)
{
	WriteInfo("RainProc start");
	
	int paramCount = srv_rpcparams(pSrvProc);
	if (paramCount <= 1){
		WriteInfo("Param Err Station5 start");
		//return XP_ERROR;
		return XP_NOERROR;
	}

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

	int ret=0;
	ret=srv_paraminfo(pSrvProc,1,&bType,&cbMaxLen,&cbActualLen,NULL,&fNull);
	if (cbActualLen){
		ZeroMemory(szStation5, MAX_PATH+1);
		memcpy(szStation5, srv_paramdata(pSrvProc, 1), cbActualLen);

		WriteInfo("Set station5 ok!");
	}
	else {
		WriteInfo("Set station5 param failed");
		//return XP_ERROR;
		return XP_NOERROR;
	}

	ret=0;
	ret=srv_paraminfo(pSrvProc,2,&bType,&cbMaxLen,&cbActualLen,NULL,&fNull);
	if (cbActualLen){
		ZeroMemory(szStation8, MAX_PATH+1);
		memcpy(szStation8, srv_paramdata(pSrvProc, 2), cbActualLen);
		WriteInfo("Set station8 ok!");
	}
	else {
		WriteInfo("Set station8 param failed");
		//return XP_ERROR;
		return XP_NOERROR;
	}
	
	if(RunRainProc(szStation5,szStation8)){
		WriteInfo("降水量拍报处理成功!");
		return XP_NOERROR;
	}
	else{
		WriteInfo("降水量拍报处理失败!");
		//return XP_ERROR;
		return XP_NOERROR;
	}

	return (XP_NOERROR);
}

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

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


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

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

	if(RunWaterProc(szStation5,szStation8)){
		WriteInfo("水位拍报处理成功!");
		return XP_NOERROR;
	}
	else{
		WriteInfo("水位拍报处理失败!");
		//return XP_ERROR;
		return XP_NOERROR;
	}

	return XP_NOERROR;
}

inline void WriteInfo(const char * str){
	char srt[3] = {0x0d, 0x0a, 0};
	HANDLE hf = CreateFile("c:\\storeproc.log", GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, 
			          OPEN_ALWAYS, 0, NULL);
	if (hf != INVALID_HANDLE_VALUE){
		SetFilePointer(hf, 0, NULL, FILE_END);
		DWORD dwWt;
		WriteFile(hf, str, strlen(str), &dwWt, NULL);
		WriteFile(hf, srt, strlen(srt), &dwWt, NULL);
		CloseHandle(hf);
	}
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpReserved)
{
	return TRUE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -