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

Oracle中利用BLOB字段存儲4GB以下視頻數據

數據庫 Oracle
今天我們要介紹的是Oracle中利用BLOB字段存儲4GB以下視頻數據的相關方法,希望對大家有所幫助。

很長時間沒親自寫寫東西了,只是收集轉載了一些好資料,其實,真正靜下心總結一下,可以寫的知識點很多。與困難做斗爭,挑戰技術難關,總會有些感受心得的。

今天想和網友分享一下“Oracle中BLOB大字段如何讀寫視頻數據”,這個話題起因是我在使用ORACLE備份數據時,誤刪了數據庫實例的控制文件,導致項目數據需要重新入庫。也就是我在彌補這個錯誤時,發現之前的數據入庫功能,都沒有把200M以上的視頻數據導入ORACLE的BLOB字段里,也就是之前的寫入BLOB字段數據的方法失效了。這是個驚人的發現,我發現因為這個程序BUG我遺漏掉近300G的視頻數據,某些單個視頻文件數據量達到3.6G。

我研究基于ORACLE Text的全文檢索功能,開始接觸ORACLE的BLOB字段,3年多了,自認為已經熟知BLOB字段的操作。但這次的難題迫使我更深入的認識ORACLE的BLOB字段。

BLOB字段能以二進制形式存放4G數據,200M的視頻數據當然應該沒問題,可以出錯了?!原來的方法會報“Out of memory”錯誤,PLSQL Developer工具導入大視頻數據,同樣會報“Out of memory”錯誤。3.6G的視頻數據又該如何導入?原來寫入大字段的方法,導入一般的圖片和文檔一點問題沒有。

  1. /// <summary>  
  2. /// 寫大字段內容  
  3. /// (新方法,2010.2.4)  
  4. /// </summary>  
  5. /// <param name="pDbConn"></param>  
  6. /// <param name="strTable"></param>  
  7. /// <param name="strBlobField"></param>  
  8. /// <param name="strFile"></param>  
  9. /// <param name="strWhereClause"></param>  
  10. /// <returns></returns>  
  11. public bool WriteBlobField(System.Data.OleDb.OleDbConnection pDbConn,  
  12.     string strTable,  
  13.     string strBlobField,  
  14.     string strFile,  
  15.     string strWhereClause)  
  16. {  
  17.     if (strWhereClause == "")  
  18.     {  
  19.         return false;  
  20.     }  
  21.     try 
  22.     {  
  23.         string strSQL = "UPDATE " + strTable + " SET " + strBlobField + " =:blob WHERE " + strWhereClause;  
  24.  
  25.         OleDbCommand cmd = new OleDbCommand(strSQL, pDbConn);  
  26.         //無需說明類型  
  27.         //cmd.Parameters.Add(new OleDbParameter("blob", SqlDbType.VarBinary));  
  28.         // cmd.Parameters.AddWithValue("blob", SqlDbType.Binary);  
  29.         FileInfo fileInfo = new FileInfo(strFile);  
  30.  
  31.         FileStream fsBlob = fileInfo.OpenRead();// new FileStream(strFile, FileMode.Open,FileAccess.Read);  
  32.         byte[] dataBlob = new byte[fsBlob.Length];//問題1所在  
  33.         fsBlob.Read(dataBlob, 0, System.Convert.ToInt32(fsBlob.Length));//問題2所在  
  34.         fsBlob.Close();  
  35.         //采用新的方法,AddWithValue();  
  36.         cmd.Parameters.AddWithValue("blob", dataBlob);  
  37.         //cmd.Parameters["blob"].Value = dataBlob;  
  38.         int result = cmd.ExecuteNonQuery();  
  39.         if (result < 1)  
  40.         {  
  41.             return false;  
  42.         }  
  43.     }  
  44.     catch (Exception ex)  
  45.     {  
  46.         //   MessageBox.Show(ex.Message, "寫數據", MessageBoxButtons.OK);  
  47.         return false;  
  48.     }  
  49.  
  50.     return true;  
  51. }  
  52.  
  53.     /// <summary>  
  54.     /// 將字符串寫成大字段內容  
  55.        /// (2010.2.4 修改)  
  56.     /// </summary>  
  57.     /// <param name="pDbConn"></param>  
  58.     /// <param name="strTable"></param>  
  59.     /// <param name="strBlobField"></param>  
  60.     /// <param name="strBlobContent"></param>  
  61.     /// <param name="strWhereClause"></param>  
  62.     /// <returns></returns>  
  63.     public bool WriteBlobField2(System.Data.OleDb.OleDbConnection pDbConn,  
  64.                   string strTable,  
  65.                  string strBlobField,  
  66.                  string strBlobContent,  
  67.                  string strWhereClause)  
  68.     {  
  69.         if (strWhereClause == "")  
  70.         {  
  71.             return false;  
  72.         }  
  73.  
  74.         try 
  75.         {  
  76.             string strSQL = "UPDATE " + strTable + " SET " + strBlobField + " =:blob " +  
  77.                 "WHERE " + strWhereClause;  
  78.  
  79.             OleDbCommand cmd = new OleDbCommand(strSQL, pDbConn);  
  80.             cmd.Parameters.Add(strBlobField, SqlDbType.Binary);  
  81.             //    byte[] dataBlob = new byte[strBlobContent.Length];  
  82.             byte[] dataBlob = System.Text.Encoding.Default.GetBytes(strBlobContent);  
  83.             cmd.Parameters["blob"].Value = dataBlob;  
  84.             int result = cmd.ExecuteNonQuery();  
  85.             if (result < 1)  
  86.             {  
  87.                 return false;  
  88.             }  
  89.         }  
  90.         catch (Exception ex)  
  91.         {  
  92.             MessageBox.Show(ex.Message, "寫數據", MessageBoxButtons.OK);  
  93.             return false;  
  94.         }  
  95.  
  96.         return true;  
  97.     } 

問題1:無法一次性開辟足夠大空間(如1G),寫入大視頻時,會導致報內存不足。

問題2:System.Convert.ToInt32()會使3G的視頻時,會報類型轉換失敗,數值值過大。

上面兩個問題在網絡中所有的方法中都普遍存在的,都會導致無法導入700M以上的視頻數據。

OLEDB方法對ORCLE 8以后的大字段操作不在支持,我在解決問題的過程中轉向了OracleClient命名空間下的方法來操作BLOB大字段,主要參考微軟官方http://msdn.microsoft.com/zh-cn/library/cydxhzhz(v=VS.90).aspx和博客園中的http://www.cnblogs.com/zhengmaoch/archive/2005/08/10/212014.html。這兩份資料對我解決500M以下數據量的視頻很有幫助,但是1G甚至是3G以上視頻數據是無法解決的。上面兩處使用了事務處理在導500M以上數據時,會報“ORA-22297: warning: Open LOBs exist at transaction commit time ”錯誤,主要因為提交事務時數據文件沒有讀完。

經過試驗和參考http://msdn.microsoft.com/en-us/library/system.io.filestream.read.aspx方法,終于完全解決上面兩個問題,實現大視頻量數據導入BLOB字段。

  1. /// <summary>  
  2. /// 2010.10.22  
  3. /// 讀取視頻數據進入ORACLE大字段中  
  4. /// </summary>  
  5. /// <param name="fileToUpload"></param>  
  6. /// <param name="uploadSQL"></param>  
  7. /// <returns></returns>  
  8. public bool OracleUpload(string fileToUpload, string uploadSQL)  
  9. {  
  10.     /*  
  11.      * Get Connected  
  12.      */ 
  13.     string connection = strConn;  
  14.     OracleConnection conn;  
  15.     conn = new OracleConnection(connection);  
  16.     conn.Open();  
  17.     OracleCommand cmd = new OracleCommand(uploadSQL, conn);  
  18.     OracleTransaction transaction = conn.BeginTransaction();  
  19.     cmd.Transaction = transaction;  
  20.     OracleDataReader reader = cmd.ExecuteReader();  
  21.     using (reader)  
  22.     {  
  23.         try 
  24.         {  
  25.             reader.Read();  
  26.             OracleLob tmpBlob = reader.GetOracleLob(4);  
  27.             reader.Close();  
  28.             FileStream fsBlob = new FileStream(fileToUpload, FileMode.OpenOrCreate, FileAccess.Read);  
  29.             //BinaryReader br = new BinaryReader(fs);  
  30.             tmpBlob.BeginBatch(OracleLobOpenMode.ReadWrite);  
  31.             long length = fsBlob.Length;  
  32.  
  33.             int numBytesToRead = System.Convert.ToInt32(length / 10);//解決問題2  
  34.             int numBytesRead = 0;  
  35.             int n;  
  36.             byte[] Buffer = new byte[numBytesToRead];  
  37.             //2010.10.25  修改加 將文件分為10塊 防止文件為3.3G以上  
  38.              //解決問題1  
  39.             for (int i = 0; i < 9; i++)   
  40.             {  
  41.                   
  42.                 n = 0;  
  43.                // numBytesToRead = length / 5;  
  44.                 Buffer = new byte[numBytesToRead];   
  45.                 numBytesRead = 0;  
  46.                 while ((n = fsBlob.Read(Buffer, numBytesRead, numBytesToRead)) > 0)  
  47.                 {  
  48.                     numBytesRead += n;  
  49.                     numBytesToRead -= n;  
  50.                 }  
  51.                 numBytesToRead = System.Convert.ToInt32(length / 10);  
  52.                 tmpBlob.Write(Buffer, 0, numBytesToRead);  
  53.             }  
  54.  
  55.  
  56.             numBytesToRead = System.Convert.ToInt32(length / 10+ length % 10);  
  57.             numBytesRead = 0;  
  58.             n = 0;  
  59.             int tmpLength = numBytesToRead;  
  60.             byte[] Buffer2 = new byte[tmpLength];  
  61.             while ((n = fsBlob.Read(Buffer2, numBytesRead, numBytesToRead)) > 0)  
  62.             {  
  63.                 numBytesRead += n;  
  64.                 numBytesToRead -= n;  
  65.             }  
  66.             //numBytesToRead = tmpLength;  
  67.             tmpBlob.Write(Buffer2, 0, tmpLength);  
  68.  
  69.             fsBlob.Close();  
  70.             tmpBlob.EndBatch();  
  71.             cmd.Parameters.Clear();  
  72.             Buffer = null;      
  73.         }  
  74.         catch(Exception ex)  
  75.         {  
  76.             MessageBox.Show("出錯:"+ex.Message);  
  77.             //關閉  
  78.             reader.Close();  
  79.             transaction.Commit();  
  80.             conn.Close();  
  81.             return false;  
  82.         }  
  83.     }  
  84.  
  85.     reader.Close();  
  86.     transaction.Commit();  
  87.     conn.Close();  
  88.     return true;  

上面的方法完全能處理4G以下的視頻數據的導入問題,已經經過驗證的。PLSQL Developer工具同樣無法讀取BLOB字段中的大數據量的視頻,如需讀取請詳細參照http://www.cnblogs.com/wuhenke/archive/2010/10/25/1860752.html

  1. /// <summary>  
  2. /// 從數據庫中讀出大字段到文件中  
  3. /// </summary>  
  4. /// <param name="uploadSQL"></param>  
  5. /// <returns></returns>  
  6. public bool OracleRead(string uploadSQL)  
  7. {  
  8.     string connection = strConn;  
  9.     OracleConnection conn;  
  10.     conn = new OracleConnection(connection);  
  11.     conn.Open();  
  12.  
  13.  
  14.     OracleCommand cmd = new OracleCommand(uploadSQL, conn);  
  15.     long readStartByte = 0;//從BLOB數據體的何處開始讀取數據  
  16.     int hopeReadSize = 1024; //希望每次從BLOB數據體中讀取數據的大小  
  17.     long realReadSize = 0;//每次實際從BLOB數據體中讀取數據的大小  
  18.     //CommandBehavior.SequentialAccess將使OracleDataReader以流的方式加載BLOB數據  
  19.     string filename = "F:\\Test"+DateTime.Now.Day+DateTime.Now.Minute+DateTime.Now.Second+".avi";  
  20.     OracleDataReader dr = cmd.ExecuteReader(CommandBehavior.SequentialAccess);  
  21.     while (dr.Read())  
  22.     {  
  23.         FileStream fs = new FileStream(filename, FileMode.Create);  
  24.         byte[] buffer = new byte[hopeReadSize];  
  25.         realReadSize = dr.GetBytes(0, readStartByte, buffer, 0, hopeReadSize);  
  26.         //循環,每次讀取1024byte大小,并將這些字節寫入流中  
  27.         while ((int)realReadSize == hopeReadSize)  
  28.         {  
  29.             fs.Write(buffer, 0, hopeReadSize);  
  30.             readStartByte += realReadSize;  
  31.             realReadSize = dr.GetBytes(0, readStartByte, buffer, 0, hopeReadSize);  
  32.         }  
  33.         //讀取BLOB數據體最后剩余的小于1024byte大小的數據,并將這些字節寫入流中  
  34.         realReadSize = dr.GetBytes(0, readStartByte, buffer, 0, hopeReadSize);  
  35.         fs.Write(buffer, 0, (int)realReadSize);  
  36.     }             
  37.     //transaction.Commit();  
  38.     conn.Close();  
  39.         return true;  

原文鏈接: http://www.cnblogs.com/wuhenke/archive/2010/10/25/1860809.html

【編輯推薦】

  1. Oracle 數據集成的實際解決方案
  2. 對Oracle Raw常見類型的解釋
  3. Oracle歸檔模式的相關切換的實際操作步驟
  4. Oracle數據庫的啟用與關閉的歸檔模式
  5. Oracle修改字段類型2種方案介紹
責任編輯:彭凡 來源: 博客園
相關推薦

2010-04-23 14:32:01

Oracle數據庫

2010-04-29 10:56:46

Oracle數據庫

2011-05-12 11:07:22

Android Mar谷歌

2017-11-01 14:45:33

內存管理方案

2011-10-08 17:00:12

2012-11-07 15:42:58

Windows 8內存

2018-07-30 11:03:08

4GB內存8GB

2019-12-27 08:27:42

Android 谷歌存儲

2024-01-26 15:12:59

TCP參數窗口

2021-07-16 05:30:16

Windows 操作系統365 云電腦

2021-06-25 05:56:00

Windows 11操作系統微軟

2011-10-27 15:12:25

筆記本評測

2013-06-26 10:14:04

PCI-E 3.0固態硬盤4GB

2010-04-20 10:12:42

OraclePL

2021-07-05 15:20:47

微軟Windows 11Windows

2011-05-17 10:43:18

oracleblob字段

2024-05-28 11:01:37

2022-06-07 19:51:21

CPU函數內存

2025-04-14 09:10:00

模型神經網絡AI

2009-07-29 18:06:01

Oracle實現BLO
點贊
收藏

51CTO技術棧公眾號

欧美三级xxx| 手机精品视频在线观看| 日韩久久免费av| 欧美这里只有精品| 五月天中文字幕| 一区二区影院| 日韩高清有码在线| www.超碰97.com| 黄网av在线| 99精品欧美一区二区三区综合在线| 日本韩国在线不卡| 91中文字幕永久在线| 国产亚洲观看| 欧美午夜女人视频在线| 永久免费网站视频在线观看| 五月天婷婷激情网| 另类综合日韩欧美亚洲| 国内外成人免费激情在线视频网站| 人与嘼交av免费| 成人涩涩网站| 欧美人与性动xxxx| 成人黄色片视频| 曰本三级在线| 国产精品二三区| 欧美黄色直播| 韩国av永久免费| 激情小说亚洲一区| 国产精品久久久久久久久借妻 | 久久国产一区二区三区| 黄色录像a级片| 久久久久毛片免费观看| 欧美色网站导航| 97xxxxx| 第一福利在线| 久久久久久久久99精品| 亚洲a∨日韩av高清在线观看| 无码人妻精品一区二区三区9厂| 韩日在线一区| 欧美xxxx14xxxxx性爽| 精品日韩在线视频| 国产精品欧美三级在线观看| 亚洲福利视频网| 又黄又爽又色的视频| 国产成人久久精品麻豆二区| 色域天天综合网| 凹凸国产熟女精品视频| 狠狠躁少妇一区二区三区| 伊人色综合久久天天人手人婷| 夜夜爽99久久国产综合精品女不卡| 韩国免费在线视频| 久久久久久久综合日本| 久久久一本精品99久久精品| 天天操天天干天天爱| zzijzzij亚洲日本少妇熟睡| 国产精品一区二| 亚洲欧美国产高清va在线播放| 国产精品白丝jk白祙喷水网站| 91啪国产在线| 91久久久久国产一区二区| 美女国产一区二区三区| 国产精品美女免费视频| 中文字幕一区二区人妻| 久久精品99国产精品| 成人欧美一区二区三区黑人孕妇| 国产又粗又黄又爽视频| 国产精品资源在线观看| 成人在线中文字幕| 国内老熟妇对白xxxxhd| 成人网男人的天堂| 好吊妞www.84com只有这里才有精品| 三级网站在线看| 91美女在线观看| 日本电影一区二区三区| 成年在线电影| 国产精品伦理在线| 日韩av影视| 二区三区在线观看| 亚洲一区在线视频观看| 国产免费毛卡片| 粉嫩一区二区三区| 欧美精品乱码久久久久久按摩| 五月天婷婷影视| 88久久精品| 亚洲亚裔videos黑人hd| 182在线观看视频| 亚洲一级特黄| 国产精品大陆在线观看| 国产三级三级在线观看| 99riav一区二区三区| 亚欧洲精品在线视频免费观看| 国产原创精品视频| 五月激情六月综合| 天天视频天天爽| 高清日韩中文字幕| 中国china体内裑精亚洲片| 国产一区二区播放| 香蕉久久夜色精品| 91日韩在线视频| 飘雪影视在线观看免费观看| 国产精品高清亚洲| 成年人网站免费视频| av在线播放一区| 欧美精品一区二区久久婷婷 | 国产丰满果冻videossex| 99久久精品99国产精品| 亚洲午夜激情| 国产亚洲自拍av| 国产一区二区三区电影在线观看| 色婷婷av一区二区三区在线观看| 欧美国产日韩综合| 国产一区91| 114国产精品久久免费观看| 欧美成人高清视频| 公肉吊粗大爽色翁浪妇视频| 国产一区二区三区四区老人| 国产精品久久久久久久美男| 国产成人无码一区二区在线观看| 99久久久久| 欧洲亚洲女同hd| av免费在线不卡| 国产色综合一区| 97超碰人人澡| 国产一区二区三区精品在线观看| 亚洲欧美三级在线| 日本一二三区视频| 激情五月激情综合网| 亚洲精美视频| 99re在线视频| 舔着乳尖日韩一区| 无码人妻丰满熟妇啪啪网站| 91日韩在线| 欧美激情一二三| 国产又粗又大又黄| 国产精品国产三级国产| 老头吃奶性行交视频| 秋霞在线一区| 97成人在线视频| 四虎精品一区二区三区| 国产欧美在线| 91传媒在线免费观看| 日本高清视频免费观看| 一区二区三区精品视频| 亚洲性av在线| 亚洲图片 自拍偷拍| 郴州新闻综合频道在线直播| 三级精品视频久久久久| 午夜写真片福利电影网| 国产精品自在在线| 特大黑人娇小亚洲女mp4| 亚洲视频资源| 日韩午夜在线观看| 久久久久亚洲AV成人| 国产成人免费网站| 2022中文字幕| 成人精品毛片| 6080yy精品一区二区三区| 亚洲av片在线观看| 欧美性猛交xxxx富婆弯腰| 日韩免费高清一区二区| 在线视频超级| 欧美日本韩国一区二区三区视频 | 香蕉人人精品| 91国语精品自产拍在线观看性色 | 久久精品国产免费| 中文精品视频一区二区在线观看| 欧洲美女精品免费观看视频| 日韩亚洲欧美高清| 精品处破女学生| 精品视频97| 国产精品一二三区在线| caoporn国产精品免费公开| 免费在线超碰| 亚洲成av人片一区二区| 性农村xxxxx小树林| 99热这里只有精品首页| 久久国产精品99国产精| 精品美女www爽爽爽视频| 夜夜亚洲天天久久| 一区二区三区 日韩| 日韩免费特黄一二三区| 欧美一性一乱一交一视频| 男人的天堂av高清在线| 色av一区二区| 人妻熟女aⅴ一区二区三区汇编| 香蕉国产精品偷在线观看不卡| 亚洲一区二区不卡视频| 成人一区视频| 日韩一区二区三区xxxx| 国产嫩bbwbbw高潮| 久久综合九色欧美综合狠狠| 国产曰肥老太婆无遮挡| 农村妇女一区二区| 日韩一区视频在线| 国产强被迫伦姧在线观看无码| 97精品超碰一区二区三区| 国产精彩视频一区二区| 婷婷综合一区| 成人黄在线观看| 99re6在线精品视频免费播放| 国产丝袜一区视频在线观看| 中文字幕在线观看免费| 久操精品在线| 精品国产麻豆免费人成网站| 国产伦精品一区二区三区视频网站| 91丨porny丨国产入口| 日本熟妇人妻xxxxx| 欧美一区亚洲| 久久精品国产一区二区三区日韩| 欧美美女福利视频| 国内精品免费午夜毛片| 四虎在线观看| 欧美日韩电影一区| 日本一区二区三区免费视频| 国产精品日产欧美久久久久| 欧美双性人妖o0| 九九视频精品免费| 欧美一级中文字幕| 九九热精品视频在线观看| 欧美又大又硬又粗bbbbb| 中文字幕日本在线观看| 日韩av在线网站| 国产一区二区自拍视频| 欧美主播一区二区三区美女| 国产一级片免费| 国产亚洲精品精华液| 中文字幕第10页| 久久精品国产第一区二区三区| 四虎影院一区二区三区 | 丰满的亚洲女人毛茸茸| 国产成人综合网| 天天干天天爽天天射| 欧美激情四色| 咪咪色在线视频| 精品国内自产拍在线观看视频| 久久av一区二区| 国产福利在线导航| 岛国av在线一区| 天天av天天操| 久久国产精品无码网站| 国产免费999| 久久国产精品亚洲77777| 黄网站欧美内射| 国内精品嫩模av私拍在线观看| 天天爱天天做天天操| 亚洲a级精品| 精品国产乱码久久久久久郑州公司 | 香蕉视频网站入口| 一本久久综合| 免费视频爱爱太爽了| 亚洲精品国产成人影院| 麻豆中文字幕在线观看| 91中文字幕精品永久在线| 日韩中文一区| 成人同人动漫免费观看| 日韩欧美一区二区在线观看| 国产乱码精品一区二区亚洲| 日本视频一区二区在线观看| 欧美猛男同性videos| 日本三级中国三级99人妇网站| 日本精品三区| 正在播放国产精品| 国产精品久久久久久久| 精品伦理一区二区三区 | 日韩妆和欧美的一区二区| 欧美理论视频| 五月婷婷一区| 我不卡神马影院| 亚洲欧美日本国产有色| 日韩精品诱惑一区?区三区| 亚洲三级一区| 日本欧美肥老太交大片| 欧美aaa在线观看| 国产精品magnet| www黄色日本| 亚洲精品成a人ⅴ香蕉片| 亚洲va欧美va国产va天堂影院| 国产污污视频在线观看| 91成人在线精品| 亚洲综合免费视频| 欧美大片在线观看| 熟妇人妻中文av无码| 中文欧美在线视频| 综合久久2019| 91a在线视频| 日韩深夜福利网站| 亚洲最大成人网色| 欧美人妖视频| 欧美日韩在线观看一区| 欧美电影三区| 免费超爽大片黄| 亚洲影院一区| 久久精品网站视频| 国产乱一区二区| 国产精品久久久久久在线观看| 久久伊人中文字幕| 极品魔鬼身材女神啪啪精品| 亚洲一区在线视频观看| 波多野结衣人妻| 精品国产网站在线观看| 国际av在线| 欧美激情第6页| 欧美一级二级视频| 国产精品视频中文字幕91| eeuss鲁片一区二区三区| 日本在线免费观看一区| 激情成人亚洲| 一本一道久久a久久综合蜜桃| 成人午夜av电影| 天天做夜夜爱爱爱| 日韩欧美国产骚| 亚洲av无码一区二区乱子伦| 一区二区三区视频观看| av毛片午夜不卡高**水| 成人黄色av播放免费| 偷拍一区二区| 欧美日韩dvd| 九九精品视频在线看| www在线观看免费视频| 亚洲线精品一区二区三区| 一卡二卡三卡在线| 亚洲一级一级97网| 毛片在线网站| 国产乱码一区| 欧美片第1页综合| 欧美特黄aaa| 亚洲国产电影在线观看| 黄色片中文字幕| 亚洲国产成人精品久久| 国产视频在线播放| 国产噜噜噜噜久久久久久久久| 精品深夜福利视频| 欧美一区二区视频在线播放| 国产中文字幕精品| 亚洲一二三四五六区| 欧美色区777第一页| 蜜桃视频在线免费| 国产999精品| 亚洲精品推荐| 免费黄色日本网站| 99精品视频一区| 久久久久亚洲av片无码下载蜜桃| 91麻豆精品国产| 自拍亚洲图区| 亚洲综合最新在线| 欧美日韩免费| 中文字幕18页| 亚洲国产日产av| 嫩草影院一区二区| 97人洗澡人人免费公开视频碰碰碰| 麻豆久久一区| 欧美高清中文字幕| 成人亚洲精品久久久久软件| 日本一级淫片免费放| 亚洲精品成人久久久| 97人妻一区二区精品视频| 欧美国产日韩在线观看| 中文字幕免费视频观看| 国产一区二区三区直播精品电影 | 欧美色播在线播放| 日韩电影免费| 日韩av电影手机在线观看| 精品免费视频| 国产一伦一伦一伦| 亚洲色图视频网| 成人午夜福利视频| 91大神在线播放精品| 伊人久久大香线蕉综合网蜜芽| 日韩福利视频在线| 国产精品久久久久久久午夜片| 99热这里只有精| 久久琪琪电影院| 国产一区99| 伊人色在线视频| 亚洲一卡二卡三卡四卡无卡久久| 天堂视频中文在线| 国产成人精品电影| 亚洲成av人片一区二区密柚| 日韩黄色一区二区| 日本精品一区二区三区高清| 免费大片在线观看www| 国产精品久久亚洲7777| 久久午夜精品| 国产精品视频一区二区三| 亚洲成在人线av| 亚洲成人一区在线观看| 亚洲精品一区二区三| 国产成人av一区二区| 精品不卡一区二区| 久久伊人精品天天| 夜夜春成人影院| 日本高清免费在线视频| 狠狠色狠狠色综合日日小说| 免费不卡视频| 国模精品一区二区三区| 麻豆精品国产91久久久久久| 日韩激情一区二区三区| 色偷偷88888欧美精品久久久| 国产精品对白| 亚洲欧美国产中文| 欧美午夜视频在线观看|