精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

舉例介紹VC++中的ODBC編程

開發(fā) 后端
我們都知道ODBC(怒放式數(shù)據(jù)庫Databnse連接)是一種應(yīng)用SQL的程式設(shè)計(jì)接口。本文介紹的是VC++中的ODBC編程,希望對你有幫助,一起來看。

ODBC(怒放式數(shù)據(jù)庫Databnse連接)是一種應(yīng)用SQL的程式設(shè)計(jì)接口,應(yīng)用ODBC使數(shù)據(jù)庫Databnse實(shí)際運(yùn)用程式的編寫者避免了與數(shù)據(jù)源相連接的復(fù)雜性。利用ODBC技能使得程式員從具體的DBMS中解脫出來,從而能夠遞減熱門軟件開發(fā)的務(wù)工量,縮短開發(fā)周期,并升高效率和熱門軟件的可靠性。這項(xiàng)技能目前已經(jīng)得到了大多數(shù)DBMS廠商的廣泛支持。

Microsoft Developer Studio為大多數(shù)達(dá)標(biāo)的數(shù)據(jù)庫Databnse各式幫助了32位ODBC驅(qū)動器。這一部份達(dá)標(biāo)數(shù)據(jù)各式包括有:SQL Server、Access、Paradox、dBase、FoxPro、Excel、Oracle數(shù)據(jù)庫以及Microsoft Text。假如用戶期望應(yīng)用更多有聯(lián)系數(shù)據(jù)各式,則需求安裝相應(yīng)的ODBC驅(qū)動器及DBMS。

用戶應(yīng)用自個的DBMS數(shù)據(jù)庫Databnse管制功能生成新的數(shù)據(jù)庫Databnse模式后,就能夠應(yīng)用ODBC來登錄數(shù)據(jù)源。對用戶的實(shí)際運(yùn)用程式來說,只要安裝有驅(qū)動程式,就能注冊很多不相同的數(shù)據(jù)庫Databnse。登錄數(shù)據(jù)庫Databnse的具體操作參見有關(guān)ODBC的聯(lián)機(jī)幫助。

一、MFC幫助的ODBC數(shù)據(jù)庫Databnse類

Visual C++的MFC基類庫定義了幾個數(shù)據(jù)庫Databnse類。在利用ODBC編程時,經(jīng)常要應(yīng)用到 CDatabase(數(shù)據(jù)庫Databnse類)、CRecordSet(記錄集類)和CRecordView(可視記錄集類)。

CDatabase類對象幫助了對數(shù)據(jù)源的連接,經(jīng)過它能夠?qū)?shù)據(jù)源停止操作。

CRecordSet類對象幫助了從數(shù)據(jù)源中提取出的記錄集。CRecordSet對象通日常于兩種形式:動態(tài)行集(dynasets)和快照集(snapshots)。動態(tài)行集能與更多有聯(lián)系用戶所做的更改保持同步,快照集則是數(shù)據(jù)的唯一靜態(tài)視圖。每種形式在記錄集被打開時都幫助一組記錄,所不相同的是,當(dāng)在唯一動態(tài)行集里滾動到一條記錄時,由更多有聯(lián)系用戶或?qū)嶋H運(yùn)用程式中的更多有聯(lián)系記錄集對該記錄所做的更改會相應(yīng)地呈現(xiàn)出來。

CRecordView類對象能以控件的形式呈現(xiàn)數(shù)據(jù)庫Databnse記錄,那個視圖是直接連到唯一CRecordSet對象的表視圖。

二、實(shí)際運(yùn)用ODBC編程

實(shí)際運(yùn)用Visual C++的AppWizard能夠自動生成唯一ODBC實(shí)際運(yùn)用程式框架,步驟是:打開File菜單的New選項(xiàng),選取Projects,填入工程名,選取MFC AppWizard (exe),然后按AppWizard的提示停止操作。

當(dāng)AppWizard詢問也許包含數(shù)據(jù)庫Databnse支持時,假如想讀寫數(shù)據(jù)庫Databnse,那么選定Database view with file support;假如想來訪數(shù)據(jù)庫Databnse的消息而不想寫回所做的改變,那么選定Database view without file support。

選好數(shù)據(jù)庫Databnse支持之后,Database Source 按鈕會被激活,選中它去調(diào)用Data Options對話框。在Database Options對話框中會呈現(xiàn)出已向ODBC注冊的數(shù)據(jù)庫Databnse資源,選定所要操作的數(shù)據(jù)庫Databnse,如:Super_ES,單擊OK后呈現(xiàn)Select Database Tables對話框,其中列舉了選中的數(shù)據(jù)庫Databnse包含的全部表;選取要操作的表后,單擊OK。在選定了數(shù)據(jù)庫Databnse和數(shù)據(jù)表之后,就能夠按照慣例繼續(xù)停止AppWizard操作。

特別需求指出的是:在生成的實(shí)際運(yùn)用程式框架View類(如:CSuper_ESView)中,包含唯一指向CSuper_ESSet對象的指針m_pSet,該指針由AppWizard建立,目的是在視表單和記錄集之間建立聯(lián)系,使得記錄集中的查詢結(jié)果能夠很簡易地在視表單上呈現(xiàn)出來。
要使程式與數(shù)據(jù)源建立聯(lián)系,需用CDateBase::OpenEx()或CDatabase::Open()參數(shù)來停止初始化。數(shù)據(jù)庫Databnse對象必需在應(yīng)用它構(gòu)造記錄集對象之前初始化。

#p#

三、舉例

1.查詢記錄

查詢記錄應(yīng)用CRecordSet::Open()和CRecordSet::Requery()成員參數(shù)。在應(yīng)用CRecordSet類對象之前,必需應(yīng)用CRecordSet::Open()參數(shù)來獲得有效的記錄集。一旦已經(jīng)應(yīng)用過CRecordSet::Open()參數(shù),再次查詢時就能夠?qū)嶋H運(yùn)用CRecordSet::Requery()參數(shù)。

在調(diào)用CRecordSet::Open()參數(shù)時,假如將唯一已經(jīng)打開的CDatabase對象指針傳給CRecordSet類對象的m_pDatabase成員變量,則應(yīng)用該數(shù)據(jù)庫Databnse對象建立ODBC連接;否則假如m_pDatabase為空指針,就新建唯一CDatabase類對象,并使其與缺省的數(shù)據(jù)源相連,然后停止CRecordSet類對象的初始化。缺省數(shù)據(jù)源由GetDefaultConnect()參數(shù)獲得。也能夠幫助所需求的SQL語句,并以它來調(diào)用CRecordSet::Open()參數(shù),

例如:

  1. Super_ESSet.Open(AFX_DATABASE_USE_DEFAULT,strSQL); 

 

假如沒有指定參數(shù)parameter,程式則應(yīng)用缺省的SQL語句,即對在GetDefaultSQL()參數(shù)中指定的SQL語句停止操作:

  1. CString CSuper_ESSet::GetDefaultSQL()  
  2. {return _T(″[BsicData],[MinSize]″);} 

 

對于GetDefaultSQL()參數(shù)返回的表名,對應(yīng)的缺省操作是SELECT語句,即:

  1. SELECT * FROM BasicData,MainSize 

 

在查詢過程中,也能夠利用CRecordSet的成員變量m_strFilter和m_strSort來執(zhí)行要求查詢和結(jié)果排序。m_strFilter為濾掉字符串,存放著SQL語句中WHERE后的要求串;m_strSort為排序字符串,存放著SQL語句中ORDER BY后的字符串。如:

  1. Super_ESSet.m_strFilter=″TYPE=‘電動機(jī)’″;  
  2. Super_ESSet.m_strSort=″VOLTAGE″;  
  3. Super_ESSet.Requery(); 

 

對應(yīng)的SQL語句為:

  1. SELECT * FROM BasicData,MainSize  
  2. WHERE TYPE=‘電動機(jī)’  
  3. ORDER BY VOLTAGE 

 

除了直接賦值給m_strFilter以外,還能夠應(yīng)用參數(shù)parameter化。利用參數(shù)parameter化能夠更直觀、更方便地完成要求查詢?nèi)蝿?wù)。應(yīng)用參數(shù)parameter化的步驟如下:

S聲明參變量:

  1. CString p1;  
  2. float p2; 

 

S在構(gòu)造參數(shù)中初始化參變量:

  1. p1=_T(″″);  
  2. p2=0.0f;  
  3. m_nParams=2; 

 

S將參變量與對應(yīng)列綁定:

  1. pFX->SetFieldType(CFieldExchange::param)  
  2. RFX_Text(pFX,_T(″P1″),p1);  
  3. RFX_Single(pFX,_T(″P2″),p2); 

 

完成以上步驟后就能夠利用參變量停止要求查詢:

  1. m_pSet->m_strFilter=″TYPE=? AND VOLTAGE=?″;m_pSet->p1=″電動機(jī)″;  
  2. m_pSet->p2=60.0;  
  3. m_pSet->Requery(); 

 

參變量的值按綁定的順序替換查詢字串中的“?”通配符。

假如查詢的結(jié)果是多條記錄,能夠用CRecordSet類的參數(shù)Move()、MoveNext()、MovePrev()、MoveFirst()和MoveLast()來移動光標(biāo)。

2.漸增記錄

漸增記錄應(yīng)用AddNew()參數(shù),要求數(shù)據(jù)庫Databnse必需是以允許漸增的方法打開:

  1. m_pSet->AddNew(); //在表的末尾漸增新記錄  
  2. m_pSet->SetFieldNull(&(m_pSet->m_type), FALSE);  
  3. m_pSet->m_type=″電動機(jī)″;  
  4. ……  
  5. //輸入新的字段值  
  6. m_pSet->Update();  
  7. //將新記錄存入數(shù)據(jù)庫Databnse  
  8. m_pSet->Requery();  
  9. //重建記錄集 

3.刪除記錄

能夠直接應(yīng)用Delete()參數(shù)來刪除記錄,并且在調(diào)用Delete()參數(shù)之后不需調(diào)用Update()參數(shù):

  1. m_pSet->Delete();  
  2. if (!m_pSet->IsEOF())  
  3. m_pSet->MoveNext();  
  4. else 
  5. m_pSet->MoveLast(); 

4.改正記錄

改正記錄應(yīng)用Edit()參數(shù):

  1. m_pSet->Edit();  
  2. //改正當(dāng)前記錄  
  3. m_pSet->m_type=″發(fā)電機(jī)″;  
  4. //改正當(dāng)前記錄字段值  
  5. ……  
  6. m_pSet->Update(); //將改正結(jié)果存入數(shù)據(jù)庫Databnse  
  7. m_pSet->Requery(); 

5.撤消操作

假如用戶選取了漸增或者改正記錄后期望放棄當(dāng)前操作,能夠在調(diào)用Update()參數(shù)之前調(diào)用:
CRecordSet::Move(AFX_MOVE_REFRESH)來撤消漸增或改正模式,并恢復(fù)在漸增或改正模式之前的當(dāng)前記錄。其中,參數(shù)parameterAFX_MOVE_REFRESH的值為零。

6.數(shù)據(jù)庫Databnse連接的復(fù)用

在CRecordSet類中定義了唯一成員變量m_pDatabase:

  1. CDatabase* m_pDatabase; 

它是指向?qū)ο髷?shù)據(jù)庫Databnse類的指針。假如在CRecordSet類對象調(diào)用Open()參數(shù)之前,將唯一已經(jīng)打開的CDatabase類對象指針傳給m_pDatabase,就能共享相同的CDatabase類對象。如:

  1. CDatabase m_db;  
  2. CRecordSet m_set1,m_set2;  
  3. m_db.Open(_T(″Super_ES″)); //建立ODBC連接  
  4. m_set1.m_pDatabase=&m_db;  
  5. //m_set1復(fù)用m_db對象  
  6. m_set2.m_pDatabse=&m_db;  
  7. // m_set2復(fù)用m_db對象 

7.SQL語句的直接執(zhí)行

雖然咱們能夠經(jīng)過CRecordSet類完成大多數(shù)的查詢操作,而且在CRecordSet::Open()參數(shù)中也能夠幫助SQL語句,但是有時候咱們還那樣期望停止一部份更多有聯(lián)系操作,例如建立新表、刪除表、建立新的字段等,這時就需求應(yīng)用CDatabase類直接執(zhí)行SQL語句的機(jī)制。經(jīng)過調(diào)用CDatabase::ExecuteSQL()參數(shù)來完成SQL語句的直接執(zhí)行:

  1. BOOL CDB::ExecuteSQLAndReportFailure(const CString& strSQL)  
  2. {TRY  
  3. {m_pdb->ExecuteSQL(strSQL);  
  4. //直接執(zhí)行SQL語句}  
  5. CATCH (CDBException,e)  
  6. {CString strMsg;  
  7. strMsg.LoadString(IDS_EXECUTE_SQL_FAILED);  
  8. strMsg+=strSQL;  
  9. return FALSE;}  
  10. END_CATCH  
  11. return TRUE;} 

應(yīng)當(dāng)指出的是,由于不相同的DBMS幫助的數(shù)據(jù)操作語句不盡相同,直接執(zhí)行SQL語句估計(jì)會破壞熱門軟件的DBMS無關(guān)性,因此在實(shí)際運(yùn)用中應(yīng)當(dāng)慎用此類操作。

8.動態(tài)連接表

表的動態(tài)連接能夠利用在調(diào)用CRecordSet::Open()參數(shù)時指定SQL語句來呈現(xiàn)。同唯一記錄集對象只能來訪具有相同框架的表,否則查詢結(jié)果將無法與變量相對應(yīng)。

  1. void CDB::ChangeTable()  
  2. {  
  3. if (m_pSet->IsOpen()) m_pSet->Close();  
  4. switch (m_id)  
  5. {  
  6. case 0:  
  7. m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,  
  8. ″SELECT * FROM SLOT0″);  
  9. //連接表SLOT0  
  10. m_id=1;  
  11. break;  
  12. case 1:  
  13. m_pSet->Open(AFX_DB_USE_DEFAULT_TYPE,  
  14. ″SELECT * FROM SLOT1″); //連接表SLOT1  
  15. m_id=0;  
  16. break; }} 

9.動態(tài)連接數(shù)據(jù)庫Databnse

能夠經(jīng)過賦與CRecordSet類對象參數(shù)parameterm_pDatabase來連接不相同數(shù)據(jù)庫Databnse的CDatabase對象指針,從而呈現(xiàn)動態(tài)連接數(shù)據(jù)庫Databnse。

  1. void CDB::ChangeConnect()  
  2. {CDatabase* pdb=m_pSet->m_pDatabase;  
  3. pdb->Close();  
  4. switch (m_id)  
  5. {  
  6. case 0:  
  7. if (!pdb->Open(_T(″Super_ES″)))  
  8. //連接數(shù)據(jù)源Super_ES  
  9. {  
  10. AfxMessageBox(″數(shù)據(jù)源Super_ES打開失敗″,″請檢查相應(yīng)的ODBC連接″, MB_OK|MB_ICONWARNING);  
  11. exit(0);  
  12. }  
  13. m_id=1;  
  14. break;  
  15. case 1:  
  16. if (!pdb->Open(_T(″Motor″)))  
  17. //連接數(shù)據(jù)源Motor  
  18. {  
  19. AfxMessageBox(″數(shù)據(jù)源Motor打開失敗″,″請檢查相應(yīng)的ODBC連接″, MB_OK|MB_ICONWARNING);  
  20. exit(0);  
  21. }  
  22. m_id=0;  
  23. break; }} 

總結(jié):Visual C++中的ODBC類庫能夠幫助程式員完成絕大多數(shù)的數(shù)據(jù)庫Databnse操作。利用ODBC技能使得程式員從具體的DBMS中解脫出來,從而能夠遞減熱門軟件開發(fā)的務(wù)工量,縮短開發(fā)周期,并升高效率和熱門軟件的可靠性。希望本文能對你有幫助。

 

責(zé)任編輯:于鐵 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-01-22 10:44:10

VC++應(yīng)用程序

2010-03-24 09:06:02

Visual Stui

2010-01-27 17:42:58

VC++開發(fā)環(huán)境

2011-07-20 15:26:52

C++

2010-01-21 17:22:21

VC++

2010-06-04 16:26:02

2009-09-11 12:50:34

Scope屬性

2010-01-27 15:11:17

VC++編譯異常

2010-01-26 13:29:46

VC++應(yīng)用程序

2011-07-14 20:42:14

C++

2010-01-20 13:52:19

2009-08-05 14:45:56

VC中DLL的創(chuàng)建及調(diào)

2010-01-28 15:56:38

VC++ 6.0編譯

2011-07-14 22:04:16

VC++

2011-05-13 15:31:24

VC++

2009-01-04 09:33:52

VC++GCC移植

2011-07-13 18:00:51

CC++VC

2009-12-09 13:29:17

VC++ 2005 E

2011-06-08 16:05:34

VB數(shù)組

2009-12-21 16:52:54

靜態(tài)路由設(shè)置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

粉嫩一区二区三区在线看| 亚洲免费二区| 91久久人澡人人添人人爽欧美| 欧美日韩大片一区二区三区| 亚洲视频一区在线播放| 欧美日韩国产高清| 亚洲午夜精品久久久久久性色 | 91免费视频观看| 国产在线观看91精品一区| 国产成人啪精品午夜在线观看| 国产影视一区| 亚洲国产精品专区久久| 黄色a级片免费| 在线āv视频| 中文字幕欧美国产| 精品伦精品一区二区三区视频| 在线观看毛片视频| 性欧美xxxx大乳国产app| 欧美巨大黑人极品精男| 无码少妇精品一区二区免费动态| 一区二区网站| 欧美日韩高清影院| 黄色片视频在线播放| √8天堂资源地址中文在线| 国产精品国产成人国产三级| 久久久久资源| 欧美在线 | 亚洲| 精品在线播放午夜| 国产成人综合精品在线| 欧美日韩综合在线观看| 欧美日韩一区二区三区四区在线观看| 色综合伊人色综合网站| 欧洲美一区二区三区亚洲| 久久国产精品免费精品3p| 91精选在线观看| 性生活免费在线观看| 3d欧美精品动漫xxxx无尽| 亚洲18女电影在线观看| 91精品国产吴梦梦| 黄色网在线免费观看| 国产精品久久久久aaaa| 欧美极品一区二区| 青青久在线视频免费观看| yourporn久久国产精品| 不卡视频一区二区三区| 亚洲成人中文字幕在线| 国产成人8x视频一区二区| 91精品久久香蕉国产线看观看| 亚洲综合五月天婷婷丁香| 狂野欧美一区| 国产精品69av| 中文字幕 国产| 美国十次了思思久久精品导航| 国产激情久久久久| 怡红院成永久免费人全部视频| 日日摸夜夜添夜夜添国产精品| 奇米影视亚洲狠狠色| 中文字幕69页| 日本欧美加勒比视频| 国产伦精品免费视频| 一区二区三区www污污污网站| 久久99九九99精品| 亚洲资源在线看| 亚洲va天堂va欧美ⅴa在线| 粉嫩aⅴ一区二区三区四区五区| http;//www.99re视频| 成人久久久精品国产乱码一区二区| 国产成人精品综合在线观看| 国产一区二区三区av在线| 少妇又色又爽又黄的视频| 99精品1区2区| 日韩欧美精品一区二区三区经典| 1024国产在线| 亚洲激情校园春色| 日韩免费一级视频| 国产经典一区| 91精品国产高清一区二区三区蜜臀| 天堂va欧美va亚洲va老司机| 欧美顶级毛片在线播放| 中文字幕欧美精品在线 | 国产精品久久久乱弄| 欧美国产乱视频| 久久99国产综合精品免费| 免费看日韩精品| 国产精品手机视频| 国产特黄在线| 亚洲一区在线看| 国产最新免费视频| 国产aa精品| 精品无人国产偷自产在线| 日韩黄色中文字幕| 狠狠色丁香久久综合频道| 奇米成人av国产一区二区三区| 国产精品嫩草影院桃色| 91免费小视频| 欧美一级中文字幕| av有声小说一区二区三区| 日韩一区二区三区观看| 亚洲永久精品ww.7491进入| 一区二区三区网站| 国产成人在线一区| 亚洲AV无码国产精品午夜字幕| 久久久久久麻豆| 久草免费福利在线| 精品自拍视频| 亚洲欧美三级在线| 1024手机在线视频| 日韩精品成人一区二区在线| 国产成人精品一区二区三区福利| 懂色av中文在线| 亚洲国产aⅴ天堂久久| 在线观看日本一区二区| 你懂的一区二区三区| 九九久久久久99精品| 91黑人精品一区二区三区| 欧美挤奶吃奶水xxxxx| 亚洲精品视频中文字幕| 日日骚一区二区三区| 日本美女视频一区二区| 精品国产乱码久久久久久88av| 五月婷婷在线视频| 一本色道久久综合亚洲精品按摩| 97中文字幕在线观看| 欧美国产一级| 国产精品国产三级国产专播精品人| a天堂视频在线| 中文字幕一区二区三区在线观看 | 最新一区二区三区| 日韩va欧美va亚洲va久久| 黑人中文字幕一区二区三区| 欧洲一区二区三区| 91精品国产综合久久香蕉麻豆| 精品人妻中文无码av在线| 六月丁香综合| 欧美性色黄大片人与善| 老司机深夜福利在线观看| 精品播放一区二区| 麻豆一区二区三区精品视频| 国内精品自线一区二区三区视频| 亚洲一区二区三区免费看| 户外露出一区二区三区| 亚洲人在线观看| 波多野结衣小视频| 久久精品亚洲乱码伦伦中文| 国产a级一级片| 亚洲日本三级| 国产成人av网| porn视频在线观看| 欧美丝袜丝交足nylons图片| 日本人亚洲人jjzzjjz| 日本欧美在线观看| 一区二区成人国产精品| 国产麻豆精品| 久久91精品国产91久久久| 亚洲精品911| 懂色av一区二区三区| 精品黑人一区二区三区观看时间| 亚洲免费网址| 日韩福利视频| 精品一区二区三区中文字幕在线| 久久99久国产精品黄毛片入口 | 亚洲一品av免费观看| 日本妇乱大交xxxxx| 国产精品国产三级国产aⅴ入口| 日韩高清在线一区二区| 欧美日韩专区| 精品午夜一区二区三区| 日本欧美一区| 久久久成人av| 天天干在线观看| 在线亚洲人成电影网站色www| 99久久久无码国产精品不卡| 国产做a爰片久久毛片| 国产一级做a爰片久久毛片男| 久久成人福利| 国产日韩精品在线播放| 久草在线新免费首页资源站| 日韩精品在线观看视频| 亚洲字幕av一区二区三区四区| 亚洲最新视频在线观看| 国内精品久久99人妻无码| 久久99精品国产91久久来源| 国产在线xxxx| 精品国产成人| 91成人伦理在线电影| 中文在线8资源库| 在线视频精品一| 精品人妻一区二区三区麻豆91 | 国产精品少妇自拍| 国产精品99久久久精品无码| 久久亚洲色图| 久久www视频| 欧美日韩在线观看视频小说| 98国产高清一区| 日韩天堂在线| 久久久久久久久久久久久久久久久久av | 亚洲人成电影在线播放| 国产精品自产拍| 日韩欧美在线播放| 久久精品一区二区三| 日本一区二区三区dvd视频在线| 美女扒开腿免费视频| 男女视频一区二区| 狠狠97人人婷婷五月| 亚洲国产成人精品女人| 热re99久久精品国99热蜜月| 7m精品国产导航在线| 国产日韩精品在线观看| 成人激情综合| 亚州成人av在线| av大全在线| 最新69国产成人精品视频免费| 天堂91在线| 亚洲第一精品夜夜躁人人躁| 国产麻豆免费观看| 欧美性受xxxx| 亚洲综合图片网| 精品久久久精品| 国产av无码专区亚洲av毛网站| 国产欧美精品区一区二区三区| 伊人网综合视频| 国产白丝网站精品污在线入口| 波多野结衣xxxx| 日韩综合在线视频| 无码人妻精品一区二区三区在线 | 国产精品久久久久久久久晋中| 国产精品815.cc红桃| av影院午夜一区| 欧洲熟妇的性久久久久久| 国产精品18久久久久| 亚洲一二三不卡| 国产在线视频一区二区| 激情文学亚洲色图| 美女在线视频一区| 日韩一区二区三区不卡视频| 青青草精品视频| 日本爱爱免费视频| 日本伊人色综合网| 国产一线二线三线在线观看| 日日夜夜一区二区| 午夜激情福利在线| 日本成人中文字幕在线视频| 九一精品在线观看| 毛片av中文字幕一区二区| 国产精品一区二区羞羞答答| 美腿丝袜一区二区三区| 国产探花在线看| 国产乱国产乱300精品| 久草福利在线观看| eeuss影院一区二区三区| 国产伦精品一区三区精东| 99久久免费精品| 久久亚洲AV无码专区成人国产| 国产欧美日韩在线观看| 黄色录像免费观看| 亚洲精品中文字幕乱码三区| 久久精品国产av一区二区三区| 午夜精品成人在线视频| www.日本精品| 欧美伊人久久大香线蕉综合69| 亚洲怡红院av| 日韩欧美国产综合| 香蕉人妻av久久久久天天| 日韩高清av一区二区三区| 黄色片免费在线| 日韩视频精品在线| 动漫一区二区| 国产91网红主播在线观看| 色成人综合网| 好看的日韩精品| 欧美一区三区| 免费高清一区二区三区| 久久综合中文| 国产福利精品一区二区三区| 成人国产亚洲欧美成人综合网| 国产中文字幕一区二区| 国产精品嫩草久久久久| 久久久久久免费观看| 日韩欧美高清视频| 国产精品久久久久久久一区二区| 欧美成人精品1314www| 天堂91在线| 久久成人亚洲精品| 超碰一区二区| 2019国产精品视频| 久久不见久久见免费视频7| 正在播放精油久久| 亚洲影院一区| www.色.com| 久久久电影一区二区三区| 免费一级片视频| 色综合天天做天天爱| 亚洲AV无码国产精品午夜字幕| 亚洲色无码播放| 欧美性受ⅹ╳╳╳黑人a性爽| 日韩免费av在线| 日韩精品一区二区三区中文在线| 日韩久久在线| 在线综合视频| wwwww在线观看| 国产精品日日摸夜夜摸av| 国内免费精品视频| 91精品国产乱码| 91看片在线观看| 欧美一级片一区| 第一区第二区在线| 亚洲AV无码成人精品一区| 久久蜜桃精品| 日本一卡二卡在线| 亚洲日本在线a| 中文在线观看av| 国产亚洲激情视频在线| 华人av在线| 99国产超薄肉色丝袜交足的后果| 成人精品久久| 18禁男女爽爽爽午夜网站免费| 国产成人aaa| 久久久久久久久毛片| 欧美日本不卡视频| 成人在线二区| 国产精品福利网站| 国产一区二区三区日韩精品| 欧美一级片免费播放| 国产成人精品三级| 91免费公开视频| 在线成人av网站| 黄网站app在线观看| 国产欧美最新羞羞视频在线观看| 国产精品美女久久久久久不卡 | 国产精品第72页| 欧美一级理论片| caoporn免费在线| 亚洲影院污污.| 欧美a级片网站| 国产xxxxhd| 一区二区三区在线不卡| www.色呦呦| 欧美激情综合色| 爱高潮www亚洲精品| 国产传媒久久久| av成人免费在线| 西西44rtwww国产精品| 国产视频久久久| 经典三级一区二区| 亚洲v国产v| 久久99在线观看| 一级黄色录像视频| 欧美成人猛片aaaaaaa| 黄色成人在线网| 精品无人区一区二区三区竹菊| 亚洲综合99| 日韩中文字幕有码| 欧美日韩久久不卡| 97影院秋霞午夜在线观看| 99久久自偷自偷国产精品不卡| 亚洲视频免费| aa一级黄色片| 欧美性色综合网| 黄色网址视频在线观看| 成人在线观看网址| 国产日本精品| 久久久视频6r| 5566中文字幕一区二区电影| 男人天堂亚洲天堂| 久久99精品国产99久久| 日日摸夜夜添夜夜添精品视频 | 97电影在线观看| 91久久国产精品| 在线播放日韩| 一色道久久88加勒比一| 欧美高清视频一二三区| h片视频在线观看| 欧美日韩国产综合在线| 精品亚洲porn| 欧美一二三区视频| 自拍亚洲一区欧美另类| 日韩欧美激情电影| 成人精品视频一区二区| 亚洲男人的天堂在线观看| 午夜性色福利视频| 国产日本欧美一区二区三区| 亚洲午夜伦理| 免费看黄色av| 精品日本一线二线三线不卡| 亚洲高清黄色| 黄色一级大片免费| 久久精品人人做人人爽人人| 午夜免费福利视频| 国产精品视频1区| 最新亚洲激情| 韩国一级黄色录像| 精品亚洲夜色av98在线观看 | 日韩欧美一区中文| 黑人巨大亚洲一区二区久| 色婷婷777777仙踪林| 国产欧美日韩亚州综合| 天堂在线中文网| 亚洲一区制服诱惑| 美女免费视频一区| 中文字幕亚洲乱码熟女1区2区|