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

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

?? guiadodb.cpp

?? 界面開發
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/****************************************************************************
 *																			*		 
 *								GuiToolKit  								*	
 *							 (MFC extension)								*			 
 * Created by Francisco Campos G. www.beyondata.com fcampos@beyondata.com	*
 *--------------------------------------------------------------------------*		   
 *																			*
 * This program is free software;so you are free to use it any of your		*
 * applications (Freeware, Shareware, Commercial),but leave this header		*
 * intact.																	*
 *																			*
 * These files are provided "as is" without warranty of any kind.			*
 *																			*
 *			       GuiToolKit is forever FREE CODE !!!!!					*
 *																			*
 *--------------------------------------------------------------------------*
 * Created by: Francisco Campos G.											*
 * Bug Fixes and improvements : (Add your name)								*
 * -Francisco Campos														*				
 *																			*	
 ****************************************************************************/



#include "stdafx.h"
#include "guiadodb.h"

//---------------------------------------------------------------------------------------

CString GetError(_com_error &e)
{	
	CString MsgBug;
	_bstr_t Source(e.Source());
	_bstr_t Description(e.Description());
	MsgBug.Format( "Ups!!! \nSource = %s\nDescription= %s\n",(LPCSTR)Source, (LPCSTR)Description );
	#ifdef _DEBUG
		AfxMessageBox( MsgBug, MB_OK | MB_ICONERROR );
	#endif	
	return MsgBug;
}


CString GetTypeVar(_variant_t vt)
{
	switch(vt.vt)
	{
	case VT_EMPTY :
		return _T("VT_EMPTY");
		break;
	case   VT_NULL :
		return _T("VT_NULL");
		break;
	case VT_I2:
		return _T("int");
		break;
	case VT_I4 :
		return _T("long");
		break;
	case  VT_R4 :
		return _T("float");
		break;
	case VT_R8 :
		return _T("double");
		break;
	case VT_CY :
		return _T("currency");
		break;
	case VT_DATE:
		return _T("date");
		break;
	case  VT_BSTR :
		return _T("string");
		break;
	case VT_DISPATCH :
		return _T("dispatch");
		break;
	case  VT_ERROR :
		return _T("error");
		break;
	case VT_BOOL :
		return _T("bool");
		break;
	case VT_VARIANT :
		return _T("variant");
		break;
	case VT_UNKNOWN :
		return _T("unknown");
		break;
	case   VT_DECIMAL :
		return _T("decimal");
		break;
	default:
		return _T("");
	}
}

CGuiConnection::CGuiConnection(void)
{
	::CoInitialize(NULL);
	m_pConn.CreateInstance(__uuidof(Connection));
	
}
CGuiConnection::~CGuiConnection(void)
{
	if (IsConnect())
		Close();
	m_pConn.Release();
	m_pConn = NULL;
	
}

BOOL CGuiConnection::Open(LPCTSTR ConnectionString,LPCTSTR UID,LPCTSTR PWD,long Options)
{
 HRESULT re;
 try
	{	
		re = m_pConn->Open(_bstr_t(ConnectionString), _bstr_t(UID), _bstr_t(PWD), NULL);
		return re == S_OK;
	}
	catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
 
}

BOOL CGuiConnection::IsConnect()
{
	return (BOOL) m_pConn->GetState() != adStateClosed;
}



CGuiRecordSet* CGuiConnection::Execute(LPCTSTR CommandText,long Options)
{
	CGuiRecordSet* m_rs= new CGuiRecordSet();
	try{
		m_rs->Open(m_pConn,CommandText,adOpenUnspecified,adLockUnspecified, Options);
	}catch(_com_error &e)
	{
		GetError(e);
		return NULL;
	}
	return m_rs;
}

long CGuiConnection::BeginTrans()
{
	return m_pConn->BeginTrans();
}

void CGuiConnection::RollbackTrans()
{
	m_pConn->RollbackTrans();
}

void CGuiConnection::CommitTrans()
{
	m_pConn->CommitTrans();
}

void CGuiConnection::Cancel()
{
	m_pConn->Cancel();
}

void CGuiConnection::Close()
{
	m_pConn->Close();
}

void CGuiConnection::SetConnectionTimeout(long ConnectionTimeout)
{
	m_pConn->ConnectionTimeout=ConnectionTimeout;
}

void CGuiConnection::SetConectionString( LPCTSTR ConnectionString)
{
	m_pConn->ConnectionString=ConnectionString;
}

long CGuiConnection::GetConnectionTimeout()
{
	return m_pConn->ConnectionTimeout;
}

LPCTSTR CGuiConnection::GetConectionString()
{
	return m_pConn->ConnectionString;
}


//***********************************************************************************************
CGuiRecordSet::CGuiRecordSet(void)
{
	::CoInitialize(NULL);
	m_rs.CreateInstance(__uuidof(Recordset));	
	m_Criteria=_T("");
}
CGuiRecordSet::~CGuiRecordSet(void)
{
	Close();
	if (m_rs) m_rs->Release();
	m_rs=NULL;
}
	void CGuiRecordSet::Attach(_RecordsetPtr m_prs ){	m_rs=m_prs;}BOOL CGuiRecordSet::Open(_ConnectionPtr ActiveConnection,LPCTSTR Source, CursorTypeEnum CursorType,ADOCG::LockTypeEnum LockType, long Options){	try
	{
		m_rs->Open(Source, _variant_t((IDispatch*)ActiveConnection, TRUE), 
							adOpenStatic, LockType, Options);
	}
	catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
	return TRUE;}


BOOL CGuiRecordSet::FindFirst(LPCTSTR Criteria)
{
	MoveFirst();
   	return Find(Criteria,0,adSearchForward,"");
}

void CGuiRecordSet::Move(long NumRecords , _variant_t Start){	m_rs->Move(NumRecords,vtMissing);}
BOOL CGuiRecordSet::FindNext()
{
	return Find(m_Criteria,1,adSearchForward,vtPointer);
}


BOOL CGuiRecordSet::Find(LPCTSTR Criteria , long SkipRecords , 						 SearchDirectionEnum SearchDirection,_variant_t Start){	CString szCri=Criteria;	if (!szCri.IsEmpty())		m_Criteria=Criteria;	else		return FALSE;	try{		m_rs->Find(_bstr_t(Criteria),SkipRecords,SearchDirection,Start);		if (SearchDirection ==adSearchForward)		{			if (!IsEof())			{				vtPointer= m_rs->Bookmark;				return TRUE;			}		}else if (SearchDirection ==adSearchBackward)		{			if (!IsBof())			{				vtPointer= m_rs->Bookmark;				return TRUE;			}		}else return FALSE;	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}return FALSE;}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,CString szCad)
{
	_variant_t vt;
	if(!szCad.IsEmpty())
	{
		vt.vt = VT_BSTR;
		vt.bstrVal = szCad.AllocSysString();
	}

	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,long lVal)
{
	_variant_t vt;
	vt.lVal=lVal;
	vt.vt=VT_I4;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,unsigned char usVal)
{
	_variant_t vt;
	vt.bVal=usVal;
	vt.vt=VT_UI1;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,short shVal)
{
	_variant_t vt;
	vt.iVal=shVal;
	vt.vt=VT_I2;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,float flVal)
{
	_variant_t vt;
	vt.fltVal=flVal;
	vt.vt=VT_R4;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,double dblVal)
{
	_variant_t vt;
	vt.dblVal=dblVal;
	vt.vt=VT_R8;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,BOOL blVal)
{
	_variant_t vt;
	vt.boolVal=blVal;
	vt.vt=VT_BOOL;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,COleDateTime dtVal)
{
	_variant_t vt;
	vt.date=dtVal;
	vt.vt=VT_DATE;	
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName,unsigned long ulVal)
{
	_variant_t vt;
	vt.vt = VT_UI4;
	vt.ulVal = ulVal;
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetValue(LPCTSTR lpName, COleCurrency cuVal)
{
	_variant_t vt;
	vt.vt = VT_CY;
	vt.cyVal = cuVal.m_cur;
	if(cuVal.m_status == COleCurrency::invalid)
		return FALSE;
	return SetFieldValue(lpName, vt);
}

BOOL CGuiRecordSet::SetFieldValue(LPCTSTR lpName, _variant_t vtField)
{
	try
	{
		m_rs->Fields->GetItem(lpName)->Value = vtField; 
		return TRUE;
	}
	catch(_com_error &e)
	{
		GetError(e);
		return FALSE;	
	}
}


CString CGuiRecordSet::GetCollect(LPCTSTR lpField)
{
	try{
	_variant_t vt = m_rs->Fields->GetItem(lpField)->Value;
	 return (CString) vt.bstrVal;
	}
	catch(_com_error &e)
	{
		GetError(e);
		return _T("");
	}
 
}

BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,int& nValue)
{
	_variant_t vt;
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_I2)
		{
			nValue=vt.intVal;
			return TRUE;
		}else if (vt.vt==VT_BOOL)
		{
			nValue=vt.boolVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}
BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,long& lVal)
{
	_variant_t vt;
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_I4)
		{
			lVal=vt.lVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}
BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,double& dbVal)
{
	_variant_t vt;
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_R8)
		{
			dbVal=vt.dblVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}
BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,CString& strValue)
{
	_variant_t vt;
	try
	{	
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_BSTR)
		{
			strValue=vt.bstrVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}


BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,COleCurrency& cyVal)
{
	_variant_t vt;
	vt = m_rs->Fields->GetItem(lpField)->Value;
	
	try
	{
		if (vt.vt==VT_CY)
		{
			cyVal.m_cur=vt.cyVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}

BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,COleDateTime& dtVal)
{
	_variant_t vt;
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_DATE)
		{
			dtVal=vt.date;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}
BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,float& flVal)
{
	_variant_t vt;
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		if (vt.vt==VT_R4)
		{
			flVal=vt.fltVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}

BOOL CGuiRecordSet::GetCollect(LPCTSTR lpField,_variant_t& vt)
{
	try
	{
		vt = m_rs->Fields->GetItem(lpField)->Value;
		return TRUE;
	}
	catch(_com_error& e)
	{
		GetError(e);
		return FALSE;
	}
}
	
BOOL CGuiRecordSet::GetCollect(int nIndex,int& nValue)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_I2)
		{
			nValue=vt.intVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}

BOOL CGuiRecordSet::GetCollect(int nIndex,long& lVal)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_I4)
		{
			lVal=vt.lVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}

BOOL CGuiRecordSet::GetCollect(int nIndex,double& dbVal)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_R8)
		{
			dbVal=vt.dblVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}

BOOL CGuiRecordSet::GetCollect(int nIndex,CString& strValue)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{	
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_BSTR)
		{
			strValue=vt.bstrVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}

BOOL CGuiRecordSet::GetCollect(int nIndex,COleCurrency& cyVal)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_CY;
	try
	{
		vtn.iVal =nIndex;
		vt	= m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_CY)
		{
			cyVal.m_cur=vt.cyVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}

BOOL CGuiRecordSet::GetCollect(int nIndex,COleDateTime& dtVal)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_DATE)
		{
			dtVal=vt.date;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
		
}

BOOL CGuiRecordSet::GetFormatDate(LPCTSTR lpField,CString& m_szDate, CString Format)
{
	COleDateTime time;
	if (!GetCollect(lpField,time)) return FALSE;
	CTime ct(time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond()); 
	m_szDate =ct.Format(Format);
	return TRUE;
}

BOOL CGuiRecordSet::GetFormatDate(int nIndex,CString& m_szDate, CString Format)
{
	COleDateTime time;
	if (!GetCollect(nIndex,time)) return FALSE;
	CTime ct(time.GetYear(),time.GetMonth(),time.GetDay(),time.GetHour(),time.GetMinute(),time.GetSecond()); 
	m_szDate =ct.Format(Format);
	return TRUE;
}

BOOL CGuiRecordSet::GetCollect(int nIndex,float& flVal)
{
	_variant_t vt;
	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		if (vt.vt==VT_R4)
		{
			flVal=vt.fltVal;
			return TRUE;
		}else return FALSE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}

}



BOOL CGuiRecordSet::GetCollect(int nIndex,_variant_t& vt)
{

	_variant_t vtn;
	vtn.vt = VT_I2;
	try
	{
		vtn.iVal = nIndex;
		vt = m_rs->Fields->GetItem(vtn)->Value;
		return TRUE;
	}
	catch(_com_error& e)
	{
		GetError(e);
		return FALSE;
	}
}
	



BOOL CGuiRecordSet::SetFilter(LPCTSTR lpFilter)
{
	if (!IsOpen()) return FALSE;
	try
	{
		m_rs->PutFilter(lpFilter);
		return TRUE;
	}
	catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}

BOOL CGuiRecordSet::SetSort(LPCTSTR lpSort)
{
	if (!IsOpen()) return FALSE;
	try
	{
		m_rs->PutSort(lpSort);
		return TRUE;
	}
	catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
}
	

BOOL CGuiRecordSet::IsOpen()
{
	if(m_rs)
		return m_rs-> GetState() != adStateClosed;
	return FALSE;
}

void CGuiRecordSet::Close()
{
	if(IsOpen())
		m_rs->Close();	
	
}


void CGuiRecordSet::MoveFirst()
{
	m_rs->MoveFirst();
}

void CGuiRecordSet::MoveLast()
{
	m_rs->MoveLast();
}

void CGuiRecordSet::MoveNext()
{
	m_rs->MoveNext();
}

void CGuiRecordSet::MovePrevious()
{
	m_rs->MovePrevious();
}

void CGuiRecordSet::Cancel()
{
   m_rs->Cancel();	
}

void CGuiRecordSet::CancelUpdate()
{
  m_rs->CancelUpdate();	
}

BOOL CGuiRecordSet::Delete()
{
	try{
		if(m_rs->Delete(adAffectCurrent)== S_OK)
			if(m_rs->Update() ==S_OK)
			return TRUE;
	}catch(_com_error &e)
	{
		GetError(e);
		return FALSE;
	}
	return FALSE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频免费看| 国产亚洲制服色| 久久综合色之久久综合| 亚洲美女少妇撒尿| 国产福利精品导航| 日韩欧美卡一卡二| 亚洲国产日韩一区二区| 99国产精品久久久| |精品福利一区二区三区| 蜜桃视频免费观看一区| 91在线视频播放地址| 久久午夜电影网| 美日韩一区二区三区| 欧美日韩久久不卡| 亚洲视频一区二区在线观看| 国内成人免费视频| 日韩一区二区麻豆国产| 亚洲一区二区视频| 欧美色老头old∨ideo| 亚洲免费在线视频一区 二区| 色天使久久综合网天天| 亚洲国产精华液网站w| 久久99精品久久久久久久久久久久 | 国产 日韩 欧美大片| 欧美成人综合网站| 美女网站在线免费欧美精品| 5858s免费视频成人| 亚瑟在线精品视频| 欧美三级中文字| 午夜精品久久久久久久久久 | 色婷婷久久99综合精品jk白丝| 国产精品久久久久9999吃药| 国产成人精品综合在线观看| 国产日韩综合av| 成人污污视频在线观看| 亚洲欧洲另类国产综合| 95精品视频在线| 亚洲天堂福利av| 色88888久久久久久影院按摩| 亚洲欧美日韩国产一区二区三区| 波多野结衣欧美| 秋霞电影一区二区| 欧美一区二区播放| 久久精品国产澳门| 日本一区二区视频在线| 91社区在线播放| 国产视频911| 亚洲a一区二区| 石原莉奈在线亚洲二区| 69久久99精品久久久久婷婷 | 97久久精品人人做人人爽50路| 国产精品三级av| 91精彩视频在线观看| 亚洲午夜久久久久久久久电影院 | 日本色综合中文字幕| 欧美一区二区精品在线| 久久er精品视频| 中文字幕va一区二区三区| 91麻豆swag| 免费成人结看片| 国产欧美一区二区精品仙草咪| 欧美一级片免费看| 国产又粗又猛又爽又黄91精品| 国产嫩草影院久久久久| 欧美性受xxxx黑人xyx| 久久精品国产一区二区| 久久久久99精品一区| 欧美午夜理伦三级在线观看| 久久国产免费看| 亚洲美女屁股眼交3| 日韩美女视频在线| 色综合天天天天做夜夜夜夜做| 天天综合天天做天天综合| 欧洲一区在线观看| 欧美国产精品久久| 久久先锋资源网| 激情综合色综合久久综合| 亚洲视频狠狠干| 精品久久人人做人人爽| 一本高清dvd不卡在线观看| 久久精品国产色蜜蜜麻豆| 亚洲欧美日本韩国| 久久久久久久久久久黄色| 欧美性受极品xxxx喷水| 成人高清视频免费观看| 麻豆精品一区二区| 丝袜诱惑亚洲看片| 亚洲日本在线看| 2014亚洲片线观看视频免费| 欧美日韩综合在线免费观看| 成人国产一区二区三区精品| 精品一区二区三区久久久| 亚洲小少妇裸体bbw| 亚洲欧美综合另类在线卡通| 久久这里只精品最新地址| 欧美蜜桃一区二区三区| 91福利社在线观看| 国产99久久久国产精品| 久久先锋影音av| 午夜精品久久一牛影视| 国产婷婷色一区二区三区| 在线观看欧美日本| 色综合一区二区| 成人av综合一区| 成人av影院在线| 成人看片黄a免费看在线| 国产福利一区在线观看| 国产九色sp调教91| 国产一区二区三区免费在线观看| 日韩成人精品在线| 成人妖精视频yjsp地址| 日韩精品一级中文字幕精品视频免费观看 | 日韩 欧美一区二区三区| 亚洲一区二区三区在线看| 亚洲乱码精品一二三四区日韩在线| 国产日韩欧美综合在线| 久久久久一区二区三区四区| 精品久久五月天| 精品久久久久久最新网址| 欧美二区在线观看| 欧美性色欧美a在线播放| 久久青草国产手机看片福利盒子| 欧美美女黄视频| 日韩一区二区免费视频| www久久久久| 国产拍欧美日韩视频二区| 国产精品久久久久久亚洲毛片| 中文字幕在线一区| 亚洲乱码中文字幕| 日韩经典一区二区| 精品一区二区三区在线播放视频| 国产专区欧美精品| 成人激情动漫在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 在线播放国产精品二区一二区四区| 欧美日韩精品三区| 日韩欧美亚洲另类制服综合在线| 国产精品伊人色| 97se亚洲国产综合自在线观| 日韩精品一区在线观看| 久久这里只有精品首页| 日韩毛片在线免费观看| 日韩制服丝袜av| 国产福利一区在线观看| 日本乱码高清不卡字幕| 日韩一区国产二区欧美三区| 日本一区二区三区视频视频| 一区二区三区国产精华| 久久精品国内一区二区三区| 成人av综合在线| 91精品国产综合久久精品图片 | 伊人一区二区三区| 日本aⅴ免费视频一区二区三区| 国产成人欧美日韩在线电影| 色综合久久天天| 欧美成人伊人久久综合网| 亚洲欧美激情插| 激情六月婷婷综合| 欧美午夜寂寞影院| 亚洲色图在线视频| 老司机一区二区| 在线一区二区三区做爰视频网站| 精品久久久久香蕉网| 亚洲午夜久久久久久久久电影院| 国产成人一级电影| 欧美高清性hdvideosex| 最新日韩av在线| 国产一区不卡在线| 51精品视频一区二区三区| 最新国产精品久久精品| 精品一区二区三区日韩| 欧美日韩国产欧美日美国产精品| 欧美极品美女视频| 免费成人av资源网| 精品视频1区2区3区| 中文字幕中文字幕在线一区| 日本道免费精品一区二区三区| 日韩精品影音先锋| 日韩av中文字幕一区二区三区| 91麻豆国产在线观看| 国产欧美一区二区三区网站| 久久99精品久久久久久动态图| 欧美日韩亚洲综合一区二区三区| 1000部国产精品成人观看| 国产精品亚洲人在线观看| 日韩亚洲欧美在线| 日韩电影在线免费观看| 欧洲一区二区av| 亚洲精品免费在线播放| www.亚洲在线| 国产精品久久久久久久久久久免费看 | 国产精品乱人伦| 成人永久免费视频| 久久精品人人爽人人爽| 国内精品国产三级国产a久久| 欧美一区午夜精品| 水蜜桃久久夜色精品一区的特点| 欧美中文字幕久久| 亚洲午夜三级在线| 精品1区2区3区|