• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ADO技術(shù)動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫(kù)

    2007-01-01 00:00:00
    計(jì)算機(jī)時(shí)代 2007年3期

    摘要:為了保存程序運(yùn)行過(guò)程中產(chǎn)生的臨時(shí)數(shù)據(jù),比較好的做法是創(chuàng)建動(dòng)態(tài)數(shù)據(jù)庫(kù),這既能靈活地處理各種類型格式的臨時(shí)數(shù)據(jù),又能節(jié)省存儲(chǔ)空間。文章在Visual c++數(shù)據(jù)庫(kù)應(yīng)用程序中,利用ADO對(duì)象連接SQL Server數(shù)據(jù)源。然后通過(guò)調(diào)用ADO對(duì)象的函數(shù)來(lái)執(zhí)行SQL語(yǔ)句,以動(dòng)態(tài)地創(chuàng)建SQL Server數(shù)據(jù)庫(kù)。

    關(guān)鍵詞:Vc++;ADO;動(dòng)態(tài)創(chuàng)建;SQL Server數(shù)據(jù)庫(kù);SQL語(yǔ)句

    0引言

    在數(shù)據(jù)庫(kù)應(yīng)用程序運(yùn)行過(guò)程中,有時(shí)會(huì)產(chǎn)生一些臨時(shí)性的數(shù)據(jù),它們可能是某個(gè)計(jì)算的中間結(jié)果,也可能是用于與其他系統(tǒng)進(jìn)行交換的數(shù)據(jù),或者是用于報(bào)表輸出的數(shù)據(jù)等,這些數(shù)據(jù)雖然是臨時(shí)產(chǎn)生并被使用的,但在使用完成之前也需要進(jìn)行保存,而保存這些數(shù)據(jù)的方法不外乎兩種:用文件來(lái)保存和用數(shù)據(jù)庫(kù)來(lái)保存。若用文件來(lái)保存這些數(shù)據(jù),則由于數(shù)據(jù)格式的原因會(huì)給數(shù)據(jù)的處理帶來(lái)不便,因而用數(shù)據(jù)庫(kù)來(lái)保存就成為一般常用的解決方法。

    保存數(shù)據(jù)的數(shù)據(jù)庫(kù)一般可以事先創(chuàng)建也可以動(dòng)態(tài)創(chuàng)建。事先創(chuàng)建是指在程序運(yùn)行之前創(chuàng)建好數(shù)據(jù)庫(kù),動(dòng)態(tài)創(chuàng)建是指在程序運(yùn)行過(guò)程中創(chuàng)建數(shù)據(jù)庫(kù)。前者方法簡(jiǎn)便,但缺少了靈活性,因?yàn)槭孪葎?chuàng)建的數(shù)據(jù)庫(kù)的結(jié)構(gòu)固定,這必然限制了臨時(shí)數(shù)據(jù)的類型、格式和范圍,而且事先創(chuàng)建的數(shù)據(jù)庫(kù)在多數(shù)時(shí)間內(nèi)有可能是閑置的,這也造成了存儲(chǔ)空間的浪費(fèi)。較好的解決方案是在產(chǎn)生臨時(shí)性數(shù)據(jù)時(shí),根據(jù)需要?jiǎng)討B(tài)地創(chuàng)建數(shù)據(jù)庫(kù)以保存臨時(shí)數(shù)據(jù),在處理完成之后刪除動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)庫(kù)。本文給出了一種動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù)的方法。

    1數(shù)據(jù)庫(kù)動(dòng)態(tài)創(chuàng)建技術(shù)

    在vc++程序中動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù),需要通過(guò)數(shù)據(jù)庫(kù)接口來(lái)實(shí)現(xiàn)。vc++為開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序提供了多種數(shù)據(jù)庫(kù)訪問(wèn)接口,主要有:ODBC(開(kāi)放數(shù)據(jù)庫(kù)互連)、DAO(數(shù)據(jù)訪問(wèn)對(duì)象)、OLE DB(對(duì)象鏈接與嵌入數(shù)據(jù)庫(kù))和ADO(ActiveX數(shù)據(jù)對(duì)象)等。其中,DAO數(shù)據(jù)庫(kù)接口主要用于Access數(shù)據(jù)庫(kù)的訪問(wèn),在微軟的MFC類庫(kù)中提供了相關(guān)的DAO類(cDaoDatabase類和CDaoTableDef類),通過(guò)定義這些類的對(duì)象并調(diào)用相應(yīng)的成員函數(shù)就可以實(shí)現(xiàn)Access數(shù)據(jù)庫(kù)和表的動(dòng)態(tài)創(chuàng)建。對(duì)于ODBC和OLE DB訪問(wèn)接口,MFC中雖然也提供了相關(guān)的類,但沒(méi)有提供用于創(chuàng)建數(shù)據(jù)庫(kù)和表的成員函數(shù)。

    ADO是微軟極力推薦使用的最新的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),它已經(jīng)成為目前數(shù)據(jù)庫(kù)開(kāi)發(fā)的主流。因此,針對(duì)ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),如何實(shí)現(xiàn)sQL Server數(shù)據(jù)庫(kù)和表的動(dòng)態(tài)創(chuàng)建,就成為編程人員較為關(guān)心的一項(xiàng)技術(shù)。

    1.1 ADO對(duì)象

    ADO對(duì)象模型包括以下幾個(gè)對(duì)象:Connection對(duì)象、Error對(duì)象、Command對(duì)象、Parameter對(duì)象、Recordset對(duì)象和Field對(duì)象,其中Connection、Command和Recordset三個(gè)對(duì)象是主體對(duì)象,它們可以被獨(dú)立創(chuàng)建和釋放。

    Connection對(duì)象用來(lái)建立和維護(hù)與數(shù)據(jù)源的連接,對(duì)數(shù)據(jù)源的任何操作都需要一個(gè)Connection對(duì)象。Command對(duì)象用來(lái)創(chuàng)建和執(zhí)行對(duì)數(shù)據(jù)庫(kù)的操作命令,可以使用該對(duì)象執(zhí)行SQL語(yǔ)句或調(diào)用存儲(chǔ)過(guò)程,Command對(duì)象執(zhí)行后將返回一個(gè)Recordset對(duì)象。Recordset對(duì)象包含執(zhí)行數(shù)據(jù)庫(kù)操作后返回的—個(gè)記錄集。通過(guò)該對(duì)象可以瀏覽和更新數(shù)據(jù)庫(kù)中保存的記錄。

    一個(gè)基于ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的應(yīng)用程序通常是使用Connection對(duì)象建立與數(shù)據(jù)源的連接,然后使用Command對(duì)象給出對(duì)數(shù)據(jù)庫(kù)操作的命令,最后通過(guò)Recordset對(duì)象對(duì)結(jié)果記錄集進(jìn)行瀏覽、更新等操作。

    在程序中要?jiǎng)討B(tài)創(chuàng)建數(shù)據(jù)庫(kù),可以通過(guò)Connection對(duì)象來(lái)完成。首先通過(guò)該對(duì)象建立與數(shù)據(jù)源的連接,然后調(diào)用該對(duì)象的Execute函數(shù)來(lái)執(zhí)行SQL語(yǔ)句實(shí)現(xiàn)數(shù)據(jù)庫(kù)的創(chuàng)建。

    1.2創(chuàng)建數(shù)據(jù)庫(kù)和表的SQL語(yǔ)句

    (1)創(chuàng)建數(shù)據(jù)庫(kù)的SQL語(yǔ)句

    CREATE DATABASE語(yǔ)句用來(lái)創(chuàng)建用戶數(shù)據(jù)庫(kù)。創(chuàng)建一個(gè)用戶數(shù)據(jù)庫(kù)的語(yǔ)法格式如下:

    CREATE DATABASE database_name

    ON(NAME=logical file name,F(xiàn)ILENAME=‘os—file—name',

    SIZE=size,MAXSIZE=max_size I UNLIMITED,

    FLIEGROWTH=growth_increment)

    LOG ON(NAME=logical file name,F(xiàn)ILENAME=os—file—name',

    SIZE=size,MAXSIZE=max_sizelUNLIMITED,

    FLIEGROWTH=growth_increment)

    以上語(yǔ)法格式中,大寫的字符串是sQL關(guān)鍵字,小寫形式的字符串是實(shí)際使用時(shí)由用戶替換的參數(shù)。其中,參數(shù)database_name是要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)名,logical_file_name是邏輯文件名,os_file_name是操作系統(tǒng)下的文件名和路徑,size是文件的初始容量,max_size是文件的最大容量,growth_increment是文件空間每次的增加量。在ON后面括號(hào)內(nèi)的小寫字符串是數(shù)據(jù)庫(kù)文件的屬性參數(shù),在LOG ON后面的括號(hào)內(nèi)的小寫字符串是事務(wù)日志文件的屬性參數(shù)。

    (2)刪除數(shù)據(jù)庫(kù)SQL語(yǔ)句

    DROP DATABASE語(yǔ)句用于刪除數(shù)據(jù)庫(kù),該語(yǔ)句的語(yǔ)法格式如下:

    DROP DATABASE database_name

    其中,database_name是要?jiǎng)h除的數(shù)據(jù)庫(kù)名。

    (3)創(chuàng)建表的SQL語(yǔ)句

    CREATE TABLE語(yǔ)句用于創(chuàng)建—個(gè)表,其完整語(yǔ)法格式較為繁瑣,在此也只說(shuō)明本文實(shí)例程序中所用的語(yǔ)法格式。

    CREATE TABLE database_name.owner.table_name

    (column_namel data_type[NULLINOT NULL]

    [PRIMARY KEY],

    column_name2 data_type[NULLIOT NULL][PRIMARY KEY],

    ……

    column_namen data_type[NULLINOT NULL][PRIMARY KEY])

    其中,database_name是要在其中創(chuàng)建表的數(shù)據(jù)庫(kù)名,owner是表所有者的用戶ID,table_name是要?jiǎng)?chuàng)建的表名,column_namel—column_namen是表中的列名,data_type是列的數(shù)據(jù)類型。

    (4)刪除表的SQL語(yǔ)句

    DROP TABLE語(yǔ)句用于刪除表。該語(yǔ)句的語(yǔ)法格式如下:

    DROP TABLE database_name.dbo.table_name

    其中,database_name是要?jiǎng)h除的表所在的數(shù)據(jù)庫(kù),table_name是要?jiǎng)h除的表名。

    2動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù)的實(shí)現(xiàn)

    2.1 ADO對(duì)象與數(shù)據(jù)源的連接

    在MFC中,沒(méi)有可與ADO一起使用的類,因此,若要在Visual c++程序中使用ADO對(duì)象,首先需要導(dǎo)入ADO動(dòng)態(tài)鏈接庫(kù),在創(chuàng)建的VC工程的stdafx.h頭文件中添加如下代碼:

    #import“C:\Program Files\Common Files\System\ado\

    msadol 5.dll\"\no__namespace rename(“EOF”,“adoEOF”)

    以上代碼的作用是告訴編譯器將動(dòng)態(tài)鏈接庫(kù)文件msad015.dU引入到程序中,不使用ADO的命名空間,并且為了避免沖突,將符號(hào)常量EOF改名為adoEOF。

    ADO是基于COM技術(shù)的,因此,在使用ADO對(duì)象之前必須初始化COM環(huán)境,在VC工程應(yīng)用類的InitInstance成員函數(shù)中添加如下初始化COM環(huán)境的代碼:

    ::ColnitiaUze(NULL);

    在結(jié)束ADO對(duì)象的使用后,需要調(diào)用以下代碼釋放程序占用的COM資源。在VC工程應(yīng)用類的ExitInstance成員函數(shù)中添加如下代碼,將初始化的對(duì)象釋放,清除為ADO對(duì)象準(zhǔn)備的COM環(huán)境。

    ::CoUninitialize():

    在導(dǎo)入的ADO庫(kù)中包含3個(gè)基本接口:_ConnectionPtr接口、—commandPtr接口和_RecordsetPtr接口。其中,_ConnectionPtr接口用來(lái)創(chuàng)建一個(gè)數(shù)據(jù)源連接或執(zhí)行一條不返回結(jié)果的sQL語(yǔ)句。因此,通過(guò)_ConnectionPtr接口執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)的SQL語(yǔ)句,就可以實(shí)現(xiàn)動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù)。

    使用ConnectionPtr接口連接數(shù)據(jù)源的步驟如下:

    (1)聲明一個(gè)Connection對(duì)象指針;

    (2)調(diào)用Createlnstance函數(shù)創(chuàng)建一個(gè)Connection對(duì)象實(shí)例;

    (3)調(diào)用open函數(shù)建立到數(shù)據(jù)源的連接。

    其中,聲明的Connection對(duì)象指針如果要被多個(gè)函數(shù)使用,則應(yīng)將其聲明為類的成員變量。筆者的實(shí)例程序是基于對(duì)話框的應(yīng)用程序,因此,將Connection對(duì)象指針聲明為主對(duì)話框類的成員。代碼如下:

    -ConnectionPtr m_pConn;

    建立Connection對(duì)象到數(shù)據(jù)源連接的Open函數(shù)的原型為:HRESULT Open Lbstr_t ConnectionString,一bstr—t UserlD.

    _bstr_t Password,long Options);

    其中,參數(shù)的含義如下:

    ConnectionString:包含連接信息的字符串;

    UserlD:連接到數(shù)據(jù)源的用戶ID;

    Password:連接到數(shù)據(jù)源的密碼;

    Options:指明連接是同步進(jìn)行還是異步進(jìn)行,該參數(shù)可以是如下兩個(gè)枚舉常量:adConnectUnspecified(同步)和adAsyncConnect(異步)。

    在這里,需要特別說(shuō)明的是ConnectionStfing參數(shù)的格式。在實(shí)際應(yīng)用中,根據(jù)所用數(shù)據(jù)庫(kù)軟件的不同,ConnecfionStdng參數(shù)的格式也有所不同。以下是筆者測(cè)試通過(guò)的連接sQLServer 2000數(shù)據(jù)源的示例代碼:

    m_pConn.Createlnstance(_uuidof(ConnectJon)):

    m_pConn->Open('’Provider=SQLOLEDB.1:

    Integrated Security=SSPI;Persist Security Info=False;

    Data Source:Igtf\",.1Ill。lllI adConnectUnspecified);

    其中,代碼中的lgff是SQL Server服務(wù)器名,讀者在驗(yàn)證時(shí)需要根據(jù)自己的具體情況進(jìn)行修改。以上代碼可以添加到主對(duì)話框類的OnlnitDialog成員函數(shù)中。

    從示例代碼可以看出,ConnectionString參數(shù)的格式比較繁瑣,初學(xué)者不容易理解和掌握。不過(guò),微軟為我們提供了一種可視化的解決方法,就是使用通用數(shù)據(jù)連接文件來(lái)建立和測(cè)試ADO的連接屬性。數(shù)據(jù)連接文件的使用方法是:

    (1)在VC工程文件夾中新建一個(gè)文本文件,然后將該文.件的擴(kuò)展名改為udl;

    (2)雙擊該文件打開(kāi)“數(shù)據(jù)鏈接屬性”對(duì)話框,在“提供程序”標(biāo)簽頁(yè)中選擇Microsoft OLE DB Provider for Server項(xiàng),如圖l所示。

    (3)在“連接”標(biāo)簽頁(yè)中,選擇或輸入SQL Server 2000服務(wù)器名稱,如圖2所示。

    (4)單擊“連接”標(biāo)簽頁(yè)中的“測(cè)試連接”按鈕,測(cè)試連接屬性設(shè)置是否正確,若彈出的對(duì)話框中顯示“測(cè)試連接成功”,則單擊“確定”按鈕完成數(shù)據(jù)連接文件的設(shè)置。

    數(shù)據(jù)連接文件設(shè)置完成后,就可以將前面Open函數(shù)的調(diào)用代碼改為:

    m._pConn->Open(“File Name=mydata.udl”,””,””,

    adConnectUnspecified);

    使用數(shù)據(jù)連接文件的好處不僅僅是簡(jiǎn)化了連接屬性的設(shè)置,還有利于數(shù)據(jù)庫(kù)應(yīng)用程序在用戶機(jī)器上的安裝和調(diào)試。當(dāng)我們將開(kāi)發(fā)好的數(shù)據(jù)庫(kù)應(yīng)用程序安裝到用戶機(jī)器上時(shí),由于運(yùn)行環(huán)境發(fā)生了改變,有時(shí)就需要重新修改程序代碼進(jìn)行連接調(diào)試。如果我們使用數(shù)據(jù)連接文件來(lái)設(shè)置連接屬性,則在程序安裝到用戶機(jī)器上后,只需要重新設(shè)置一下數(shù)據(jù)連接文件,而不用修改程序就可以正常運(yùn)行了。

    在應(yīng)用程序中,一般在使用完成數(shù)據(jù)庫(kù)后,應(yīng)該關(guān)閉與數(shù)據(jù)源的連接。ADO在關(guān)閉連接的同時(shí),也將關(guān)閉所有使用這個(gè)連接的ADO對(duì)象。關(guān)閉連接的代碼如下:

    m_pConn->Close():

    m_pConn=NULL;

    以上代碼可以添加到主對(duì)話框類的OnDestroy成員函數(shù)中。

    2.2用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)和表

    調(diào)用ADO對(duì)象模型中的Connection對(duì)象的Execute函數(shù)執(zhí)行sQL語(yǔ)句,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)源的相關(guān)操作。該函數(shù)的原型如下:

    _RecordsetPtr Execute (_bstr_t CommandText,

    VARIANTRecordsAffected,long Options);

    其中,參數(shù)CommandText用于給出要執(zhí)行的SQL語(yǔ)句,RecordsAffected是執(zhí)行命令后的返回值,表明符合命令的行數(shù),Options用于指定命令的類型。

    如果要想創(chuàng)建數(shù)據(jù)庫(kù)和表,則只要在調(diào)用Execute函數(shù)時(shí),第1個(gè)參數(shù)給出創(chuàng)建數(shù)據(jù)庫(kù)和表的sQL語(yǔ)句即可。示例代碼如下:

    _bstr_t strSQL(\"CREATE DATABASE student

    ON(NAME=student,

    FILENAME=\'C:\\Pmgmm Files\\Microsoft SQL

    Server\\MSSQL\\data\\student_data.mdff)

    LOG ON(NAME:student_log,

    FILENAME=VC:\\Program Files\\Microsoft SQL

    Server\\MSSQL\\data\\student_log.IdfV)”);

    try{

    m_pConn->Execute(strSQL,NULL,adCmdText);

    catch Lcom_error&e){

    MessageBox(e.ErrorMessage()):

    以上示例代碼是創(chuàng)建—個(gè)名為student的數(shù)據(jù)庫(kù)。SQL語(yǔ)句中沒(méi)有指定數(shù)據(jù)庫(kù)文件和事務(wù)日志文件的初始容量,則默認(rèn)為1MB;沒(méi)有給出兩個(gè)文件的最大容量,則默認(rèn)為UNLIMITED。即增長(zhǎng)到硬盤滿為止;沒(méi)有給出文件的增量,則默認(rèn)為10%。

    創(chuàng)建表的示例代碼如下:

    _bstr_t strSQL(“create table student.dbo.用戶表(

    用戶名varchar(10)NO l NULL PRIMARY KEY.

    密碼varchar(16)NOT NULL,權(quán)限 integer)”):

    try{

    m_pConn->Execute(strSQL,NULL,adCmdText);

    catch(_com_errore){

    MessageBox(e.ErrorMessage()):

    以上代碼是在student數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名為“用戶表”的表,該表有3個(gè)列:“用戶名”、“密碼”和“權(quán)限”,其中“用戶名”為主鍵,“用戶名”和“密碼”不能為空。

    2.3用SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)和表

    刪除數(shù)據(jù)庫(kù)和表的SQL語(yǔ)句的語(yǔ)法相對(duì)較為簡(jiǎn)單,刪除student數(shù)據(jù)庫(kù)的示例代碼如下:

    bstr_t strSQL(\"DROP DATABASE student\"};

    try{

    m_pConn->Execute(strSQL,NULL.a(chǎn)dCmdText);

    }

    catch(_-com_error&e){

    MessageBox(e.ErrorMessage()):

    刪除“用戶表”的示例代碼如下:

    bstr_t strSQL(”DROP TABLE student.dbo.用戶表”):

    try{

    m_pConn->Execute(strSQL.NULL。adCmdText);

    }

    catch L-com_errore){

    MessageBox(e.ErrorMessage()):

    3結(jié)束語(yǔ)

    本文探討了利用ADO的Connection對(duì)象來(lái)連接數(shù)據(jù)源,然后通過(guò)調(diào)用Connection對(duì)象的Execute函數(shù)來(lái)執(zhí)行sQL語(yǔ)句,實(shí)現(xiàn)SQL Sewer 2000數(shù)據(jù)庫(kù)動(dòng)態(tài)創(chuàng)建的方法。讀者可以參照文中介紹的方法,或?qū)⑺械氖纠a添加到自己的應(yīng)用程序中,即可在自己的應(yīng)用程序中實(shí)現(xiàn)數(shù)據(jù)庫(kù)的動(dòng)態(tài)創(chuàng)建。文中雖然針對(duì)的是Visual c++編程工具和sQL Sewer 2000數(shù)據(jù)庫(kù),但動(dòng)態(tài)創(chuàng)建數(shù)據(jù)庫(kù)和表的原理是一樣的,讀者只要理解了文中介紹的編程技術(shù),也同樣可以使用其他編程工具(如Visual Basic)來(lái)實(shí)現(xiàn)sQL Server 2000數(shù)據(jù)庫(kù)或其他常見(jiàn)關(guān)系型數(shù)據(jù)庫(kù)(如Oracle)的動(dòng)態(tài)創(chuàng)建。動(dòng)態(tài)創(chuàng)建的數(shù)據(jù)庫(kù)的訪問(wèn)方法則與其他事先建立的數(shù)據(jù)庫(kù)的訪問(wèn)方法相同。

    (注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。)

    18禁观看日本| 久久久久久久国产电影| 深夜精品福利| 久久天躁狠狠躁夜夜2o2o | 久久综合国产亚洲精品| 国产乱来视频区| 精品视频人人做人人爽| 欧美日韩综合久久久久久| 婷婷色麻豆天堂久久| 精品一区二区三区四区五区乱码 | 天堂8中文在线网| 老司机影院成人| 日日啪夜夜爽| 成人亚洲欧美一区二区av| 一区在线观看完整版| 久久久久精品国产欧美久久久 | 国产激情久久老熟女| 中文字幕精品免费在线观看视频| 国产爽快片一区二区三区| 男女床上黄色一级片免费看| 婷婷色综合大香蕉| www.精华液| 美女国产高潮福利片在线看| 考比视频在线观看| 欧美日韩成人在线一区二区| 日本av手机在线免费观看| 少妇人妻精品综合一区二区| 亚洲男人天堂网一区| 丝袜人妻中文字幕| 精品一区在线观看国产| 啦啦啦啦在线视频资源| 成年人免费黄色播放视频| 国产精品成人在线| 国产99久久九九免费精品| 超碰97精品在线观看| 欧美激情 高清一区二区三区| 老鸭窝网址在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 一本久久精品| 午夜福利乱码中文字幕| 亚洲人成电影观看| 亚洲精品av麻豆狂野| 国产成人欧美| 人人妻人人澡人人爽人人夜夜| 看非洲黑人一级黄片| 免费观看性生交大片5| 超碰97精品在线观看| 亚洲成av片中文字幕在线观看| 免费人妻精品一区二区三区视频| av在线播放精品| 悠悠久久av| 精品人妻熟女毛片av久久网站| 免费人妻精品一区二区三区视频| 丁香六月欧美| 无遮挡黄片免费观看| 精品国产一区二区三区久久久樱花| 亚洲美女视频黄频| 一级毛片我不卡| 亚洲成人免费av在线播放| 国产高清不卡午夜福利| 亚洲综合色网址| 国产精品嫩草影院av在线观看| 国产一区有黄有色的免费视频| 老司机影院毛片| 亚洲精品久久久久久婷婷小说| 一区二区av电影网| 欧美日韩视频精品一区| 少妇人妻 视频| 纯流量卡能插随身wifi吗| 亚洲成国产人片在线观看| av一本久久久久| 黑人猛操日本美女一级片| 国产一区二区 视频在线| 久久韩国三级中文字幕| 亚洲精品国产av蜜桃| 亚洲伊人色综图| 精品视频人人做人人爽| 国产一区二区三区综合在线观看| 叶爱在线成人免费视频播放| 1024视频免费在线观看| 性少妇av在线| 成人18禁高潮啪啪吃奶动态图| 99九九在线精品视频| 国产日韩欧美视频二区| 午夜免费男女啪啪视频观看| 成人手机av| 观看美女的网站| 飞空精品影院首页| 你懂的网址亚洲精品在线观看| 国产精品人妻久久久影院| 免费日韩欧美在线观看| 欧美老熟妇乱子伦牲交| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲综合精品二区| 在线观看一区二区三区激情| 欧美亚洲 丝袜 人妻 在线| 9色porny在线观看| 韩国精品一区二区三区| 男女下面插进去视频免费观看| 欧美中文综合在线视频| 青春草国产在线视频| 深夜精品福利| 七月丁香在线播放| 欧美精品亚洲一区二区| 欧美人与善性xxx| 69精品国产乱码久久久| 欧美人与性动交α欧美软件| 亚洲人成网站在线观看播放| 日韩伦理黄色片| 王馨瑶露胸无遮挡在线观看| 午夜影院在线不卡| 亚洲精品久久久久久婷婷小说| 人人妻人人添人人爽欧美一区卜| 九九爱精品视频在线观看| 国产高清不卡午夜福利| 国产精品 欧美亚洲| 麻豆乱淫一区二区| 久久久久久久久久久免费av| 一级毛片 在线播放| 2021少妇久久久久久久久久久| 亚洲国产看品久久| 免费观看a级毛片全部| 少妇猛男粗大的猛烈进出视频| 自线自在国产av| 精品国产乱码久久久久久男人| 一本色道久久久久久精品综合| 女性被躁到高潮视频| avwww免费| 亚洲精品自拍成人| 热re99久久国产66热| 在线观看人妻少妇| 久久免费观看电影| 国产免费视频播放在线视频| tube8黄色片| 高清黄色对白视频在线免费看| 国产精品三级大全| 老汉色∧v一级毛片| 国产一区二区激情短视频 | 国产黄频视频在线观看| 亚洲综合精品二区| 国产毛片在线视频| 一本色道久久久久久精品综合| 丝袜脚勾引网站| 欧美激情 高清一区二区三区| 免费在线观看黄色视频的| 精品久久久精品久久久| 国产不卡av网站在线观看| 国产精品成人在线| 亚洲综合精品二区| 黄片小视频在线播放| 日本午夜av视频| 热re99久久国产66热| 在线观看一区二区三区激情| 一区在线观看完整版| 一区二区三区乱码不卡18| 无遮挡黄片免费观看| 国产精品久久久久久人妻精品电影 | 欧美xxⅹ黑人| 日韩制服骚丝袜av| av在线播放精品| 国产亚洲av高清不卡| 日本欧美视频一区| 亚洲av国产av综合av卡| 卡戴珊不雅视频在线播放| 搡老岳熟女国产| 日韩大码丰满熟妇| 91精品国产国语对白视频| 亚洲国产毛片av蜜桃av| 午夜av观看不卡| 国产免费一区二区三区四区乱码| 蜜桃在线观看..| 视频区图区小说| 国产老妇伦熟女老妇高清| 久久亚洲国产成人精品v| 免费在线观看黄色视频的| 老司机亚洲免费影院| 久久天堂一区二区三区四区| 一区二区av电影网| 国产亚洲一区二区精品| 精品国产一区二区三区久久久樱花| 亚洲色图 男人天堂 中文字幕| 国产成人a∨麻豆精品| 丝袜在线中文字幕| 亚洲成色77777| 亚洲国产中文字幕在线视频| 亚洲av在线观看美女高潮| 纵有疾风起免费观看全集完整版| 少妇猛男粗大的猛烈进出视频| 男人添女人高潮全过程视频| 婷婷色综合大香蕉| 少妇人妻精品综合一区二区| 你懂的网址亚洲精品在线观看| 久久久久人妻精品一区果冻| 国产日韩欧美在线精品| 美女主播在线视频| 侵犯人妻中文字幕一二三四区| 精品酒店卫生间| 又粗又硬又长又爽又黄的视频| 久久久精品区二区三区| 永久免费av网站大全| 久久久久久久精品精品| 秋霞伦理黄片| 国产97色在线日韩免费| 晚上一个人看的免费电影| 亚洲欧美精品自产自拍| 国产成人a∨麻豆精品| 久久精品aⅴ一区二区三区四区| 精品国产乱码久久久久久小说| 在现免费观看毛片| 成人免费观看视频高清| 亚洲国产精品一区三区| 欧美av亚洲av综合av国产av | 男女午夜视频在线观看| 国产 一区精品| 老司机深夜福利视频在线观看 | 国产99久久九九免费精品| 免费少妇av软件| 99精品久久久久人妻精品| 在现免费观看毛片| 大陆偷拍与自拍| 久久影院123| 丝袜喷水一区| 日本一区二区免费在线视频| 在线观看www视频免费| 一级毛片黄色毛片免费观看视频| 亚洲色图综合在线观看| a级片在线免费高清观看视频| av片东京热男人的天堂| 国产欧美日韩一区二区三区在线| 日韩大码丰满熟妇| 亚洲欧美中文字幕日韩二区| 亚洲av日韩精品久久久久久密 | 卡戴珊不雅视频在线播放| 欧美变态另类bdsm刘玥| 少妇的丰满在线观看| 欧美亚洲日本最大视频资源| 人成视频在线观看免费观看| 欧美乱码精品一区二区三区| 国产成人一区二区在线| 一边亲一边摸免费视频| 精品亚洲成a人片在线观看| 大香蕉久久成人网| 最近的中文字幕免费完整| 亚洲人成77777在线视频| 中文字幕最新亚洲高清| 秋霞伦理黄片| 在线观看三级黄色| 亚洲成人免费av在线播放| 亚洲天堂av无毛| 国产 精品1| 色网站视频免费| 综合色丁香网| 久久精品熟女亚洲av麻豆精品| 一区在线观看完整版| 精品少妇久久久久久888优播| 一级黄片播放器| 国产不卡av网站在线观看| av福利片在线| av女优亚洲男人天堂| 不卡视频在线观看欧美| 最黄视频免费看| 久久精品国产综合久久久| 丝袜喷水一区| 免费不卡黄色视频| 超碰97精品在线观看| 亚洲av欧美aⅴ国产| 大片免费播放器 马上看| 国产毛片在线视频| 在线观看国产h片| 亚洲国产看品久久| 狂野欧美激情性xxxx| 成年av动漫网址| 亚洲精品久久久久久婷婷小说| 欧美国产精品va在线观看不卡| 九草在线视频观看| 综合色丁香网| 熟女av电影| 国产男女内射视频| 日本欧美视频一区| 成年女人毛片免费观看观看9 | avwww免费| 亚洲av男天堂| 亚洲图色成人| 别揉我奶头~嗯~啊~动态视频 | 国产片特级美女逼逼视频| 天天添夜夜摸| 91精品国产国语对白视频| 欧美黄色片欧美黄色片| 久久影院123| 精品一品国产午夜福利视频| 国产男人的电影天堂91| 国产野战对白在线观看| 免费不卡黄色视频| 女人高潮潮喷娇喘18禁视频| 久久久精品国产亚洲av高清涩受| 天天躁夜夜躁狠狠躁躁| 亚洲一卡2卡3卡4卡5卡精品中文| 久久精品久久久久久久性| av网站免费在线观看视频| 中文字幕精品免费在线观看视频| 国产av码专区亚洲av| 久久97久久精品| 18禁国产床啪视频网站| 国产亚洲最大av| 亚洲国产看品久久| 大码成人一级视频| 波多野结衣av一区二区av| 少妇被粗大猛烈的视频| 亚洲三区欧美一区| 18在线观看网站| 国产精品久久久久久精品电影小说| 在线天堂最新版资源| 欧美人与性动交α欧美软件| 99re6热这里在线精品视频| 久久久精品94久久精品| 少妇被粗大的猛进出69影院| 亚洲欧洲日产国产| 久热这里只有精品99| 少妇的丰满在线观看| 十八禁高潮呻吟视频| 视频区图区小说| 欧美 日韩 精品 国产| 亚洲精品,欧美精品| 亚洲欧美一区二区三区国产| 午夜福利网站1000一区二区三区| 老司机深夜福利视频在线观看 | 日韩,欧美,国产一区二区三区| 中文字幕最新亚洲高清| 熟女av电影| 伦理电影免费视频| 久久亚洲国产成人精品v| 男女高潮啪啪啪动态图| 亚洲视频免费观看视频| 在线观看国产h片| 另类亚洲欧美激情| 夫妻午夜视频| 亚洲人成网站在线观看播放| 成人影院久久| 尾随美女入室| 久久久久久久精品精品| www.av在线官网国产| 亚洲精品久久午夜乱码| 十八禁网站网址无遮挡| 中文字幕av电影在线播放| 捣出白浆h1v1| 国产成人免费无遮挡视频| 国产欧美亚洲国产| av卡一久久| videosex国产| 午夜91福利影院| 久久女婷五月综合色啪小说| 女人爽到高潮嗷嗷叫在线视频| 日韩熟女老妇一区二区性免费视频| 午夜免费鲁丝| 国产成人精品福利久久| 色播在线永久视频| 亚洲成人av在线免费| 色播在线永久视频| 你懂的网址亚洲精品在线观看| 久久精品国产综合久久久| 成人免费观看视频高清| 欧美乱码精品一区二区三区| 精品免费久久久久久久清纯 | 欧美 日韩 精品 国产| 成人黄色视频免费在线看| 婷婷成人精品国产| 99精品久久久久人妻精品| 欧美日韩亚洲高清精品| 亚洲美女视频黄频| 日本91视频免费播放| 日日撸夜夜添| 一级爰片在线观看| √禁漫天堂资源中文www| 午夜免费观看性视频| 亚洲欧洲日产国产| 亚洲第一青青草原| 色视频在线一区二区三区| 欧美人与善性xxx| 欧美日韩视频高清一区二区三区二| 人人妻人人爽人人添夜夜欢视频| 国产av国产精品国产| 啦啦啦 在线观看视频| 最近中文字幕高清免费大全6| 欧美日本中文国产一区发布| 午夜日韩欧美国产| 精品国产乱码久久久久久男人| 一本大道久久a久久精品| a级片在线免费高清观看视频| 青春草亚洲视频在线观看| 人妻一区二区av| 综合色丁香网| 午夜福利免费观看在线| 亚洲精品国产av成人精品| 99精国产麻豆久久婷婷| 日韩欧美精品免费久久| 51午夜福利影视在线观看| 国语对白做爰xxxⅹ性视频网站| 国产熟女欧美一区二区| 久久久久精品性色| 免费高清在线观看视频在线观看| 如何舔出高潮| 精品久久久久久电影网| 少妇精品久久久久久久| 国产成人欧美在线观看 | 国产在线视频一区二区| 毛片一级片免费看久久久久| 免费高清在线观看日韩| www日本在线高清视频| 男的添女的下面高潮视频| 久久久久国产精品人妻一区二区| 免费人妻精品一区二区三区视频| 中文字幕制服av| 国产一区二区在线观看av| 伊人久久国产一区二区| 桃花免费在线播放| h视频一区二区三区| 欧美另类一区| 高清视频免费观看一区二区| 毛片一级片免费看久久久久| 制服丝袜香蕉在线| 久久人人爽人人片av| 制服诱惑二区| 精品亚洲乱码少妇综合久久| 日韩中文字幕视频在线看片| 女人高潮潮喷娇喘18禁视频| 一边亲一边摸免费视频| 国产伦理片在线播放av一区| 国产成人a∨麻豆精品| 在线天堂最新版资源| 国产精品熟女久久久久浪| 国产精品 国内视频| 久久久精品区二区三区| 亚洲美女视频黄频| 波多野结衣av一区二区av| 免费久久久久久久精品成人欧美视频| 午夜福利,免费看| 啦啦啦视频在线资源免费观看| 色网站视频免费| 五月天丁香电影| 日韩av在线免费看完整版不卡| 久久精品久久久久久久性| 又大又黄又爽视频免费| 国产又爽黄色视频| 精品第一国产精品| 亚洲中文av在线| 美国免费a级毛片| 国产女主播在线喷水免费视频网站| 蜜桃在线观看..| 精品第一国产精品| 久久女婷五月综合色啪小说| 国产片特级美女逼逼视频| 国产极品天堂在线| 久久人人97超碰香蕉20202| 十分钟在线观看高清视频www| 国产淫语在线视频| 精品一区二区三区av网在线观看 | 两个人看的免费小视频| 波野结衣二区三区在线| 中文乱码字字幕精品一区二区三区| 亚洲精品自拍成人| 狠狠精品人妻久久久久久综合| 成人国语在线视频| kizo精华| 国产1区2区3区精品| 久久人妻熟女aⅴ| 一二三四在线观看免费中文在| 国产一区二区三区av在线| 久久人人97超碰香蕉20202| 中文字幕色久视频| 国产一卡二卡三卡精品 | 欧美黄色片欧美黄色片| 午夜91福利影院| av网站免费在线观看视频| 免费看av在线观看网站| 亚洲av男天堂| 热99久久久久精品小说推荐| 久久韩国三级中文字幕| 中文天堂在线官网| 18禁动态无遮挡网站| 少妇的丰满在线观看| 久久天堂一区二区三区四区| 毛片一级片免费看久久久久| 天天操日日干夜夜撸| 婷婷成人精品国产| 各种免费的搞黄视频| 免费看不卡的av| 亚洲,一卡二卡三卡| 狠狠婷婷综合久久久久久88av| 狂野欧美激情性bbbbbb| 成人国产麻豆网| 国产又爽黄色视频| 天美传媒精品一区二区| 你懂的网址亚洲精品在线观看| 精品少妇一区二区三区视频日本电影 | 18禁裸乳无遮挡动漫免费视频| 久久毛片免费看一区二区三区| 一区二区三区四区激情视频| 在线看a的网站| 亚洲成人一二三区av| 女人精品久久久久毛片| 久久亚洲国产成人精品v| 国产精品成人在线| 国产不卡av网站在线观看| 久久综合国产亚洲精品| 叶爱在线成人免费视频播放| 亚洲欧美激情在线| 国产一区二区在线观看av| 久久久精品免费免费高清| 高清不卡的av网站| 纵有疾风起免费观看全集完整版| 欧美成人精品欧美一级黄| 色婷婷av一区二区三区视频| 成年av动漫网址| 七月丁香在线播放| tube8黄色片| 一级毛片 在线播放| 在线亚洲精品国产二区图片欧美| 少妇被粗大猛烈的视频| 久久久国产一区二区| av片东京热男人的天堂| www.熟女人妻精品国产| 伊人久久大香线蕉亚洲五| 国产极品天堂在线| 啦啦啦在线免费观看视频4| 国产精品久久久人人做人人爽| 精品一区二区免费观看| 久久久久久人妻| 一区在线观看完整版| 蜜桃国产av成人99| 两性夫妻黄色片| 狂野欧美激情性bbbbbb| 一区二区三区激情视频| 国产高清不卡午夜福利| xxxhd国产人妻xxx| 亚洲精华国产精华液的使用体验| 国产成人免费观看mmmm| 热re99久久精品国产66热6| 午夜福利网站1000一区二区三区| 一区二区三区乱码不卡18| videosex国产| 电影成人av| 日韩免费高清中文字幕av| 国产成人精品在线电影| 91精品国产国语对白视频| 午夜免费男女啪啪视频观看| 久久午夜综合久久蜜桃| 一区福利在线观看| 日韩精品有码人妻一区| 亚洲成人一二三区av| 亚洲七黄色美女视频| 我要看黄色一级片免费的| 黑丝袜美女国产一区| 五月天丁香电影| 国产熟女午夜一区二区三区| 午夜影院在线不卡| 久久久久久久精品精品| 国产成人精品久久久久久| 五月天丁香电影| 男的添女的下面高潮视频| 男人爽女人下面视频在线观看| 久久国产精品大桥未久av| 欧美日韩视频高清一区二区三区二| 1024香蕉在线观看| 天美传媒精品一区二区| 精品国产一区二区三区久久久樱花| 精品少妇一区二区三区视频日本电影 | 欧美最新免费一区二区三区| 少妇 在线观看| 99热网站在线观看| 亚洲第一青青草原| 中文字幕精品免费在线观看视频| 亚洲色图 男人天堂 中文字幕| 搡老岳熟女国产| 亚洲色图综合在线观看| 久久久久久久久久久久大奶| 日韩制服丝袜自拍偷拍| 搡老乐熟女国产| 免费观看av网站的网址| 飞空精品影院首页| √禁漫天堂资源中文www| 人人妻人人澡人人爽人人夜夜| 精品少妇一区二区三区视频日本电影 | 少妇猛男粗大的猛烈进出视频| 美女大奶头黄色视频| 亚洲美女搞黄在线观看| 搡老乐熟女国产| 19禁男女啪啪无遮挡网站| 啦啦啦视频在线资源免费观看| 成人亚洲精品一区在线观看| 日本av手机在线免费观看| 亚洲人成网站在线观看播放| 成人影院久久| 久久亚洲国产成人精品v| 久久久久精品国产欧美久久久 | 丁香六月欧美| 十八禁人妻一区二区| 国产成人系列免费观看| 国产精品 欧美亚洲| 人体艺术视频欧美日本| 亚洲av综合色区一区| 亚洲欧洲日产国产| 精品国产一区二区三区久久久樱花| 国产一级毛片在线| 男女边吃奶边做爰视频| 精品国产乱码久久久久久男人| 亚洲精品国产区一区二| 亚洲国产中文字幕在线视频| 久久国产精品大桥未久av| 婷婷成人精品国产| 亚洲欧洲日产国产| 欧美日韩一区二区视频在线观看视频在线| 晚上一个人看的免费电影| 欧美少妇被猛烈插入视频| 性高湖久久久久久久久免费观看| 亚洲精品成人av观看孕妇|