亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbsvr.cpp

?? wince下對sqlserver數據庫的操作,增刪改操作,單進程單線程
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
				 }
				//4.發送操作結果flag:int + ret:int+sizeofrecord:int + record0+ record1
				*(int *)sendbuf=PMDB_UDPHEADID;
				*((int *)sendbuf +1)=nret;
				if(pRetResultStruct !=NULL)
				{
				*((int *)sendbuf +2)=pRetResultStruct->nSize;
				}else
					*((int *)sendbuf +2)=0;
				nsend=send(*(SOCKET*)msg.wParam,sendbuf,sizeof(int)*3,0);
				if(nsend == SOCKET_ERROR)
				{
//					writebuginfo(L"DbSvr err 104\r\n");
					goto DBACTION_ERR;
				}
				pCur=pRetResultStruct;
				npacket=0;
				
				while(pCur !=NULL)
				{
					pNext=pCur->pNext;
					nsend=send(*(SOCKET*)msg.wParam,(char *)pCur->pBuf,pCur->nSize,0);
					if(nsend == SOCKET_ERROR)
					{
						FreeResult(&pRetResultStruct);
						swprintf(cwTemp,L"Send packet %d,Err=%d",npacket,WSAGetLastError());
//						writebuginfo(cwTemp);
						goto DBACTION_ERR;
					}
					pCur=pNext;npacket++;
					if(npacket%100 ==0)
						Sleep(20);
				}

				FreeResult(&pRetResultStruct);
				closesocket(*(SOCKET*)msg.wParam);
				delete (SOCKET*)msg.wParam;
				break;
DBACTION_ERR:
				//	ASSERT(0);
					closesocket(*(SOCKET*)msg.wParam);
					delete (SOCKET*)msg.wParam;
					break;
			}
			break;
		default:
			break;
		}
	}
	return 0;
}
bool WaitForDataRecv(SOCKET skClient, int nSec)
{
	int nRet;
	fd_set RSet,WSet;
	struct timeval tv;
	tv.tv_sec	= nSec;
	tv.tv_usec	= 0;
	FD_ZERO(&RSet);
	FD_SET(skClient, &RSet);
	FD_ZERO(&WSet);
	FD_SET(skClient, &WSet);
	nRet=select(skClient,&RSet,NULL, NULL, &tv);
//	nRet=select(skClient,&RSet,&WSet, NULL, &tv);
	if( nRet== 0)
	{//timeout
		return false;
	}else if( nRet ==SOCKET_ERROR)
	{
		int nErr=WSAGetLastError();
//		WCHAR cwTemp[100];
	//	swprintf(cwTemp,L" nErr=%d \r\n",nErr);
		if(nErr ==WSAEINTR)
		{
	//	swprintf(cwTemp,L"socket has closed! \r\n");
		}
//		writebuginfo(cwTemp);
		return false;
	}else
		return true;
}
bool IsSocketClose(SOCKET skClient)
{
	WSAEVENT hEvent;
	hEvent=WSACreateEvent();
	if(hEvent ==NULL)
		return true;
	int nRet=WSAEventSelect(skClient,hEvent,FD_CLOSE);
	if(nRet ==SOCKET_ERROR)
	{
	WSACloseEvent(hEvent);
		return true;
	}
	if( WaitForSingleObject(hEvent,0)==WAIT_OBJECT_0)
	{//已經關閉
		WSACloseEvent(hEvent);	
		return true;
	}
	WSACloseEvent(hEvent);
	return FALSE;
}
UINT DbSocketServerThread( LPVOID pParam )
{
	SOCKET socket1=*(SOCKET *)pParam;
	while (bSockeRun)
	{
		SOCKET skClient	= accept(socket1,NULL, NULL);
		 if(skClient ==INVALID_SOCKET )
		 {
			 MessageBox(NULL,L"Accept Failure!",L"DbSvr!",MB_OK);
			 break;
		 }
		 SOCKET *pSocket=new SOCKET;
		 *pSocket=skClient;
	//	 MessageBox(NULL,L"Accept Ok!",L"post thread message!",MB_OK);
		 PostThreadMessage(pThreadDb->m_nThreadID,MSG_DBACTION,((WPARAM )pSocket),0);
	//	Sleep(500);
	}
//	writebuginfo(L"exit socket thread\r\n");
	return 0;
}
void CALLBACK TimerFunDay(  HWND hwnd,   UINT uMsg,   UINT idEvent,   DWORD dwTime )
{
	//同步處理
//	writebuginfo(L"enter database record delete");
		writebuginfo("file:%s,line:%d*****database record delete\r\n",__FILE__,__LINE__);
	//數據維護計劃
	CTime tm=CTime::GetCurrentTime();
	CTime tm1y,tm6m,tm3m,tm1m;
	tm1y=CTime(tm.GetYear()-1,tm.GetMonth(),1,0,0,0);
	if(tm.GetMonth()>6)
		tm6m=CTime(tm.GetYear(),tm.GetMonth()-6,1,0,0,0);
	else
		tm6m=CTime(tm.GetYear()-1,tm.GetMonth()+6,1,0,0,0);
	if(tm.GetMonth()>3)
		tm3m=CTime(tm.GetYear(),tm.GetMonth()-3,1,0,0,0);
	else
		tm3m=CTime(tm.GetYear()-1,tm.GetMonth()+9,1,0,0,0);
	if(tm.GetMonth()>1)
		tm1m=CTime(tm.GetYear(),tm.GetMonth()-1,1,0,0,0);
	else
		tm1m=CTime(tm.GetYear()-1,tm.GetMonth()+11,1,0,0,0);
	time_t t1y,t6m,t3m,t1m;
	t1y=tm1y.GetTime();
	t6m=tm6m.GetTime();
	t3m=tm3m.GetTime();
	t1m=tm1m.GetTime();
	KillTimer(NULL,g_TimerFunDayID);
	g_TimerFunDayID=SetTimer(NULL,101,24*60*60*1000,TimerFunDay);

static	WCHAR SqlIst[10][150];
	int index=0;	
	//1	進出記錄	3mon
	swprintf(SqlIst[index++],L"Delete from PassRecord where Time<%d",t3m);
	//3	報警通知記錄	3mon
	swprintf(SqlIst[index++],L"Delete from AlarmNotifyHisTable where AlarmSpingID in (select Idx from AlarmSpringTable where Time<%d )",t3m);
	//2	報警記錄	3mon
	
	
	swprintf(SqlIst[index++],L"Delete from AlarmSpringTable where Time<%d",t3m);
	//4	開支明細	1year
//	OutgoingRecordTable
	swprintf(SqlIst[index++],L"Delete from OutgoingRecordTable where RecordTime<%d",t1y);
	//5	備忘錄	6mon
	swprintf(SqlIst[index++],L"Delete from TicklerTable where Time<%d",t6m);
	//6	可視對講記錄	記錄保存1mon,圖片本地保存10次,其余保存在服務器
	
	swprintf(SqlIst[index++],L"Delete from InterPhoneRecordTable where Time<%d",t1m);
	//7	可視電話記錄	記錄保存1mon,圖片本地保存10次,其余保存在服務器
	
	swprintf(SqlIst[index++],L"Delete from TelVideoRecordTable where Time<%d",t1m);
	//8	語音留言	記錄保存3mon,圖片本地保存10次,其余保存在服務器
	
	swprintf(SqlIst[index++],L"Delete from VoiceMsgTable where Time<%d",t3m);
	//9	短信	保存1mon
	swprintf(SqlIst[index++],L"Delete from ShortMsgTable where Time<%d",t1m);


		::EnterCriticalSection(&g_DbCritialSection);
			if(!g_DataBase.OpenData())
			{
			//	writebuginfo(L"can‘t open database");
				writebuginfo("file:%s,line:%d,can‘t open database\r\n",__FILE__,__LINE__);
			::LeaveCriticalSection(&g_DbCritialSection);
				return ;
			}
			NodeSql *pFirst,*pNode=NULL,*pNext=NULL;
			for(int i=0;i<9;i++)
			{
				pNext=new NodeSql;
				memset(pNext,0,sizeof(NodeSql));
				pNext->pSql = SqlIst[i];
				if(pNode==NULL)
				{
					pNode=pNext;
					pFirst=pNext;
				}else
				{
					pNode->pNext=pNext;
					pNode=pNext;
				}
			}
			BOOL  bDel=g_DataBase.ExecuteSql(pFirst);
			if(bDel)
			{
			//	writebuginfo(L"OK! database record delete");
			}else
			{
			//	writebuginfo(L"failure! database record delete");
			}
			//刪除
			while(pFirst)
			{
				pNode=pFirst;
				pFirst=pFirst->pNext;
				delete pNode;
			}
			g_DataBase.CloseData();
	::LeaveCriticalSection(&g_DbCritialSection);
//	writebuginfo(L"exit database record delete");
		writebuginfo("file:%s,line:%d*****exit database record delete=%d\r\n",__FILE__,__LINE__,bDel);

}
/*
功能:定時器函數,執行數據庫文件的本地備份
參數:標準,略
返回:無
編寫人:呂黃梁
時間:2005-06-16
*/
void CALLBACK TimerFunBackUp(  HWND hwnd,   UINT uMsg,   UINT idEvent,   DWORD dwTime )
{
//	DWORD t1,t2;
//	t1=::GetTickCount();
//	writebuginfo(L"enter database Backup");
	writebuginfo("file:%s,line:%d,enter database Backup\r\n",__FILE__,__LINE__);
	::EnterCriticalSection(&g_DbCritialSection);
//	writebuginfo(L"begin database Backup");
	g_DataBase.CloseData();
//	writebuginfo(L"begin database Backup01");
	if(!g_DataBase.OpenData())//保證備份前數據庫是好的
	{
		writebuginfo("file:%s,line:%derror database Backup\r\n",__FILE__,__LINE__);
//	writebuginfo(L"");
	::LeaveCriticalSection(&g_DbCritialSection);
		return ;
	}
//	writebuginfo(L"begin database Backup01");
	g_DataBase.CloseData();
//	writebuginfo(L"begin database copying");
	CopyFile(DATABASE_PMDB,DATABASE_PMDB_BACKUP,FALSE);
//	t2=::GetTickCount();
//	WCHAR cwTemp[100];
//	swprintf(cwTemp,L"tm=%d s",(t2-t1)/1000);
//	writebuginfo(cwTemp);
	::LeaveCriticalSection(&g_DbCritialSection);
//	writebuginfo(L"exit database Backup");
		writebuginfo("file:%s,line:%d,database Backup ok\r\n",__FILE__,__LINE__);

}
/*
功能:數據庫文件的本地恢復
參數:無
返回:
	0 -成功
	-1 -失敗
編寫人:呂黃梁
時間:2005-06-16
*/
int DbRecove()
{
	writebuginfo("enter database recove\n");
	int nret=0;
	CDataBase db;
	::EnterCriticalSection(&g_DbCritialSection);
	g_DataBase.CloseData();
	if(!db.OpenData(DATABASE_PMDB_BACKUP))
	{
	writebuginfo("can't open the backup database \n");
	::LeaveCriticalSection(&g_DbCritialSection);
		return -1;
	}
	db.CloseData();
	if(CopyFile(DATABASE_PMDB_BACKUP,DATABASE_PMDB,FALSE))
	{
		writebuginfo("exit database recove success\n");
		nret= 0;
	}
	else 
	{
		nret= -1;
		writebuginfo("exit database recove failure,errid=%d\n",GetLastError());
	}
		::LeaveCriticalSection(&g_DbCritialSection);
	return nret;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线小视频| 欧美精品一区二区三区蜜臀| 欧洲国内综合视频| 欧美一区二区三区免费视频| 久久综合中文字幕| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久精品视频免费观看| 亚洲国产aⅴ成人精品无吗| 蜜桃传媒麻豆第一区在线观看| 国产乱子轮精品视频| 国产精品综合一区二区三区| 色噜噜狠狠成人网p站| 欧美一区二区三区公司| 国产精品美女www爽爽爽| 亚洲午夜在线电影| 国产成人精品免费| av激情综合网| 日韩久久久精品| 亚洲精品自拍动漫在线| 国产美女娇喘av呻吟久久| 91麻豆文化传媒在线观看| 日韩欧美一区在线观看| 亚洲视频狠狠干| 国产精品99久久久久久久女警| 欧美午夜电影网| 国产精品久久三| 黄网站免费久久| 色偷偷成人一区二区三区91| 久久久精品免费观看| 午夜视频在线观看一区二区| 99久久婷婷国产精品综合| 日韩午夜av一区| 亚洲综合在线电影| av一区二区三区| 国产午夜精品一区二区三区视频| 香蕉成人伊视频在线观看| 91蜜桃免费观看视频| 秋霞电影一区二区| 欧美丝袜丝交足nylons图片| 中文字幕中文字幕一区| 国产suv精品一区二区883| 日韩欧美三级在线| 亚洲一区自拍偷拍| 91福利国产精品| 综合婷婷亚洲小说| av日韩在线网站| 中文字幕在线观看不卡| 成人三级在线视频| 亚洲国产精品传媒在线观看| 国产精品影音先锋| 欧美精品一区二区三区蜜臀| 久久99精品国产.久久久久久 | 日韩精品一区二区三区蜜臀| 性欧美疯狂xxxxbbbb| 欧美日韩一级黄| 亚洲成人激情综合网| 欧美日韩一区 二区 三区 久久精品| 亚洲国产精品ⅴa在线观看| 国产成人在线影院| 欧美激情综合在线| aaa亚洲精品| 国产日韩欧美精品综合| 成人午夜私人影院| 亚洲天堂成人网| 在线国产亚洲欧美| 首页综合国产亚洲丝袜| 日韩一级黄色大片| 国产乱码精品一区二区三区av| 久久免费电影网| 成人激情小说乱人伦| 亚洲日本一区二区| 欧美日韩亚洲丝袜制服| 蜜臀久久99精品久久久画质超高清| 日韩欧美一区二区免费| 国产成人午夜片在线观看高清观看| 91精品国产aⅴ一区二区| 激情久久五月天| 国产精品久久久久影院亚瑟 | 欧美一区二区三区白人| 精品亚洲成a人| 国产精品嫩草影院av蜜臀| 99久久久国产精品| 日韩中文字幕麻豆| 久久久精品天堂| 国产激情视频一区二区三区欧美 | 一区二区三区在线影院| 在线播放国产精品二区一二区四区| 中文字幕va一区二区三区| 欧美日韩精品一区二区三区四区| 成人高清免费观看| 麻豆一区二区在线| 午夜电影一区二区| 亚洲日本电影在线| 国产欧美va欧美不卡在线| 欧美一级黄色片| 欧美日韩一区二区三区免费看| 久久精品视频一区| 欧美成人高清电影在线| 欧美精品欧美精品系列| 91麻豆蜜桃一区二区三区| 成人精品视频一区二区三区| 韩国三级中文字幕hd久久精品| 三级亚洲高清视频| 亚洲网友自拍偷拍| 一区二区三区蜜桃| 一区二区三区在线影院| 亚洲欧美激情一区二区| 专区另类欧美日韩| 亚洲天堂网中文字| 中文字幕欧美一区| 亚洲精品视频在线| 亚洲男人的天堂在线观看| 中文字幕亚洲视频| 一区二区三区四区中文字幕| 一区二区三区在线播| 一区二区三区四区五区视频在线观看| 成人欧美一区二区三区1314| 国产精品久久精品日日| 国产精品传媒视频| 亚洲人成在线观看一区二区| 一区二区三区色| 日韩在线一区二区| 麻豆精品视频在线| 国产一区二区福利| 不卡一二三区首页| 在线这里只有精品| 欧美日本一道本| 精品国产一区二区亚洲人成毛片| 欧美精品一区二区三| 国产欧美精品一区二区三区四区 | 亚洲精品菠萝久久久久久久| 一区二区三区在线观看欧美| 五月天一区二区| 狠狠色综合日日| 成人的网站免费观看| 欧美天堂一区二区三区| 91精品久久久久久久91蜜桃| 欧美精品一区二区蜜臀亚洲| 国产精品乱码一区二区三区软件 | 精品久久久网站| 国产精品国产自产拍高清av | 亚洲人成在线观看一区二区| 亚洲第一主播视频| 国产一区二区精品久久99| 不卡的av网站| 欧美精品 日韩| 国产精品午夜春色av| 香蕉久久夜色精品国产使用方法 | 亚洲免费在线看| 美女诱惑一区二区| 99久久99久久精品免费观看| 欧美精品乱码久久久久久按摩| 26uuu国产日韩综合| 亚洲欧美日韩在线| 极品少妇xxxx精品少妇偷拍| 91视频com| 精品国产a毛片| av午夜精品一区二区三区| 91精品久久久久久久久99蜜臂| 国产精品毛片久久久久久久| 日韩电影一区二区三区| 成人国产在线观看| 日韩一级大片在线观看| 亚洲视频资源在线| 国产美女娇喘av呻吟久久| 欧美特级限制片免费在线观看| 久久精品网站免费观看| 视频在线观看一区| 91国产免费看| 欧美高清一级片在线观看| 免费成人av资源网| 欧美性受xxxx黑人xyx性爽| 国产精品欧美一区二区三区| 久久精品国产澳门| 欧美区一区二区三区| 国产精品福利在线播放| 激情六月婷婷久久| 日韩无一区二区| 午夜一区二区三区在线观看| 成人激情图片网| 国产日产欧产精品推荐色| 美女网站色91| 在线播放91灌醉迷j高跟美女| 亚洲男人电影天堂| 92国产精品观看| 国产精品乱码久久久久久| 国产精华液一区二区三区| 精品国产一区二区三区久久影院| 亚洲一区免费视频| 色美美综合视频| 亚洲欧洲色图综合| av爱爱亚洲一区| 中文字幕亚洲精品在线观看| 成人午夜电影网站| 国产亚洲综合性久久久影院| 久久99国产精品久久99 | 欧美精品一区二区三区很污很色的| 香港成人在线视频| 欧美另类videos死尸| 五月综合激情日本mⅴ|