亚洲欧美第一页_禁久久精品乱码_粉嫩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网站| 欧美性一级生活| 日本一区二区免费在线| 亚洲成人av一区| 成人综合日日夜夜| 欧美大度的电影原声| 亚洲综合男人的天堂| av亚洲精华国产精华精| 久久久久一区二区三区四区| 日本不卡在线视频| 欧美性猛片aaaaaaa做受| 亚洲免费在线播放| 岛国av在线一区| 久久久精品免费观看| 蜜臀久久99精品久久久久久9 | 欧美日韩午夜精品| 亚洲欧美综合网| 成人深夜在线观看| 亚洲国产精品黑人久久久| 国模大尺度一区二区三区| 欧美一级黄色片| 日本三级韩国三级欧美三级| 欧美性猛片xxxx免费看久爱| 亚洲最大的成人av| 色嗨嗨av一区二区三区| 亚洲影院在线观看| 欧美视频在线观看一区二区| 亚洲色欲色欲www| 91美女在线视频| 亚洲人成伊人成综合网小说| 97国产一区二区| 亚洲精品老司机| 欧美日韩黄视频| 奇米精品一区二区三区四区 | 色素色在线综合| 亚洲精选视频在线| 在线亚洲欧美专区二区| 一卡二卡三卡日韩欧美| 欧美日韩精品专区| 青娱乐精品在线视频| 久久综合色之久久综合| 国产成人精品亚洲日本在线桃色| 欧美国产日产图区| 91丨porny丨蝌蚪视频| 亚洲线精品一区二区三区| 日韩欧美一区二区免费| 国产一区免费电影| 亚洲人被黑人高潮完整版| 色婷婷国产精品久久包臀| 日日夜夜精品视频免费| 久久亚洲春色中文字幕久久久| 国产另类ts人妖一区二区| 亚洲欧美日韩系列| 欧美区一区二区三区| 久99久精品视频免费观看| 国产精品天天看| 在线欧美日韩国产| 久久99这里只有精品| 国产精品家庭影院| 欧美日韩精品一区二区天天拍小说 | 久久精品人人做人人爽97| 91香蕉视频污| 蜜桃一区二区三区在线观看| 国产日韩成人精品| 欧美日韩国产一区二区三区地区| 久久99国内精品| 亚洲乱码日产精品bd| 精品国产制服丝袜高跟| 色综合久久天天| 韩国欧美国产一区| 亚洲图片自拍偷拍| 久久久不卡网国产精品二区| 91久久精品一区二区| 美女任你摸久久| 一区二区激情小说| 欧美—级在线免费片| 欧美日韩久久久一区| 91小视频免费观看| 国产福利一区二区三区在线视频| 亚洲精品写真福利| 久久网站最新地址| 欧美久久久久久久久中文字幕| 91论坛在线播放| 国产在线国偷精品产拍免费yy | 欧美午夜片在线观看| 国产91综合一区在线观看| 免费在线观看日韩欧美| 亚洲精品乱码久久久久| 中文字幕第一页久久| 精品久久久久久综合日本欧美| 91国偷自产一区二区开放时间| 国产成人精品www牛牛影视| 麻豆传媒一区二区三区| 午夜久久久久久久久久一区二区| 亚洲欧洲成人精品av97| 国产女主播在线一区二区| 日韩亚洲欧美成人一区| 欧美性高清videossexo| 在线观看91视频| 97se狠狠狠综合亚洲狠狠| 成人激情电影免费在线观看| 国产激情视频一区二区在线观看| 日韩av中文字幕一区二区| 亚洲狠狠爱一区二区三区| 亚洲欧美乱综合| 一区二区三区不卡视频| 亚洲美女在线一区| 亚洲欧美电影院| 一区二区三区国产豹纹内裤在线| 综合久久久久久| 夜夜嗨av一区二区三区中文字幕| 日韩毛片一二三区| 亚洲伦理在线免费看| 亚洲人成亚洲人成在线观看图片| 一区二区中文视频| 亚洲黄色免费电影| 午夜久久久久久久久久一区二区| 视频一区在线播放| 蜜臀久久久99精品久久久久久| 免费成人美女在线观看.| 久久精品国产亚洲aⅴ| 精品在线亚洲视频| 国产91综合网| 91传媒视频在线播放| 欧美日韩日日骚| 欧美一级在线免费| 久久久国产一区二区三区四区小说 | 日韩精品视频网| 毛片不卡一区二区| 国产精品亚洲一区二区三区在线| 国产成人三级在线观看| 99久久精品免费看| 欧美三级在线看| 日韩精品一区二区在线| 久久中文娱乐网| 亚洲视频一区二区在线观看| 一区二区三区在线观看欧美 | 5858s免费视频成人| 精品少妇一区二区三区视频免付费| 久久免费偷拍视频| 亚洲美女区一区| 蜜臀99久久精品久久久久久软件| 成人综合在线网站| 欧美性猛交xxxxxxxx| 欧美精品一区二区三区高清aⅴ | 51精品国自产在线| 日本一区二区三级电影在线观看 | 性做久久久久久| 国内久久婷婷综合| 欧美在线一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 中文字幕精品综合| 轻轻草成人在线| 色呦呦一区二区三区| 精品国精品国产| 亚洲成人黄色影院| 成人18精品视频| 久久综合九色综合欧美亚洲| 一区二区三区精品在线观看| 国产一区二区免费在线| 欧美人妇做爰xxxⅹ性高电影| 国产午夜三级一区二区三| 视频一区视频二区在线观看| 成人黄色a**站在线观看| 日韩美一区二区三区| 亚洲一区在线视频| 波多野结衣中文字幕一区| 日韩三级伦理片妻子的秘密按摩| 亚洲人精品午夜| 成人免费毛片嘿嘿连载视频| 日韩亚洲欧美中文三级| 亚洲国产精品久久人人爱蜜臀| av福利精品导航| 久久久久久久久久电影| 捆绑调教一区二区三区| 欧美日韩国产精品成人| 亚洲精品视频在线观看免费| 成a人片国产精品| 久久精品在线观看| 久久av资源网| 91精品国产高清一区二区三区蜜臀| 亚洲视频在线一区| 91在线小视频| 中文字幕亚洲一区二区av在线| 国产盗摄视频一区二区三区| 久久综合一区二区| 国产综合色视频| 精品国产免费人成电影在线观看四季 | 91精品国产综合久久蜜臀| 一二三四社区欧美黄| 91麻豆免费看片| 亚洲精品高清在线| 在线亚洲一区二区| 亚洲一区二区三区激情| 欧美日韩一区小说| 日韩主播视频在线|