日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > Delphi > 正文

在DELPHI程序中使用ADO對象存取ODBC數據庫

2019-11-18 18:54:11
字體:
來源:轉載
供稿:網友
作為一個asp愛好者,筆者經常在ASP頁面中使用ADO對象操作ODBC數據庫,覺得用ASP創建WEB應用系統確定挺方便的.雖然在編程生涯中,筆者更喜歡Borland系列產品,對微軟產品有點排斥,對ASP卻是例外.某天,靈機一動,ADO對象是一個標準OLE對象,如果在DELPHI應用程序中能利用ADO操作數據庫,應該挺不錯.尤其在用DELPHI做網絡數據庫應用程序時,如果所在的WEB站點是WINNT站點并且支持ASP頁面,就可以用ADO對象訪問ODBC數據庫,而不用把那么大的BDE再上載到站點上去,這樣就可充分利用DELPHI和ASP的編程優勢,做出更好的ISAPI/NSAPI/CGI.

---- 經過編程和測試,在DELPHI中可以成功地用ADO對象存取ODBC數據庫,現將使用經驗寫出來,與大家共享,讓我們多一個訪問ODBC數據庫的方法.

----   在32位的DELPHI中,可以聲明一個variant變量(如AVariant),然后通過CreateOleObject 創建一個OLE對象,如AVariant:=CreateOleObject('ADODB.Connection')可以獲得一個數據庫連接對象的實例,然后就可以利用該對象的方法和屬性來操作ODBC數據庫了.

----   下面簡單介紹一下訪問ODBC數據庫所用到的ADO對象及其方法和屬性.

----   1.數據庫連接對象(ADODB.Connection)

---- 該對象用于與ODBC數據庫建立連接,所有對數據庫的操作均通過該連接進行.

---- 數據庫連接對象ADODB.Connection的作用象Delphi中的TDatabase對象.

---- 建立一個連接對象的方法為(AConnection為Variant類型變量):

---- AConnection:=CreateOleObject('ADODB.Connection')

---- 用于建立連接的方法為Open,使用語法為(以對象AConnection為例):

---- AConnection.Open( ConnectionString, UserId, PassWord )

---- 三個參數均為字符串類型,其中UserId和Password為用戶名稱和用戶密碼,用來訪問

---- 數據庫時使用,可以省略,因為在ConnectionString同樣可以指定用戶名稱和用戶 密碼.ConnectionString是用來說明ODBC數據源信息的字符串,其格式為:

'PRovider=ProviderName;DSN=DSNName;DRIVER=driver; SERVER=server; DATABASE=database; UID=user; PWD=password'

 

---- 其中:

---- Provider:數據提供者,默認為MSDASQL,為微軟OLEDB,通常省略

---- DSN   :要打開的數據庫對應的OBDC系統數據源(DSN),是可選參數

---- DRIVER :要打開的數據庫所用的驅動程序名稱,如access對應

---- Microsoft Access Driver(*.mdb),是可選參數

---- SERVER :要打開的數據庫所在的服務器名稱,本機可用(local),是可選參數

---- DATABASE:要打開的數據庫名稱,是可選參數

---- UID   :用戶名稱,用來訪問數據庫,是可選參數

---- PWD   :用戶密碼,用來訪問數據庫,是可選參數

---- 以上參數均為可選參數,但必須提供足夠的信息來描述一個系統數據源.

---- 假如已經定義了一個ODBC的系統DSN,名稱為MyDsn,那么就可用以下語句建立一個數據庫連接:

----

		AConnection.Open('DSN=MyDsn');

 

---- 為了防止DSN不存在或其設置被他人修改時造成應用程序運行錯誤,可以用ADODB.Connection創建一個臨時ODBC數據源,這樣可以保證我們使用的系統DSN的參數設置是正確的.下面的語句可以創建一個臨時ODBC系統DSN,對應一個ACCESS數據庫,路徑為

C:Inetpubwwwroot	est.mdb AConnection.open('Driver={Microsoft Access Driver (*.mdb)};DBQ=C:inetpubwwwroot	est.mdb')

 

---- 建立一個ADODB.Connection后,如果不需要返回操作結果(如刪除,修改,更新等操作)就可以對數據庫進行正常的SQL操作了,此時應用ADODB.Connection的另外一個方法Execute,使用語法為:

AConnection.Execute( strSQL );

 

---- 其中strSQL為執行操作的SQL語句,如刪除操作可以為:delete from wfjcommu 用AConnection.Close關閉一個數據庫連接.

----   2.數據集對象(ADODB.RecordSet)

---- 如果要執行查詢操作并返回查詢結果,或者要更方便地操作數據表,就需要用到數據集對象了.

---- 數據集對象ADODB.RecordSet的作用象Delphi中的TTable或TQuery對象.

---- 建立一個數據集對象的方法為(ARecordSet為Variant類型變量):

----

ARecordSet:=CreateOleObject('ADODB.RecordSet')

 

---- 從數據表取得數據的方法為Open方法,具體使用方法為:

ARecordSet.Open( strCommand,ActiveConnection,intCursorType,intLockType,intCommandType );

---- 其中: strCommand:字符串,為命令參數,可以是一個Table名稱,可以是一個SQL語句,也可以是一個服務器上的存儲過程(StoredProc)名稱,具體需要后面的參數intCommandType來指定.

---- ActiveConnection:要使用的數據庫連接,是一個ADODB.Connection對象.

---- intCursorType:長整數,數據集的Cursor類型,可選參數,請參見程序中注釋。

---- intLockType:長整數,對數據表的加鎖類型,可選參數,請參見程序中注釋。

---- intCommandType:長整數,命令參數的類型,用來指明strCommand的作用,可以指定strCommand為命令(如SQL語句)或數據表(TTable)或儲存過程(StoredProc),可選參數,請參見程序中注釋。

---- 如執行一個SQL查詢,可以采用如下語句:

ARecordSet.Open('Select * from wfjcommu',adOpenStatic,adLockOptimistic,adCmdText);

 

---- 其它常見屬性和方法與TTable和TQuery相比較如下(具體請見ASP幫助文件):

		eof,bof:eof,bof.		MoveFirst, MoveLast:First, Last		MovePrevious, MoveNext:Prior, Next		Move:MoveBy		AddNew:append		Update:Post		Close:close

---- Delete加Update:delete,所有對數據表的修改均須用Update使操作有效,這與Delphi不同

Fields[FieldNo]:Fields[FieldNo]Fields['FieldName']:FieldByName('FieldName')

 

----  ?。常渌R妼ο?與Delphi對應的對象):

----

	ADODB.Field:TField	ADODB.Parameter:TPara	ADODB.Error:EDBEngineError	ADODB.Command:無	ADODB.Property:無

 

----   下面來看一個應用例子,聽別人說總不如自己看實際的例子來體會。在這個例子中,將演示如何利用ADO對象來對一個數據表進行查詢、增加記錄、修改記錄和刪除記錄操作。具體的用法請參見程序中的注釋,如果有點Delphi數據庫編程經驗,相信不難理解。

----   在我們的例子使用的數據庫為Test.MDB,其中有一個數據表為wfjcommu,有五個字段AName、Portable、Tel、BP、PostAddress,分別表示姓名、手機號、電話號碼、呼機號碼和通信地址。

----

procedure TForm1.Button1Click(Sender: TObject);{*****************************************************

 

---- 用ADO操作ODBC數據庫本程序中,將創建一個臨時的ODBC系統數據源,指向一個MsAccess數據庫,然后對其中的數據表進行顯示、增加、修改、刪除和查詢操作注意:請在Uses語句中包含ComObj單元

*****************************************************}const{ 一些常量聲明,詳細請參見adovbs.inc }{ ---- CommandType的常量說明 ---- } adCmdUnknown = 0008;//未知,需要系統來判斷,速度慢,為缺省值 adCmdText = 0001;//命令語句如SQL語句 adCmdTable = 0002;//數據表名稱 adCmdStoredProc = 0004;//存儲過程名稱{ ---- CursorType的常量說明 ---- } adOpenForwardOnly = 0;//只能由前向后單向訪問,為缺省值 adOpenKeyset = 1;//可見其他用戶對數據的修改,但對其它用戶的增加和刪除不可見 adOpenDynamic = 2;//其他用戶對數據的增加修改和刪除均可見 adOpenStatic = 3;//其他用戶對數據的增加修改和刪除均不可見{---- LockType的常量說明 ---} adLockReadOnly = 1;//只讀,為缺省值 adLockPessimistic = 2;//在修改時,按單個記錄鎖定 adLockOptimistic = 3;//在修改后更新時,按單個記錄鎖定 adLockBatchOptimistic = 4;//在成批更新時記錄鎖定var AConnection, ARecordSet : variant; longintTemp : integer; strTemp : string; intIndex : integer;begin  {創建一個臨時的ODBC數據源,  指向一個MsAccess數據庫,  并利用此DSN建立一個數據庫連接}  AConnection := CreateOleObject('ADODB.Connection');  AConnection.Open('Driver={Microsoft Access Driver   (*.mdb)};DBQ=C:inetpubwwwroot	est');  {建立一個數據集對象,并從數據表中提取數據}  ARecordSet := CreateOleObject('ADODB.RecordSet');  ARecordSet.open( 'wfjcommu',AConnection,  adOpenStatic,adLockOptimistic,adCmdTable );  memo1.lines.clear;  memo1.lines.add('********數據表原有的內容如下********');  {顯示各個域的域名}  strTemp := ';  for intIndex := 0 to ARecordSet.Fields.count - 1 do   strTemp := strTemp + ARecordSet.Fields[intIndex].name+';';  memo1.lines.add( strTemp );  {顯示各個域的內容}  while not ARecordSet.eof do   begin    strTemp := ';    for intIndex := 0 to ARecordSet.Fields.count - 1 do     strTemp := strTemp + ARecordSet.Fields      [intIndex].value+';';		memo1.lines.add( strTemp );	  ARecordSet.MoveNext;//移到下條,Next   end;  {增加一個記錄}  ARecordSet.AddNew;//增加,Append  ARecordSet.Fields['AName'] := '1';  //以FieldByName的方式存取  ARecordSet.Fields['Portable'] := '2';  ARecordSet.Fields(2) := '3';  //以Fields[index]的方式存取  ARecordSet.Fields(3) := '4';  ARecordSet.Fields(4) := '5';  ARecordSet.Update;//更新,Post  ARecordSet.MoveFirst;//移到首條,First  memo1.lines.add('********增加了一條       記錄后的數據表的內容如下********');  {顯示各個域的內容}  while not ARecordSet.eof do   begin    strTemp := ';for intIndex := 0 to ARecordSet. Fields.count - 1 do     strTemp := strTemp +      ARecordSet.Fields[intIndex].value+';';		memo1.lines.add( strTemp );	  ARecordSet.MoveNext;//移到下條,Next   end;  {修改最后一條記錄}  ARecordSet.MoveLast;  ARecordSet.Fields['AName'] := '11';   //以FieldByName的方式存取  ARecordSet.Fields['Portable'] := '22';  ARecordSet.Fields(2) := '33';  //以Fields[index]的方式存取  ARecordSet.Fields(3) := '44';  ARecordSet.Fields(4) := '55';  ARecordSet.Update;//更新,Post  ARecordSet.MoveFirst;//移到首條,First  memo1.lines.add('********修改了最后一條   記錄后的數據表的內容如下********');  {顯示各個域的內容}  while not ARecordSet.eof do   begin    strTemp := ';for intIndex := 0 to  ARecordSet.Fields.count - 1 do     strTemp := strTemp +      ARecordSet.Fields[intIndex].value+';';		memo1.lines.add( strTemp );	  ARecordSet.MoveNext;//移到下條,Next   end;  {刪除最后一條記錄}  ARecordSet.MoveLast;//移到末條,Last  ARecordSet.delete;//刪除,delete  ARecordSet.Update;//更新,在Delphi不需要  ARecordSet.MoveFirst;//移到首條,First  memo1.lines.add('********刪除了最后一條  記錄后的數據表的內容如下********');  {顯示各個域的內容}  while not ARecordSet.eof do   begin    strTemp := ';    for intIndex := 0 to ARecordSet.Fields.count - 1 do     strTemp := strTemp + ARecordSet.     Fields[intIndex].value+';';		memo1.lines.add( strTemp );	  ARecordSet.MoveNext;//移到下條,Next   end;  ARecordSet.Close;{關閉數據集}  {用SQL語句進行查詢,查詢姓名為“張三”的記錄}  {注意,在SQL語句中,字符串應該用單引號包括起來}  ARecordSet.open( 'select * from wfjcommu   where AName = '張三'',      AConnection,adOpenStatic,adLockOptimistic,    adCmdText );  memo1.lines.add('********張三的內容如下********');  memo1.lines.add( '共有' + IntToStr  ( ARecordSet.RecordCount ) + '條匹配的記錄' );  {顯示各個域的內容}  while not ARecordSet.eof do   begin    strTemp := ';    for intIndex := 0 to ARecordSet.Fields.count - 1 do     strTemp := strTemp + ARecordSet.Fields    [intIndex].value+';';		memo1.lines.add( strTemp );	  ARecordSet.MoveNext;//移到下條,Next   end;  {關閉數據集和數據庫連接}  ARecordSet.close;  AConnection.close;end;

上一篇:談用Delphi程序獲取撥號連接的動態IP地址

下一篇:用Word做Delphi報表輸出工具

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

精品一区二区三区中文字幕在线| 国产成人精品日本亚洲专区61| 欧美日韩国产页| 又黄又www的网站| 欧美日韩在线网站| 国产三级在线播放| 亚洲福利一区二区三区| 91精品国产手机| 国产午夜精品全部视频播放| 精品av中文字幕在线毛片| 久久香蕉精品| 亚洲成年网站在线观看| 中文官网资源新版中文第二页在线观看| 欧美另类久久久品| 欧美 日韩 综合| 亚洲国产福利| 欧美日韩亚洲系列| 国产日韩精品在线| 日韩区欧美区| 日韩.欧美.亚洲| 免费在线国产| 国产一区 二区 三区一级| 欧美日韩国产首页| 最近中文字幕第一页| 国产三级在线| 一区二区视频国产| 久精品在线观看| 一区二区三区久久| 亚洲高清中文字幕| 日韩在线高清| 欧美一级搡bbbb搡bbbb| 免费在线观看国产黄| 国产 日韩 欧美 综合 一区| 日韩在线视频一区| 国产三级做爰在线观看| 伊人伊成久久人综合网小说| 一区二区在线看| 久久精品蜜桃| 欧美亚洲国产免费| 中文字幕日韩在线观看| 在线免费91| 欧美在线中文字幕| 国产1卡2卡三卡四卡网站| 不卡在线一区二区| 日韩免费视频一区二区视频在线观看| 中文国产字幕在线观看| 欧美性极品xxxx做受| 亚洲男人在线| 中文字幕欧美日韩| 蜜桃精品视频| av中文资源在线| 日韩精品手机在线观看| 日韩中文字幕在线视频播放| 精品国产1区二区| 国产在线观看色| 蜜桃精品视频| 欧美国产一级片| 日本va欧美va精品发布| 亚洲热线99精品视频| 国产 欧美 日韩 在线| 亚洲尤物av| 国产福利久久久| 日韩欧美色综合网站| 日韩不卡av| 国产成人精品亚洲| 欧美一级免费在线观看| 欧美日韩精品三区| 91九色精品视频| 欧美日韩中国免费专区在线看| 久久99精品国产| 日韩欧美三级视频| 麻豆一区二区99久久久久| 欧美日韩精品免费看| 一级片在线播放| 国产香蕉免费精品视频| 日韩免费视频| 欧美日韩久久不卡| 中文字幕国产欧美| 在线视频观看日韩| 日韩三级视频中文字幕| 激情婷婷亚洲| 九九在线精品| 欧美在线亚洲一区| 99久久婷婷| 91久久精品国产91久久| 亚洲小说春色综合另类网蜜桃| 日韩区欧美区| 国产香蕉精品视频| 日韩精品福利视频| 国产成人va亚洲电影| 中文字幕精品国产| 一级片在线免费看| 亚洲欧美99| 九色蝌蚪视频在线| 欧美日韩精品中文字幕| 亚洲高清在线免费| 91久久精品在线| 99色在线视频| 在线欧美一级视频| 国产欧美日韩中文字幕| 中文字幕日韩亚洲| 国产欧美日韩不卡免费| 国产欧美日韩中文久久| 欧美久久久精品| 国产一级视频| 影音先锋一区二区资源站| 欧美日韩一二三| 日韩中文在线字幕| 中文字幕日韩在线视频| 久久精品最新免费国产成人| 亚洲一区中文| 国产黄在线看| 日韩.欧美.亚洲| 国产不卡一区| 在线一区二区不卡| 国产一二三精品| 中文字幕人成乱码在线观看| 一本一道综合狠狠老| 久久99精品国产| 国产高清视频一区二区| 精品一区二区三区中文字幕在线| 最近免费中文字幕在线第一页| 欧美日韩高清在线| 亚洲va韩国va欧美va精品| 精品网站999| 久久中文精品| 国产午夜精品视频| 91精品国产网站| 国产在线日韩精品| 成人精品国产福利| 欧美一级免费观看| 国产第一页在线播放| 欧美,日韩,国产在线| 久久久99免费| 日韩久久精品网| 久久精品国产2020观看福利| 色综合天天综合网天天狠天天 | 欧美三级视频在线| 日韩三级精品| 亚洲永久免费视频| 欧美日韩精品不卡| 亚洲福利精品视频| 91精品国产调教在线观看| 日韩欧美国产一二三区| 亚洲高清精品视频| 日韩亚洲国产欧美| 日韩欧美国产免费| 中文字幕在线视频网| 亚洲人成欧美中文字幕| 国产wwww| 欧美日韩精品不卡| 久久久久久久久99精品| 天堂在线视频中文网| 一区二区三区四区五区视频在线观看| 国产三级在线观看视频| 精品1区2区3区| 中文字幕在线观看精品| 一区二区精品| 一区二区三区在线播放视频| 中文精品在线观看| 亚洲高清视频一区| 国产视频一区三区| 精品一区二区在线观看视频| 91久久精品午夜一区二区| 福利在线国产| 国产一级在线免费观看| va中文字幕| 一区二区精品免费| 欧美三级中文字幕| 日韩中文字幕视频网| 国产小视频免费在线网址| 久久99久久久久久久噜噜| 精品久久人人做人人爽| 天堂在线中文| 国产日韩精品在线| 欧美另类久久久品| 在线一区免费| 日本精品在线中文字幕| 日韩中文在线视频| 国产福利久久| 久久婷婷综合国产| 日韩视频精品在线观看| 欧美在线视频一区二区| 91久久精品国产91久久| 欧美日韩视频免费| 91精品国产免费| 欧美在线视频一区二区| 一区二区三区高清在线| 国产福利三区| 最近中文字幕在线中文视频| a视频在线播放| 日本精品福利视频| 亚洲高清精品视频| 日韩一级精品| 白嫩少妇丰满一区二区| 国产午夜精品视频| 日韩不卡中文字幕| 91精品免费在线观看| 在线中文字幕网站| 日韩av一区在线| 中文字幕在线导航| 国产在线不卡一区| 中文网丁香综合网| 日本а中文在线天堂| 国产日韩亚洲欧美| 一级片在线免费看| 在线不卡一区二区| 日韩国产一区三区| 久久中文免费视频| 亚洲va韩国va欧美va精品| 最近中文字幕日韩精品| 午夜少妇久久久久久久久| 欧美日韩高清在线| 国产真实乱子伦精品视频| 欧美国产日韩在线播放| 欧美日韩激情在线一区二区三区 | 日韩中文字幕综合| 欧美日韩亚洲国产综合| 国产最顶级的黄色片在线免费观看| 精品日韩在线| 日韩 欧美 综合| 日韩av一区在线| 亚洲第一中文字幕在线观看| 一区二区三区鲁丝不卡| 深夜日韩欧美| 91精品在线观看国产| 欧美日韩中文字幕在线观看| 精品成人久久av| 在线视频你懂得一区| 国产成人va亚洲电影| 欧美日韩精品在线播放| 欧美日韩在线综合| 国产三级视频在线| 九七久久人人| 国产激情99| a视频在线播放| 国产日韩综合| 69堂精品视频在线播放| 欧美日韩国产高清一区| 91精品视频播放| 国产亚洲短视频| 69堂精品视频在线播放| 国产高清精品二区| 亚洲国产91精品在线观看| 中文字幕国产亚洲| 精品国产欧美成人夜夜嗨| 亚洲社区在线| 阿v免费在线观看| 欧美亚洲专区| 一区二区三区久久| 欧美中日韩在线| 黄色片免费看| 91精品国产自产在线丝袜啪| 国产嫩草影院久久久久| 欧洲精品在线一区| 亚洲小说春色综合另类网蜜桃| 欧美日韩国产综合久久| 免费在线视频一级不卡| 日韩美女中文字幕| 91九色在线看| 日韩不卡一二区| 欧美1234区| 精品视频www| 亚洲午夜91| 91精品观看| 日韩视频 中文字幕| 中文亚洲欧美| 在线中文字幕网站| 日韩欧美在线网站| 国产69精品久久久久孕妇国产69久久 | 欧美三级日本三级少妇99| 欧美 日韩 国产在线观看| 免费中文字幕日韩欧美| 亚洲免费视频一区| 精品视频www| a√免费观看在线网址www| 欧美日韩在线播放一区| 国产乱码在线| 97caopor国产在线视频| 91精品国产全国免费观看| 在线一区二区不卡| 色www精品视频在线观看| 免费高清视频日韩| 午夜av一区二区| 一本大道一区二区三区| 日韩在线视频免费观看高清中文| 国产区在线看| 久久精品日韩无码| 亚洲女人天堂色在线7777| 中文在线а√在线8| 欧美1234区| 国产在线www| 91精选在线| 亚洲三级中文字幕| 中文字幕线观看| 亚洲精品中文字幕乱码三区不卡| 欧美日韩在线观看首页| 亚洲 国产 欧美 日韩| 精品综合久久久久| 97最新国自产拍视频在线完整在线看 | 天堂中文在线视频| 日韩欧美三级| 日韩精品在线网站| 最近高清中文在线字幕在线观看| 一本大道一区二区三区| 成人久久在线| 一级免费a一片| 在线一区免费| 国产成人精品网址| 欧美国产日韩综合| 精品午夜av| 国产不卡视频在线| 日韩欧美国产片| 国产欧美自拍一区| 日韩欧美视频一区二区三区四区| 亚洲国产福利视频| 国产欧美中文在线| 天天综合天天添夜夜添狠狠添| 国产一级片在线| 欧美片网站免费| 国产高清不卡av| 一级片在线播放| 久久精品网站免费观看| 欧美中文字幕第一页| 亚洲免费婷婷| 欧美 日韩 综合| 欧美日韩国产一区中文午夜| 国产小视频在线观看| 一区二区三区精品久久久| 日韩视频在线观看视频| 韩日中文字幕第一页| 日韩欧美国产网站| 亚洲欧洲一区二区天堂久久| 91精品国产全国免费观看| 日韩中文欧美在线| 欧美日韩高清一区二区不卡| 中文字幕日韩国产| 999视频精品| 亚洲 欧美 日韩系列| 日韩欧美中文字幕在线观看| 中文字幕精品一区二区三区在线| 日韩三级免费观看| 蜜桃久久av| 免费在线亚洲| 中文字幕在线视频网| 日本国产在线视频| 欧美日韩国产91| 蜜桃精品在线| 999精品网| 一区三区视频| 成人久久久久| 国产免费一级| 亚洲第一香蕉网| 精品久久久精品| 日韩一级免费在线观看| 午夜精品一区二区三区视频免费看| 国产欧美高清在线| 精品欧美日韩| 黄色资源在线观看| 国产一区高清视频| 色屁屁一区二区| 欧美日韩三级在线| 国产婷婷一区二区| 国产成人精品免费网站| 中文字幕精品www乱入免费视频| 国产在线不卡一区| 91精品国产综合久久精品| 日韩精品丝袜在线| 国产aa精品| 午夜一区二区三区| 欧美日韩在线中文字幕| 国产视频1区| 日韩欧美不卡| 欧美日韩中文字幕在线视频| 日韩视频一区| 亚洲欧美中文字幕在线一区| 国产成人精品免费在线| 国产一级在线免费观看| 69av亚洲| 黄色一区二区视频| 亚洲第一视频在线观看| 日韩欧美在线视频| 视频一区不卡| 91久久精品网| 久久婷婷亚洲| 国产黄色高清在线| 欧美日韩国产一区| 日韩福利视频导航| 日韩精品在线中文字幕| 精品在线99| 日韩精品视频免费播放| 精品网站999| 在线不卡日本| 欧美日韩午夜精品| 亚洲免费观看视频| 在线国产一级| 欧美不卡视频一区发布| 国产激情在线| 日韩一级在线视频| 欧美三级三级三级爽爽爽|