999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

實(shí)時(shí)數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)交換服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)

2013-08-18 08:23:06北京首鋼自動(dòng)化信息技術(shù)有限公司李亮舉劉孟祎
自動(dòng)化博覽 2013年4期
關(guān)鍵詞:數(shù)據(jù)庫(kù)服務(wù)

北京首鋼自動(dòng)化信息技術(shù)有限公司 李亮舉,劉孟祎

現(xiàn)代工業(yè)的特點(diǎn)是要求生產(chǎn)全過(guò)程的實(shí)時(shí)監(jiān)控,高速的實(shí)時(shí)數(shù)據(jù)處理,長(zhǎng)期的歷史數(shù)據(jù)存儲(chǔ)以及生產(chǎn)信息的集成與共享。在工業(yè)生產(chǎn)過(guò)程中,計(jì)算機(jī)控制技術(shù)已經(jīng)得到了普及,先進(jìn)的控制理論和計(jì)算機(jī)技術(shù)相結(jié)合更好地解決了生產(chǎn)工藝日益復(fù)雜,控制質(zhì)量要求越來(lái)越高的問(wèn)題。

在實(shí)際工業(yè)自動(dòng)化控制過(guò)程中需要處理大量的數(shù)據(jù),數(shù)據(jù)變化速度快,并且存在大量非結(jié)構(gòu)化數(shù)據(jù)(包括圖象、聲音、視頻等)以及半結(jié)構(gòu)化數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)庫(kù)的長(zhǎng)處在于不需要人工干預(yù),可實(shí)時(shí)處理大量并發(fā)的數(shù)據(jù)信息;關(guān)系數(shù)據(jù)庫(kù)可以非常簡(jiǎn)便地實(shí)現(xiàn)對(duì)象信息的定義和存儲(chǔ)。因此,基于工業(yè)自動(dòng)化控制的需求以及兩種數(shù)據(jù)庫(kù)各自不同的優(yōu)勢(shì),產(chǎn)生了實(shí)時(shí)數(shù)據(jù)庫(kù)與關(guān)系數(shù)據(jù)庫(kù)的結(jié)合使用,從而產(chǎn)生了兩種數(shù)據(jù)庫(kù)之間密切頻繁地相互通訊。為了解決這一問(wèn)題,進(jìn)行了數(shù)據(jù)交換服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)。

1 數(shù)據(jù)交換服務(wù)的基本框架

1.1 數(shù)據(jù)交換服務(wù)的概念和功能

RealTime Database (RTDB)實(shí)時(shí)數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)技術(shù)發(fā)展的一個(gè)分支,是數(shù)據(jù)庫(kù)技術(shù)結(jié)合實(shí)時(shí)處理技術(shù)產(chǎn)生的,適用于處理不斷更新的快速變化的數(shù)據(jù)及具有時(shí)間限制的事務(wù)。實(shí)時(shí)數(shù)據(jù)庫(kù)是開(kāi)發(fā)實(shí)時(shí)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)等的重要支撐,它有較高的I/O事務(wù)吞吐量和高效的數(shù)據(jù)壓縮技術(shù),可以實(shí)現(xiàn)實(shí)時(shí)、高效、可靠的數(shù)據(jù)存儲(chǔ)和查詢(xún),同時(shí)為用戶節(jié)省磁盤(pán)空間。實(shí)時(shí)數(shù)據(jù)庫(kù)主要應(yīng)用于工業(yè)監(jiān)控,在實(shí)際生產(chǎn)中存儲(chǔ)著每個(gè)工藝過(guò)程點(diǎn)采集到的大量數(shù)據(jù)。實(shí)時(shí)數(shù)據(jù)庫(kù)也存在缺點(diǎn),它的存儲(chǔ)能力有限。

Relational Database (RDB)是指采用關(guān)系模型的關(guān)系數(shù)據(jù)庫(kù),是一些相互之間存在一定關(guān)聯(lián)的表的集合。關(guān)系數(shù)據(jù)庫(kù)的存儲(chǔ)能力強(qiáng),旨在處理永久、穩(wěn)定的數(shù)據(jù),便于企業(yè)的生產(chǎn)管理、數(shù)據(jù)分析以及決策。在工業(yè)控制中使用關(guān)系數(shù)據(jù)庫(kù)對(duì)大量歷史數(shù)據(jù)進(jìn)行存儲(chǔ)、管理和分析。但是關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)處理速度低,無(wú)法對(duì)生產(chǎn)過(guò)程數(shù)據(jù)進(jìn)行及時(shí)高效的存儲(chǔ)。

數(shù)據(jù)交換服務(wù)管理著不同來(lái)源、不同屬性的海量數(shù)據(jù),為用戶提供快捷方便的服務(wù),包括從實(shí)時(shí)數(shù)據(jù)庫(kù)(RTDB)到關(guān)系數(shù)據(jù)庫(kù)(RDB)的數(shù)據(jù)轉(zhuǎn)換存儲(chǔ),和關(guān)系數(shù)據(jù)庫(kù)(RDB)到實(shí)時(shí)數(shù)據(jù)庫(kù)(RTDB)的數(shù)據(jù)轉(zhuǎn)換存儲(chǔ)。數(shù)據(jù)交換服務(wù)為不同數(shù)據(jù)庫(kù)之間的互連互通提供了包含加載、轉(zhuǎn)換、傳輸和存儲(chǔ)等操作,可以有效解決數(shù)據(jù)及時(shí)、高效地上傳下達(dá),在安全、方便、快捷、順暢的進(jìn)行數(shù)據(jù)交換的同時(shí)保證數(shù)據(jù)的一致性和準(zhǔn)確性,實(shí)現(xiàn)數(shù)據(jù)的一次采集、多次分析使用,為各種應(yīng)用和決策支持提供良好的數(shù)據(jù)環(huán)境。

圖1 數(shù)據(jù)事務(wù)處理示意圖

1.2 數(shù)據(jù)交換服務(wù)的結(jié)構(gòu)

使用鏈表可以方便有層次地進(jìn)行管理和擴(kuò)展,鏈表中的每個(gè)結(jié)點(diǎn)包括數(shù)據(jù)域和指針域,其中數(shù)據(jù)域存儲(chǔ)數(shù)據(jù)元素的信息,指針域中存儲(chǔ)結(jié)點(diǎn)直接后繼的存儲(chǔ)位置。在數(shù)據(jù)交換服務(wù)中采用三層鏈表結(jié)構(gòu)如圖2所示,將連接connection作為第一級(jí)鏈表,每個(gè)連接下的表格table掛接到二級(jí)鏈表上,綁定bind則作為第三級(jí)鏈表。其中:

連接(Connection)鏈表:list ConnList;

表(Table)鏈表:list xTableList;

綁定(Bind)鏈表:list xBindCtrlList;

圖2 數(shù)據(jù)交換服務(wù)的三層鏈表結(jié)構(gòu)

由于鏈表不要求邏輯上相鄰的元素在物理位置上也相鄰,因此它沒(méi)有順序存儲(chǔ)結(jié)構(gòu)所具有的弱點(diǎn),但同時(shí)也失去了順序表可隨機(jī)存取的優(yōu)點(diǎn)。

2 數(shù)據(jù)交換服務(wù)的關(guān)鍵技術(shù)

2.1 數(shù)據(jù)的讀取和存儲(chǔ)

在數(shù)據(jù)交換服務(wù)中,轉(zhuǎn)存的單位定義為數(shù)據(jù)表,用戶可以通過(guò)客戶端定義數(shù)據(jù)表中需要轉(zhuǎn)存的數(shù)據(jù)點(diǎn)、數(shù)據(jù)轉(zhuǎn)存的方向、轉(zhuǎn)存的時(shí)間間隔等相關(guān)信息。用戶可以完成增加、刪除和修改數(shù)據(jù)表等操作。

2.1.1 RTDB的讀取和存儲(chǔ)

使用冶金過(guò)程控制系統(tǒng)開(kāi)發(fā)平臺(tái)的分布式進(jìn)程通訊中間件進(jìn)行RTDB數(shù)據(jù)的讀取和存儲(chǔ)。讀寫(xiě)過(guò)程調(diào)用等待接口、請(qǐng)求接口和應(yīng)答接口。

2.1.2 RDB的讀取和存儲(chǔ)

RDB的讀取和存儲(chǔ)采用的是ADO技術(shù)。ADO是開(kāi)發(fā)訪問(wèn)OLE數(shù)據(jù)庫(kù)應(yīng)用程序所使用的一種數(shù)據(jù)庫(kù)訪問(wèn)組件,是一種可以訪問(wèn)各種數(shù)據(jù)類(lèi)型的連接機(jī)制,具有容易使用、數(shù)據(jù)庫(kù)訪問(wèn)速度高、內(nèi)存支出少、使用較少的網(wǎng)絡(luò)流量的優(yōu)點(diǎn),其性能和易用性都達(dá)到了極佳水平。利用ADO對(duì)象并通過(guò)ODBC或OLE DB,可以實(shí)現(xiàn)對(duì)任意數(shù)據(jù)庫(kù)的存取和訪問(wèn),包括SQL Server、Oracle、Access、Excel以及文本文件、圖形文件等數(shù)據(jù)源。

ADO模型包括7個(gè)對(duì)象,其中主要對(duì)象有3個(gè):Connection、Command和 Recordset ,可以被獨(dú)立創(chuàng)建和釋放。此外,還包括其他4個(gè)集合對(duì)象:Fields、Errors、Parameters和Properties。一個(gè)典型的ADO應(yīng)用程序使用Connection對(duì)象建立與數(shù)據(jù)源的連接,然后使用Command對(duì)象給出對(duì)數(shù)據(jù)庫(kù)操作的命令,如插入數(shù)據(jù)或者查詢(xún)數(shù)據(jù)等,而Recordset用于對(duì)結(jié)果集進(jìn)行維護(hù)或者瀏覽等操作。其中Command連接字符串與對(duì)應(yīng)的數(shù)據(jù)源有關(guān),不同的數(shù)據(jù)源使用不同的命令,對(duì)于關(guān)系數(shù)據(jù)庫(kù),通常使用SQL作為命令語(yǔ)言。使用ADO進(jìn)行RDB讀取和存儲(chǔ)主要包括以下步驟:

① 初始化COM庫(kù),引入ADO庫(kù)定義文件。

::CoInitialize (NULL);

#import "C:program filescommon filessystemadomsado15.dll"no_namespace rename("EOF", "EndOfFile")

② 用Connection對(duì)象連接數(shù)據(jù)庫(kù)。

ORACLE數(shù)據(jù)庫(kù)的連接字符串為:數(shù)據(jù)庫(kù)提供者OraOLEDB.Oracle.1;用戶名;密碼;數(shù)據(jù)源oracles; pConn ->Open(連接字符串,用戶名,密碼,同異步);

SQ LSe rve r數(shù)據(jù)庫(kù)的連接字符串為:數(shù)據(jù)庫(kù)提供者SQLOLEDB;數(shù)據(jù)庫(kù)Database;用戶名;密碼;數(shù)據(jù)源127.0.0.1"; 連接:pConn ->Open(連接字符串,用戶名,密碼,同異步);

③ 利用建立好的連接,通過(guò)Command對(duì)象執(zhí)行SQL命令,使用Recordset對(duì)象取得結(jié)果記錄集進(jìn)行處理、查詢(xún),更新數(shù)據(jù)庫(kù)。

pCommand->Execute(&vRecordsAffected,NULL,adCmdUnknown );

④關(guān)閉連接,釋放對(duì)象所占的資源。

::CoUninitialize();

2.2 數(shù)據(jù)類(lèi)型轉(zhuǎn)換

變體VARIANT數(shù)據(jù)類(lèi)型是所有沒(méi)被顯式聲明(用如Private、Public 或 Static等語(yǔ)句)為其他類(lèi)型變量,能夠在運(yùn)行期間動(dòng)態(tài)改變類(lèi)型的數(shù)據(jù)類(lèi)型。變體能支持所有簡(jiǎn)單的數(shù)據(jù)類(lèi)型,如整型、浮點(diǎn)型、字符串、布爾型、日期時(shí)間、貨幣等。數(shù)值數(shù)據(jù)為負(fù)數(shù)時(shí)范圍從-1.797693134862315E308 到-4.94066E-324,正數(shù)時(shí)則從4.94066E-324 到 1.797693134862315E308。

可以用 Variant 數(shù)據(jù)類(lèi)型來(lái)替換各種數(shù)據(jù)類(lèi)型,有很強(qiáng)的適應(yīng)性。通常,數(shù)值Variant 數(shù)據(jù)保持為其Variant中原來(lái)的數(shù)據(jù)類(lèi)型。例如,算術(shù)運(yùn)算是針對(duì)含Byte、Integer、Long或 Single 之一的Variant執(zhí)行的,如果把一個(gè)Integer賦值給Variant,則接下來(lái)的運(yùn)算會(huì)把此Variant當(dāng)成Integer來(lái)處理,但是當(dāng)運(yùn)算結(jié)果超過(guò)原來(lái)數(shù)據(jù)類(lèi)型的正常范圍時(shí),存在Variant中的結(jié)果會(huì)被提升到能表示較大數(shù)據(jù)范圍的數(shù)據(jù)類(lèi)型。如 Byte 則提升到Integer,Integer 則提升到Long,而Long和Single則提升為Double。當(dāng)Variant變量中有Decimal及Double值超過(guò)它們各自的范圍時(shí),則會(huì)發(fā)生錯(cuò)誤。

Variant數(shù)據(jù)結(jié)構(gòu)包含兩個(gè)域,第一個(gè)是vt域,定義成各種類(lèi)型的數(shù)據(jù)成員構(gòu)成的聯(lián)合體,它決定著第二個(gè)域的數(shù)據(jù)類(lèi)型;第二個(gè)域是一個(gè)用來(lái)指明聯(lián)合體中目前起作用的數(shù)據(jù)類(lèi)型的變量,名稱(chēng)隨著vt域中輸入值的不同而改變。變體接收到的數(shù)據(jù)存儲(chǔ)在聯(lián)合體的某個(gè)數(shù)據(jù)成員中。例如:當(dāng)一個(gè)long型數(shù)據(jù)存入Variant類(lèi)型時(shí),vt域類(lèi)型為VT_I4,其第二個(gè)域使用的名稱(chēng)是lVal。對(duì)Variant變量的賦值方法:首先給vt成員賦值,指明數(shù)據(jù)類(lèi)型,再對(duì)聯(lián)合結(jié)構(gòu)中相同數(shù)據(jù)類(lèi)型的變量賦值。例如:variant v; int a=2013; v.vt=VT_I4; v.lVal=a。

2.2.1 實(shí)時(shí)數(shù)據(jù)庫(kù)到ORACLE、SQLServer關(guān)系數(shù)據(jù)庫(kù)轉(zhuǎn)換

從實(shí)時(shí)數(shù)據(jù)庫(kù)讀出來(lái)數(shù)據(jù),存入關(guān)系數(shù)據(jù)庫(kù)之前先把數(shù)據(jù)轉(zhuǎn)換成變體類(lèi)型,再將變體類(lèi)型存入關(guān)系數(shù)據(jù)庫(kù)。存入關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型和從數(shù)據(jù)庫(kù)取出的變體類(lèi)型是有確定的對(duì)應(yīng)關(guān)系的,具體關(guān)系如表1和表2所示:

表1 ORACLE數(shù)據(jù)類(lèi)型和變體類(lèi)型對(duì)應(yīng)關(guān)系

表2 SQLServer數(shù)據(jù)類(lèi)型和變體類(lèi)型對(duì)應(yīng)關(guān)系

一些VARIANT支持的類(lèi)型如VT_I2(short整型)、VT_UI2(unsigned short無(wú)符號(hào)整型)、VT_UI4(unsigned long 無(wú)符號(hào)長(zhǎng)整型)可以直接定義,但是無(wú)法從ORACLE或者SQLServer關(guān)系數(shù)據(jù)庫(kù)中取出這些類(lèi)型的數(shù)據(jù)。

在數(shù)據(jù)交換服務(wù)的類(lèi)型轉(zhuǎn)換過(guò)程中,進(jìn)行了嚴(yán)格的類(lèi)型匹配檢查以及合法轉(zhuǎn)換的數(shù)值范圍檢查,如果不符合要求則為非法轉(zhuǎn)換,服務(wù)會(huì)報(bào)錯(cuò)提示類(lèi)型轉(zhuǎn)換失敗,需要用戶重新設(shè)置數(shù)據(jù)類(lèi)型。

例如RTDB的XT_XCHAR類(lèi)型轉(zhuǎn)換到RDB的NUMBER類(lèi)型時(shí),需要做以下檢查:

①字符串是否已初始化,如果未初始化則報(bào)錯(cuò)提示用戶需要先進(jìn)行初始化操作。

②從字符串到數(shù)字類(lèi)型轉(zhuǎn)換首位是否為數(shù)字或者符號(hào)位的檢查,如果首位不是數(shù)字或者符號(hào)位,則轉(zhuǎn)換是非法的,服務(wù)報(bào)錯(cuò)。

③首位之外的其他位是否為數(shù)字或者小數(shù)點(diǎn)的檢查,不是數(shù)字或者小數(shù)點(diǎn)則是非法轉(zhuǎn)換,服務(wù)報(bào)錯(cuò)。

④末位是否為數(shù)字的檢查,不是數(shù)字則是非法轉(zhuǎn)換,報(bào)錯(cuò)。

2.2.2 ORACLE、SQLServer關(guān)系數(shù)據(jù)庫(kù)到實(shí)時(shí)數(shù)據(jù)庫(kù)轉(zhuǎn)換

從關(guān)系數(shù)據(jù)庫(kù)取出變體類(lèi)型的數(shù)據(jù),進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換,再存入實(shí)時(shí)數(shù)據(jù)庫(kù)。在類(lèi)型轉(zhuǎn)換時(shí),同樣需要進(jìn)行嚴(yán)格的類(lèi)型匹配檢查以及合法轉(zhuǎn)換的數(shù)值范圍檢查。

例如:RDB的 VT_I2類(lèi)型到RTDB的XT_UI2類(lèi)型轉(zhuǎn)換時(shí),需要合法轉(zhuǎn)換數(shù)值范圍的檢查。Int的數(shù)據(jù)范圍是-32768~32767,unsigned int的數(shù)據(jù)范圍是0~65535。因此當(dāng)需要轉(zhuǎn)換的數(shù)值處于[-32768,0)時(shí),服務(wù)會(huì)報(bào)錯(cuò)提示轉(zhuǎn)換非法。

數(shù)據(jù)類(lèi)型轉(zhuǎn)換的分支很多,分支總個(gè)數(shù)是實(shí)時(shí)數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型的個(gè)數(shù)與關(guān)系數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型個(gè)數(shù)的笛卡爾積,而在每個(gè)分支中的類(lèi)型匹配檢查個(gè)數(shù)以及合法轉(zhuǎn)換數(shù)值范圍檢查個(gè)數(shù)則更為龐大,十分復(fù)雜。

3 應(yīng)用情況

數(shù)據(jù)交換服務(wù)開(kāi)發(fā)完成后首先應(yīng)用到了冶金過(guò)程控制系統(tǒng)開(kāi)發(fā)平臺(tái)的數(shù)據(jù)平臺(tái)中。數(shù)據(jù)平臺(tái)涉及到大量的數(shù)據(jù)采集、分析計(jì)算處理和數(shù)據(jù)存儲(chǔ)轉(zhuǎn)換,數(shù)據(jù)交換服務(wù)能夠很好地完成其中的數(shù)據(jù)讀取、存儲(chǔ)和轉(zhuǎn)換功能,轉(zhuǎn)換存儲(chǔ)效率較高,功能良好。該服務(wù)在自動(dòng)控制系統(tǒng)中可以對(duì)現(xiàn)場(chǎng)收集到的數(shù)據(jù)進(jìn)行出色地處理,滿足工業(yè)現(xiàn)場(chǎng)的需要。

4 結(jié)論

數(shù)據(jù)交換服務(wù)是工業(yè)自動(dòng)化信息化發(fā)展過(guò)程中自動(dòng)控制系統(tǒng)的一個(gè)重要組成部分,該服務(wù)運(yùn)行穩(wěn)定,可以快速而準(zhǔn)確地提供實(shí)時(shí)數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)之間數(shù)據(jù)的加載、轉(zhuǎn)換、傳輸和存儲(chǔ)服務(wù),在解決數(shù)據(jù)共享上發(fā)揮著重要作用,有利于對(duì)現(xiàn)有數(shù)據(jù)資源進(jìn)行重新整合,充分發(fā)掘數(shù)據(jù)資源的潛在價(jià)值,滿足了不同業(yè)務(wù)的協(xié)同需求。

[1]李亮舉, 彭會(huì)軍. 冶金過(guò)程控制開(kāi)發(fā)平臺(tái)中進(jìn)程通信系統(tǒng)的開(kāi)發(fā)及應(yīng)用[J]. 首鋼科技. 2011,11: 12-16.

[2]David Sceppa著, 石鈞, 葛俊譯. ADO編程技術(shù)[M]. 清華大學(xué)出版社, 2001.

[3]嚴(yán)蔚敏, 吳偉民著. 數(shù)據(jù)結(jié)構(gòu)[M]. 清華大學(xué)出版社, 2005.

[4]王海亮, 張利民, 王海鳳, 鄭建茹等著. 精通Oracle 10g[M]. 中國(guó)水利水電出版社, 2005.

[5]Raphael Pender著, 蘇劍等譯. 標(biāo)準(zhǔn)C++編程寶典[M].電子工業(yè)出版社,2001.

猜你喜歡
數(shù)據(jù)庫(kù)服務(wù)
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 在线精品视频成人网| 啪啪国产视频| 香蕉视频在线观看www| 欧美a级在线| 国产在线观看一区精品| 伊人成色综合网| 国产成+人+综合+亚洲欧美| 日韩中文字幕亚洲无线码| 国内视频精品| 韩日无码在线不卡| 日a本亚洲中文在线观看| 亚洲精品无码抽插日韩| 多人乱p欧美在线观看| 国产成人艳妇AA视频在线| 亚洲最猛黑人xxxx黑人猛交| 无码人中文字幕| 无码'专区第一页| 国产极品嫩模在线观看91| 中文字幕免费在线视频| 亚洲欧美日韩色图| 日本免费a视频| 日韩午夜福利在线观看| 日韩av高清无码一区二区三区| 亚洲码一区二区三区| 成人韩免费网站| 97国产精品视频自在拍| 日韩色图区| 亚洲大尺度在线| 国产人妖视频一区在线观看| 国产欧美中文字幕| 亚洲伊人天堂| 国产地址二永久伊甸园| 伊人久久大香线蕉综合影视| 奇米影视狠狠精品7777| 日韩在线2020专区| 亚洲无码高清免费视频亚洲| 亚洲精品视频免费| 亚洲区第一页| 国产成人一级| 在线播放真实国产乱子伦| 中文字幕丝袜一区二区| 亚洲第一国产综合| 亚洲精品国产乱码不卡| 一级毛片在线播放| 91成人试看福利体验区| 国产精品永久免费嫩草研究院| 亚洲v日韩v欧美在线观看| 国产精品私拍99pans大尺度| 99久久精彩视频| 免费一级毛片在线观看| 拍国产真实乱人偷精品| 四虎亚洲精品| 538国产视频| 伦伦影院精品一区| 91在线免费公开视频| av手机版在线播放| 国产综合色在线视频播放线视| 欧美亚洲香蕉| 欧美三级视频网站| 3344在线观看无码| 国产成人福利在线视老湿机| 在线中文字幕日韩| 在线观看无码av五月花| 精品人妻系列无码专区久久| 精品国产91爱| 国产成人资源| 18黑白丝水手服自慰喷水网站| 天天干天天色综合网| 欧美精品导航| 国产精品三级专区| 高潮毛片免费观看| 在线免费观看a视频| 无遮挡国产高潮视频免费观看| 91小视频版在线观看www| av大片在线无码免费| 亚洲欧洲日产国码无码av喷潮| 在线中文字幕网| 久久这里只有精品国产99| 色吊丝av中文字幕| 精品视频在线一区| 全部免费毛片免费播放| 国产理论精品|