青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

MYSQL:
1、多表查詢
     超過一個表的綜合查詢;
     注意:找到表與表之間的紐帶(橋梁)
     分類:
        1:內連接:
      等值連接:查詢的結果帶有重復記錄的
      自然連接:查詢結果中沒有重復的記錄
      (distinct|group by)刪掉重復記錄的查詢
2:外連接:
      左連接:
      右連接
      全連接
3:交叉連接:
student_info    學生信息表
s_id s_name     age   area
     Tom      20     北京
     Jack     21     上海
     Lily     19     南京
     Damat    22     北京
     DaiJun   22     上海

1,2,3
marks 成績表:
s_id c_id mark
    1    60
    2    70
    1    80
    3    60
    2    70
    3    59
class 科目表
c_id c_name
    語文
    數學
    英語
1)等值連接:
    select 字段列表 from 表列表 where 表1.字段1=表2.字段1 and 表2.字段2=表3.字段2 and。。。。。。
    eg:檢索出所有的學生信息及其各科目所考試的成績
        編號,姓名,年齡 地區 科目和成績;

select s_id,s_name,age,area,c_name,marks
from student_info,marks,class
where student_info.s_id=marks.s_id
       and marks.c_id=class.c_id;
    注意:如果查詢涉及到的字段中,在多個表中存在,那么要使用"表名.字段名"的方式來表明是那個表中的;
2)如果重復的字段較多,那么我們給使用的表起個別名:
   表名 as 別名|表名 別名

   select s.s_id,s_name,age,area,c_name,marks
   from student_info as s,marks as m,class as c
   where s.s_id=m.s_id
       and m.c_id=c.c_id;
   eg:查詢出各科目的平均成績?group by
select c_name,avg(marks) as "jjj"
from class,marks
where class.c_id=marks.c_id;
group by c_name;
   eg:統計學生所在地的學生人數?
   eg:統計學生大于70的所在地的學生人數
3)sql語句中中:
內連接:
select 字段列表 from 表1 innerjoin 表2
on 表1.字段1=表2.字段1
eg:
    檢索出所有學生的姓名和成績;
    select s_name,marks from student_info s inner join marks m on s.s_id=m.s_id
外連接:
左連接:
      格式:
       select 字段列表 from 表1 left outerjoin 表2
       on 表1.字段1=表2.字段1     
   注意:以左邊的表為參照物,用右邊的表進行匹配,如果右邊的表中有匹配記錄,那么就顯示記錄,如果沒有匹配的記錄,那么就填充null;

   eg:
      打印出學生的全部成績?
     

右連接:
    格式:
       select 字段列表 from 表1 right outerjoin 表2
       on 表1.字段1=表2.字段1     
   注意:以右邊的表為參照物,用左邊的表進行匹配,如果左邊的表中有匹配記錄,那么就顯示記錄,如果沒有匹配的記錄,那么就填充null;
  
全連接:在mysql中部支持全連接
   格式:
       select 字段列表 from 表1 left outerjoin 表2
       on 表1.字段1=表2.字段1

       union all

       select 字段列表 from 表1 right outerjoin 表2
       on 表1.字段1=表2.字段1
     
        union all:將查詢得到得兩個記錄集合并起來,但是不去除重復的記錄;默認使用的情況下沒有all---就相當于加了distinct去掉的重復的記錄;現在所實現的效果才是全連接的效果;
4)交叉連接:
   cross
   格式:
     select 字段列表 from 表1 cross 表2
    
   供應商    超市
   1   1
   2            2
   3            3
5)自連接:
inner join

person

p_id   p_name   s_id
1 tom       2
     lily      3
     damat     4
     mack

職工   領導   經理
tom    領導   lily
lily   領導   damat
damat 領導   mack
per 職工表
p_id   p_name   s_id
1 tom       2
     lily      3
     damat     4
     mack

cap 經理表
p_id   p_name
1 tom  
     lily  
     damat
     mack

select per.p_name,"領導",cap.p_name
from person per,person cap
where per.s_id=cap.p_id;

6)sql語句中的常量:
   select "字符" from 表
7)成績大于60的學生姓名:
select s_name from student_info,marks
where student_info.s_id=marks.s_id marks>60;



本文主要列舉兩張和三張表來講述多表連接查詢。 新建兩張表: 表1:student 截圖如下: 表2:course 截圖如下: (此時這樣建表只是為了演示連接SQL語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。) 一、外連接 外連接可分為
本文主要列舉兩張和三張表來講述多表連接查詢。
新建兩張表:
表1:student  截圖如下:
SQL多表連接查詢(詳細實例)_新客網
表2:course  截圖如下:
SQL多表連接查詢(詳細實例)_新客網
(此時這樣建表只是為了演示連接SQL語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。)
一、外連接
外連接可分為:左連接、右連接、完全外連接。
1、左連接  left join 或 left outer join
SQL語句:select * from student left join course on student.ID=course.ID
執行結果:
SQL多表連接查詢(詳細實例)_新客網
左外連接包含left join左表所有行,如果左表中某行在右表沒有匹配,則結果中對應行右表的部分全部為空(NULL).
注:此時我們不能說結果的行數等于左表數據的行數。當然此處查詢結果的行數等于左表數據的行數,因為左右兩表此時為一對一關系。
2、右連接  right join 或 right outer join
SQL語句:select * from student right join course on student.ID=course.ID
執行結果:
SQL多表連接查詢(詳細實例)_新客網
右外連接包含right join右表所有行,如果左表中某行在右表沒有匹配,則結果中對應左表的部分全部為空(NULL)。
注:同樣此時我們不能說結果的行數等于右表的行數。當然此處查詢結果的行數等于左表數據的行數,因為左右兩表此時為一對一關系。
3、完全外連接  full join 或 full outer join
SQL語句:select * from student full join course on student.ID=course.ID
執行結果:
SQL多表連接查詢(詳細實例)_新客網
完全外連接包含full join左右兩表中所有的行,如果右表中某行在左表中沒有匹配,則結果中對應行右表的部分全部為空(NULL),如果左表中某行在右表中沒有匹配,則結果中對應行左表的部分全部為空(NULL)。
二、內連接  join 或 inner join
SQL語句:select * from student inner join course on student.ID=course.ID
執行結果:
SQL多表連接查詢(詳細實例)_新客網
inner join 是比較運算符,只返回符合條件的行。
此時相當于:select * from student,course where student.ID=course.ID
三、交叉連接 cross join
1.概念:沒有 WHERE 子句的交叉聯接將產生連接所涉及的表的笛卡爾積。第一個表的行數乘以第二個表的行數等于笛卡爾積結果集的大小。
SQL語句:select * from student cross join course
執行結果:
SQL多表連接查詢(詳細實例)_新客網
如果我們在此時給這條SQL加上WHERE子句的時候比如SQL:select * from student cross join course where student.ID=course.ID
此時將返回符合條件的結果集,結果和inner join所示執行結果一樣。
四、兩表關系為一對多,多對一或多對多時的連接語句
當然上面兩表為一對一關系,那么如果表A和表B為一對多、多對一或多對多的時候,我們又該如何寫連接SQL語句呢?
其實兩表一對多的SQL語句和一對一的SQL語句的寫法都差不多,只是查詢的結果不一樣,當然兩表也要略有改動。
比如表1的列可以改為:
Sno Name Cno
表2的列可以改為:
Cno CName
這樣兩表就可以寫一對多和多對一的SQL語句了,寫法和上面的一對一SQL語句一樣。
下面介紹一下當兩表為多對多的時候我們該如何建表以及些SQL語句。
新建三表:
表A:  student 截圖如下:
SQL多表連接查詢(詳細實例)_新客網
表B:  course 截圖如下:
SQL多表連接查詢(詳細實例)_新客網
表C:  student_course 截圖如下:
SQL多表連接查詢(詳細實例)_新客網
一個學生可以選擇多門課程,一門課程可以被多個學生選擇,因此學生表student和課程表course之間是多對多的關系。
當兩表為多對多關系的時候,我們需要建立一個中間表student_course,中間表至少要有兩表的主鍵,當然還可以有別的內容。
SQL語句:select s.Name,C.Cname from student_course as sc left join student as s on s.Sno=sc.Sno left join course as c on c.Cno=sc.Cno
執行結果:
SQL多表連接查詢(詳細實例)_新客網
此條SQL執行的結果是學生選課的情況。

 

posted @ 2013-03-25 09:12 盛勝 閱讀(428) | 評論 (0)編輯 收藏

int iScreenX = GetSystemMetrics(SM_CXSCREEN);
int iScreenY = GetSystemMetrics(SM_CYSCREEN);
CPaintDC *pdc=&dc;
CRect r;
GetClientRect(&r);
CBitmap *pBitmap= new CBitmap;
pBitmap->LoadBitmap(IDB_CAS_MENU);
BITMAP bm;
    // 重繪功能按鈕背景
pBitmap->GetBitmap(&bm);
CDC* pDisplayMemDC = new CDC;
pDisplayMemDC->CreateCompatibleDC(pdc);
pDisplayMemDC->SelectObject(pBitmap);
pdc->StretchBlt(0,0,r.right,100,pDisplayMemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
pBitmap->DeleteObject();

    //釋放資源
ReleaseDC(pDisplayMemDC);
delete pDisplayMemDC;
delete pBitmap;

posted @ 2013-03-21 12:03 盛勝 閱讀(462) | 評論 (0)編輯 收藏

// std::map<std::string ,DataInfo>::iterator iter = m_ImageInfoList.begin();
//
// while (iter!=m_ImageInfoList.end())
// {
// CString pathArchiveTemp,pathImageTemp,ImagePath;
// pathImageTemp = iter->second.strPath.c_str();
// pathArchiveTemp = m_DosImage.m_archive.strPath.c_str();
// ImagePath = pathArchiveTemp + pathImageTemp;
// m_DosImage.m_ImagevPath.push_back(ImagePath);
// ++iter;
// }

CString slect_name = m_treeSource.GetItemText(selected_item);
std::string strNodeName = slect_name.GetBuffer();
slect_name.ReleaseBuffer();
               ,std::map<std::string DataInfo>::iterator ite=m_ImageInfoList.find(strNodeName); 
if (ite != m_ImageInfoList.end())
{
CString pathArchiveTemp,pathImageTemp,ImagePath;
pathArchiveTemp = archive.strPath.c_str();
pathImageTemp = ite->second.strPath.c_str();
ImagePath = pathArchiveTemp + pathImageTemp;
}

posted @ 2013-03-19 10:34 盛勝 閱讀(174) | 評論 (0)編輯 收藏

string a="d:\\abc\\dd.avi";
string::size_type pos = 0;    

while ((pos = a.find_first_of("\\",pos)) != string :: npos)
{
a.replace(pos,1,"http://");
pos++;
}

posted @ 2013-03-15 11:48 盛勝 閱讀(1918) | 評論 (3)編輯 收藏

原因:由 directdraw 的升級引起,POINTER_64是一個宏,在64位編譯下起作用,它包含在SDK目錄下的BASETSD.H中(Microsoft Visual Studio 8\VC\PlatformSDK\Include\basetsd.h(23):#define POINTER_64 __ptr64),但DXSDK自己也帶了一個basetsd.h,里面沒有定義POINTER_64,從而導致出錯。
在網上查了下資料,一般的解決方法是:
在winnt.h中加上以下語句  
  #define POINTER_64 __ptr64
  typedef void *PVOID;
  typedef void * POINTER_64 PVOID64;
個人認為最好不去改winnt.h,有時需要要調整include文件夾的順序來解決問題,通過調整IDE 工具-> 選項-> 項目vc++目錄;包含文件include 的順序來解決這類問題,使dxsdk需要的winnt.h所在文件夾在最上面。調整后,問題解決!
-----------
DirectX SDK的包含路徑導致的。
在工程屬性中(不是VC的屬性),將包含路徑設置為如下的格式,即DirectX SDK的路徑放在后面:
$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;D:\Program Files\Microsoft Direct SDK\Extras\DirectShow\Include;D:\Program Files\Microsoft Direct SDK\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses;D:\Program Files\Microsoft Direct SDK\Include;
-----------------

http://blog.sina.com.cn/s/blog_620782850100u57u.html
改動SDK的頭文件,不是一個好的辦法,會降低代碼的移植性。解決辦法:
在stdafx.h的開頭,加上如下代碼:
#ifndef POINTER_64
#if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
#define POINTER_64 __ptr64
typedef unsigned __int64 POINTER_64_INT;
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif
#else
#if defined(_MAC) && defined(_MAC_INT_64)
#define POINTER_64 __ptr64
typedef unsigned __int64 POINTER_64_INT;
#else
#if (_MSC_VER >= 1300) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif
typedef unsigned long POINTER_64_INT;
#endif
#define POINTER_32
#endif
#endif

posted @ 2013-03-13 16:22 盛勝 閱讀(700) | 評論 (0)編輯 收藏

BROWSEINFO bInfo;
ZeroMemory(&bInfo, sizeof(bInfo));
bInfo.hwndOwner = m_hWnd;
bInfo.lpszTitle = "請選擇路徑: ";
bInfo.ulFlags = BIF_RETURNONLYFSDIRS;    
LPITEMIDLIST lpDlist; //用來保存返回信息的IDList
lpDlist = SHBrowseForFolder(&bInfo) ; 
if (lpDlist == NULL)
{
return;
}
if(lpDlist != NULL)  
{
CHAR chPath[MAX_PATH]; //用來存儲路徑的字符串
SHGetPathFromIDList(lpDlist, chPath);
m_strSavePath    = chPath; //將TCHAR類型的字符串轉換為CString類型的字符串
//strOutPath = chPath;
}

posted @ 2013-03-13 15:44 盛勝 閱讀(194) | 評論 (0)編輯 收藏

http://blog.sina.com.cn/s/blog_69e905cd0100l5m8.html
http://www.phpfans.net/ask/MTcxNTUyNw.html

posted @ 2013-03-11 17:05 盛勝 閱讀(1194) | 評論 (0)編輯 收藏

     摘要: 轉自:http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.htmlhttp://www.cplusplus.com/reference/stl/list/STL: C++ standard template library C++標準模板庫stl list使用說明使用標準的std::list進行容器數據處理時,操作比較底層。我們...  閱讀全文

posted @ 2013-03-09 10:30 盛勝 閱讀(525) | 評論 (0)編輯 收藏

標準庫 vector 容器 
使用 vector 是必須包含頭文件 <vector> 
# include <vector>


vector 是個類模板 可以存放不同的數據類型,包括用戶自定義的類型
聲明格式如下:
 class_template_name<type_name> obj_name;
ex: 
 vector<int> int_vec;   //int_vec 對象用來存發整型類的數據


vector 對象的定義和初始化
    vector 類的構造函數有如下幾種:
      vector<type> v1; 
      vector<type> v2(v1);   對象v2是v1的副本
      vector<type> v3(n, i);   v3包含n 個值為i 的元素 
      vector<type> v4(n);   v4包含n個 值初始化 的副本
 
**值初始化 
   沒有指定元素的初始化形式,那么標準庫將自行提供一個元素初始化的值
進行 值初始化(value initializationd)具體類型取決于vector存儲的類型。
 ex:   vector<int> ivec(10); //10 elements, each initialized to 0;
 
 vector 類中成員函數與基本操作
    1.判斷容器是否為空,返回值為 bool類型       obj.empty();         
    2.返回容器中元素的個數                      obj.size();
    3.在容器末尾增加一個值為 type_value 的元素  obj.push_back(type_value);
    4.支持類似于數組的操作
        返回容器中位值為n的元素  obj[n]
        直接賦值替換 obj1 = obj2;  
        支持比較操作符   ==  !=  < > 
**  vector的下標操作與數組的不同之處
  vector 只能通過對確知的元素進行操作
  Ex:  vector<int>  obj;  //obj為空。
       obj[0];  //error    
       
標準庫 iterator 迭代器
   除了用數組下標去訪問,遍歷容器中的元素,還可以通過使用迭代器(iterator)
   iterator 是C++標準庫中用來控制對容器元素的訪問的特定數據類型。有些容器既支持
下標訪問,也可以用 iterator。 迭代器是更加通用的方法。每種容器都對應有不同的迭代器。


每種容器都對應 返回iterator數據成員的操作 begin() 和 end()
ex:  //obj is not empty
     vector<int>::iterator iter = obj.begin()  //用begin()返回迭代器指向容器的第一個元素  


end() 返回的是容器的最后一個元素的下一位。當容器為空時,和begin()的返回值相同
obj.end() 起一個哨兵(sentinel)的作用。表示已處理完容器中的所有元素。


**  vector的迭代器支持自增和解引用操作
       *iter = 0;   obj[0] = 0;  // obj[0] 和 iter 指的是同一個元素


用迭代器iterator編寫 loop
for( vecotr<int>::iterator iter = int_vec.begin(); 
        iter != int_vec.end(); ++iter ){
     *iter = 0;   //將容器 int_vec 中所有元素值都置為0。              
}


const_iterator  
該類型迭代器指向的元素解引用后為 const類型的對象 不能被重寫。
const_iterator 類型與 const 類的 iterator 不同。 前者自身的值可改變,但其所指的值不能改變。  
而 后者一旦初始化值就不能改變,不可有自增操作。 

posted @ 2013-03-09 10:20 盛勝 閱讀(268) | 評論 (0)編輯 收藏

CString與LPCWSTR、LPSTR、char*、LPWSTR等類型的轉換【轉】

CString與LPCWSTR、LPSTR、char*、LPWSTR等類型的轉換

VC++ 2010-09-25 21:23:12 閱讀457 評論3   字號: 訂閱

一.CString與LPCWSTR 

    兩者的不同:LPCWSTR 是Unicode字符串指針,初始化時串有多大,申請空間就有多大,以后存貯若超過則出現無法預料的結果,這是它與CString的不同之處。而CString是一個串類,內存空間類會自動管理。

    CString轉換成LPCWSTR

    方法一:CString strFileName;

                     LPCWSTR lpcwStr = strFileName.AllocSysString();

    方法二:CString str=_T("TestStr"); 
                    USES_CONVERSION; 
                    LPCWSTR lpcwStr = A2CW((LPCSTR)str);

    MFC中CString和LPSTR是可以通用,其中A2CW表示(LPCSTR)  -> (LPCWSTR),USER_CONVERSION表示用來定義一些中間變量,在使用ATL的轉換宏之前必須定義該語句。

    LPCWSTR轉換成CString

    LPCWSTR lpcwStr = L"TestWStr"; 
    CString str(lpcwStr);

 CString str;

LPWSTR  lpstr = (LPWSTR)(LPCWSTR)str;

二.CString與LPSTR轉換

     CString轉換成LPSTR:

    方法一:CString strFileName;

                    LPSTR lpStr = strFileName.GetBuffer();

                    strFileName.ReleaseBuffer();

     方法二:CString strFileName;

                     LPSTR lpStr = (LPSTR)(LPCSTR)strFimeName;

      LPSTR轉換成CString:

                      LPSTR lpStr = L"TestStr"; 
                      CString str(lpStr);

      注意:CString和LPCSTR可直接轉換,如下:

                     CString str;

                     LPCSTR lpcStr = (LPCSTR)str;

三.CString和char*轉換
       CString轉換成char*
       方法一:CString str;
                       char* p = str.GetBuffer();
       方法二:CString str;
                       char* p = (LPSTR)(LPCSTR)str;
       char*轉換成CString
                       char* p = "test";
                       CString str = ("%s",p);

四.String和int、float的轉換

        可以使用atoi,atof,atol等函數來完成。

五.LPSTR(char*)和LPWSTR的轉換

        可以使用下面的ATL宏來進行,最好是將變量定義成TCHAR、LPTSTR等T類型,可以避免轉換。

ATL宏介紹:

     A2BSTR   OLE2A             T2A            W2A 
     A2COLE   OLE2BSTR    T2BSTR    W2BSTR 
     A2CT         OLE2CA         T2CA          W2CA 
     A2CW        OLE2CT         T2COLE    W2COLE 
     A2OLE       OLE2CW       T2CW         W2CT 
     A2T            OLE2T            T2OLE        W2OLE 
     A2W           OLE2W          T2W             W2T

    A :ANSI 字符串,也就是 MBCS。 
    W、OLE 寬字符串,也就是 UNICODE。 
    T 中間類型T。如果定義了 _UNICODE,則T表示W;如果定義了 _MBCS,則T表示A 
    C const 的縮寫

利用這些宏,可以快速的進行各種字符間的轉換。使用前必須包含頭文件,并且申明USER_CONVERSION;使用 ATL 轉換宏,由于不用釋放臨時空間,所以使用起來非常方便。但是考慮到棧空間的尺寸(VC 默認2M),使用時要注意幾點:

    1、只適合于進行短字符串的轉換; 
    2、不要試圖在一個次數比較多的循環體內進行轉換; 
    3、不要試圖對字符型文件內容進行轉換,因為文件尺寸一般情況下是比較大的; 
    4、對情況 2 和 3,要使用 MultiByteToWideChar() 和 WideCharToMultiByte();

void Func1(LPSTR lpStr);

void Func2(LPWSTR lpwStr);

TCHAR   name[256];

TCHAR*   pName = new  TCHAR[256];

Func1(name); // Func1(pName);

Func2(name); // Func2(pName);

注意在VS2005中上面用紅色標記的代碼已經不成立。

VS2005中CString已經改為寬字符型,一些轉換如下:

char name[10];
 TCHAR sex[5] ;
 char *p = name;
 TCHAR *pw = sex;

 LPSTR lpstr = name;
 LPCSTR lpcstr = name;
 lpcstr = lpstr;
 
 lpstr = p;
 p = (char*)sex;
 pw = (WCHAR*)name;
 LPWSTR lpwstr = (LPWSTR)lpstr;
 lpwstr = (LPWSTR)lpcstr;
 LPCWSTR lpcwstr = (LPCWSTR)lpstr;
 lpcwstr = (LPCWSTR)name;

 CString str(lpstr);
 CString str1(lpcstr);
 CString str2(lpwstr);
 CString str3(lpcwstr);
 CString str4(name);
 CString str5(sex);

 lpwstr = (LPWSTR)(LPCWSTR)str;
 lpstr = (LPSTR)(LPCWSTR)str;
 lpcstr = (LPCSTR)(LPCWSTR)str;

 p = (char*)str.GetBuffer();
 pw = str.GetBuffer();

可以看出轉換更加簡單了,基本上可以直接轉換,A2W等宏基本上不需要啦

(摘自)

http://blog.csdn.net/sl159/article/details/6412171

標簽: C++

posted @ 2013-03-08 16:51 盛勝 閱讀(4316) | 評論 (0)編輯 收藏

僅列出標題
共14頁: 1 2 3 4 5 6 7 8 9 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合中文| 9色精品在线| 亚洲最黄网站| 欧美性做爰毛片| 欧美成人xxx| 在线观看中文字幕不卡| 一本色道久久88精品综合| 亚洲激情图片小说视频| 免费av成人在线| 亚洲女人小视频在线观看| 亚洲影院污污.| 亚洲国产另类 国产精品国产免费| 亚洲福利在线观看| 国产精品人人做人人爽人人添| 久久激情视频久久| 欧美日韩亚洲另类| 欧美激情一区二区三区高清视频 | 欧美成人免费全部| 国产精品国产| 亚洲精品乱码久久久久久久久 | 玖玖玖国产精品| 性欧美长视频| 欧美jizz19hd性欧美| 亚洲欧美日韩精品综合在线观看| 美女主播视频一区| 欧美三级视频| 亚洲国产一区二区视频| 久久精品国产清高在天天线| 久久精品毛片| 91久久精品国产91久久| 免费美女久久99| 欧美黄免费看| 亚洲电影天堂av| 久久精品日韩| 亚洲国产美国国产综合一区二区| 欧美成人一区在线| 欧美黑人多人双交| 欧美亚洲三区| 亚洲国产精品久久久久秋霞影院| 久久免费黄色| 欧美日韩情趣电影| 久热精品视频在线免费观看| 久久综合给合久久狠狠色| 日韩视频一区二区三区在线播放免费观看| 日韩视频一区二区在线观看 | 国产精品欧美一区喷水| 亚洲免费电影在线观看| 一区二区电影免费在线观看| 欧美日韩免费网站| 先锋亚洲精品| 玖玖国产精品视频| 午夜精品国产精品大乳美女| 久久精品一区二区| 香蕉av777xxx色综合一区| 国产精品国产自产拍高清av| 亚洲高清不卡av| 亚洲国产精品成人综合色在线婷婷| 亚洲久久在线| 91久久黄色| 国产精品区一区| 午夜一区不卡| 亚洲一线二线三线久久久| 欧美精品激情| 正在播放亚洲一区| 亚洲欧美综合精品久久成人| 欧美午夜精品久久久| 日韩视频免费在线观看| 99精品福利视频| 欧美高清视频在线| 免费久久99精品国产| 亚洲电影下载| 欧美国产日韩一区| 一级日韩一区在线观看| 午夜精品亚洲| 狠狠色综合网站久久久久久久| 欧美一级淫片aaaaaaa视频| 欧美一区在线看| 9人人澡人人爽人人精品| 欧美精品日韩一区| 午夜精品久久久久久久蜜桃app | 国内一区二区三区| 国产精品一卡二| 亚洲电影在线免费观看| 国产伦精品一区二区三| 欧美一区二区三区视频免费播放| 欧美大片一区二区| 久久亚洲精品欧美| 亚洲综合二区| 亚洲婷婷综合色高清在线| 狠狠色丁香久久婷婷综合丁香| 欧美日韩中文字幕在线视频| 久久国产精品72免费观看| 99ri日韩精品视频| 亚洲国产精品电影| 亚洲一本视频| 久久美女性网| 欧美在线视频a| 亚洲欧美日韩国产综合| 亚洲午夜免费福利视频| 亚洲国产精品成人综合| 久久久久成人精品| 欧美一区二区三区的| 亚洲精品社区| 99精品热视频只有精品10| 悠悠资源网久久精品| 欧美天堂亚洲电影院在线播放| 久久免费少妇高潮久久精品99| 久久久久综合| 欧美韩日视频| 国产麻豆视频精品| 国产欧美精品日韩精品| 激情视频亚洲| 一区二区三区自拍| 亚洲精品老司机| 亚洲美女av电影| 欧美在线国产| 欧美成人免费va影院高清| 亚洲日本一区二区| 亚洲精品一区二区在线观看| 亚洲精品婷婷| 91久久精品国产91久久性色tv| 9国产精品视频| 老色鬼精品视频在线观看播放| 免费高清在线视频一区·| 欧美波霸影院| 国产一区二区三区四区hd| 亚洲第一页在线| 午夜精品久久久久影视 | 夜色激情一区二区| 亚洲午夜精品久久| 欧美精品在线看| 黄色一区二区三区四区| 亚洲婷婷免费| 亚洲激情校园春色| 久久久.com| 欧美性大战xxxxx久久久| 欧美一级视频免费在线观看| 欧美日韩1区2区| 亚洲免费小视频| 欧美在线观看视频在线| 亚洲国产精品国自产拍av秋霞| 欧美高清在线一区| 欧美色图麻豆| 亚洲一区二区动漫| 免费日韩av| 久久综合中文色婷婷| 欧美极品一区| 免费观看一区| 国产欧美日韩视频| 日韩天堂av| 亚洲在线视频网站| 国产精品久久久一本精品| 亚洲美女精品久久| 麻豆乱码国产一区二区三区| 久久精品30| 国产有码在线一区二区视频| 午夜激情久久久| 久久亚洲春色中文字幕| 国产亚洲精品综合一区91| 亚洲视频导航| 欧美诱惑福利视频| 国产视频一区三区| 翔田千里一区二区| 看欧美日韩国产| 国产亚洲网站| 午夜精品免费在线| 久久综合网络一区二区| 国产精品自拍网站| 久久精品国产免费| 亚洲福利在线看| 在线中文字幕不卡| 国产精品国产三级国产普通话蜜臀 | 在线亚洲免费| 欧美精品一区二区三区蜜臀| 欧美怡红院视频一区二区三区| 另类天堂视频在线观看| 久久久免费av| 亚洲欧美视频在线观看| 一本色道久久综合精品竹菊| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美专区日韩视频| 国产日韩亚洲欧美| 久久精品亚洲精品国产欧美kt∨| 蜜臀av一级做a爰片久久 | 亚洲免费观看| 久久久精品一品道一区| 国产精品99久久久久久久久久久久 | 午夜在线精品| 国内精品视频在线观看| 欧美不卡视频| 亚洲韩国日本中文字幕| 亚洲一区制服诱惑| 亚洲第一天堂av| 国产精品午夜久久| 欧美黑人国产人伦爽爽爽| 亚洲天堂成人| 欧美刺激性大交免费视频| 亚洲视频在线观看网站| 尤妮丝一区二区裸体视频| 国产精品久久久久久户外露出|