精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

日日骚av一区| 天堂国产一区二区三区| 三级黄视频在线观看| 91久久久久久白丝白浆欲热蜜臀| 欧美韩日精品| 91成人在线精品| 国产91色在线播放| 亚洲美女精品视频| 99re在线视频| 亚洲综合不卡| 日韩va亚洲va欧洲va国产| 少妇熟女一区二区| 日韩中文字幕高清| 天天做夜夜做人人爱精品| 亚洲午夜羞羞片| 成人a在线视频| 人妻少妇无码精品视频区| 成人影院在线视频| 福利91精品一区二区三区| 最近2019中文字幕大全第二页| 污免费在线观看| bt在线麻豆视频| 激情综合色丁香一区二区| 一区二区三区国产在线观看| 欧美韩国日本在线| 三级视频在线| 国产成+人+日韩+欧美+亚洲| 国产精品美乳在线观看| 卡一卡二卡三在线观看| yy6080久久伦理一区二区| 亚洲欧美一区二区视频| 国产欧美亚洲视频| 潘金莲一级黄色片| 香蕉大人久久国产成人av| 亚洲精品美腿丝袜| 粉嫩精品一区二区三区在线观看| 国产亚洲成人精品| 美国一区二区| 日本高清无吗v一区| 国产美女在线一区| 日韩三级电影网| 豆国产96在线|亚洲| 成人精品视频在线| 欧美性受xxx黑人xyx性爽| 欧美日韩精品在线一区| 欧美日韩大陆一区二区| 亚洲小视频在线播放| 黑人精品一区二区| 久久精品女人天堂| 中文字幕亚洲一区| 成人欧美精品一区二区| 精品国产乱码久久久久久樱花| 一区二区三区免费在线观看| 国产日韩在线一区二区三区| 久热这里只有精品6| 欧美午夜精彩| 日韩一级二级三级| 浮妇高潮喷白浆视频| 成人影视在线播放| 国产原创一区二区| 2019精品视频| 天堂久久久久久| 成人网ww555视频免费看| 亚洲天堂网中文字| 久久国产欧美精品| 91无套直看片红桃| 亚洲精品专区| 日韩在线视频观看| 国产精品久久久免费看| 精品网站aaa| 亚洲精品久久久久久下一站 | 亚洲精品国产一区二区三区四区在线| 亚洲精品欧美精品| 国产成a人亚洲精v品无码| 禁久久精品乱码| 一本久久综合亚洲鲁鲁| 娇妻被老王脔到高潮失禁视频| 欧美a一级片| 一级日本不卡的影视| wwwwww欧美| 成人资源www网在线最新版| 久久精品欧美一区二区三区麻豆| 91中文字幕在线| 波多野结衣视频在线观看| 日韩成人精品在线| 91国产在线精品| 亚洲欧美一区二区三区在线观看| 综合久久亚洲| 自拍偷拍亚洲精品| 欧美激情国产精品免费| 999精品视频| 亚洲天堂精品在线| 亚洲 欧美 日韩在线| 国产亚洲欧美一区二区| 亚洲综合婷婷久久| 国产一区二区三区福利| 东方欧美亚洲色图在线| 国产噜噜噜噜噜久久久久久久久| 可以在线观看av的网站| 日日摸夜夜添夜夜添精品视频| 国产欧美日韩中文字幕| 黄色成人一级片| 国产视频在线观看一区二区三区| 色撸撸在线观看| 精精国产xxx在线视频app| 欧美天天综合网| 亚洲精品乱码久久久久久自慰| hd国产人妖ts另类视频| 亚洲欧美区自拍先锋| 亚洲国产综合自拍| 后进极品白嫩翘臀在线播放| 亚洲青青青在线视频| 777久久久精品一区二区三区| 亚洲成人精品电影在线观看| 国产在线观看免费麻豆| 国产精品视频免费看| 欧美在线日韩精品| 欧美女优在线| 久久网站最新地址| 欧美一区二区在线视频观看| av免费网站在线观看| 亚洲免费三区一区二区| 国产精品亚洲a| 亚洲午夜免费| 欧美精品一区二区久久久| 亚洲图片 自拍偷拍| 国产69精品久久久久9999人| 亚洲精品久久久久久久久| 免费在线观看av网址| 青青草97国产精品免费观看 | 国产一区二区毛片| 日韩欧美亚洲精品| 国产精品一区二区三区四区色| 26uuu另类欧美| 青娱乐一区二区| 蜜桃在线视频| 欧美午夜精品久久久久久超碰| 欧美xxxx×黑人性爽| 欧美一区二区三区久久精品茉莉花| 国产福利成人在线| 91国内精品视频| 中文字幕久久午夜不卡| 免费成人进口网站| 51精品在线| 精品久久久久一区二区国产| 无码人妻精品一区二区三区温州| 欧美日韩一区二区三区四区在线观看| 亚州精品天堂中文字幕| 加勒比在线一区| 国内成人精品2018免费看| 亚洲欧美日韩精品久久久| 国产一区二区三区影视| 在线观看精品国产视频| 国产精华7777777| 欧美国产精品一区二区三区| 国产精品igao| 亚洲一区二区三区免费| 精品自在线视频| 天天操天天操天天操天天| 美女视频网站久久| 国产伦精品一区二区三区四区视频 | 国产精品传媒在线| 欧美这里只有精品| 亚洲一区二区电影| 98精品国产高清在线xxxx天堂| 色婷婷中文字幕| 欧美日韩午夜剧场| 中文字幕丰满乱码| 青青操综合网| 久久在线免费视频| 久久久成人免费视频| 久久久亚洲国产美女国产盗摄| 精品嫩模一区二区三区| 91精品尤物| 91国产视频在线| 北岛玲日韩精品一区二区三区| 欧美三级资源在线| 最近日本中文字幕| 久久不射网站| 亚洲欧洲一二三| 欧美黄色一级| 1769国产精品| 中文字幕在线播放| 日韩欧美国产一区二区在线播放 | 久久久久久尹人网香蕉| 中文字幕 日韩有码| 91伊人久久大香线蕉| 久久天天东北熟女毛茸茸| 国产精品色在线网站| 欧美精品一区二区免费| 一级黄色片在线| 一级女性全黄久久生活片免费| 一本色道综合久久欧美日韩精品| 日本亚洲欧美天堂免费| 成人午夜视频免费观看| 亚洲精品一区av| 亚洲最新av网址| av网站在线观看免费| 欧美日韩美女在线观看| 国产老头老太做爰视频| 麻豆精品精品国产自在97香蕉| 久久99精品久久久久久青青日本 | 欧美99在线视频观看| 国产一区二区三区无遮挡 | 国产真人做爰视频免费| 国产不卡免费视频| 99视频在线免费| 欧美三级电影在线| 91精品久久久久久久久久另类 | 一区二区三区日韩欧美精品| 一区二区三区四区免费| 伊人影院久久| 艳色歌舞团一区二区三区| 久久久加勒比| 97视频色精品| 影音先锋男人在线资源| 在线成人中文字幕| 日本中文字幕电影在线观看| 欧美一区二区三区播放老司机| 婷婷国产成人精品视频| 97se亚洲国产综合自在线| 日本55丰满熟妇厨房伦| 欧美日本亚洲韩国国产| 亚洲欧美日产图| 九九久久精品| 国产精品丝袜高跟| 毛片免费看不卡网站| 永久免费精品影视网站| 亚洲精品视频网| 精品久久久一区| 国产精品天天干| 99国产麻豆精品| 欧美激情一区二区三区p站| 精品无人码麻豆乱码1区2区| 久久婷婷国产91天堂综合精品| 中文精品视频| 精品一卡二卡三卡四卡日本乱码 | 免费在线黄色网址| 亚洲精品乱码久久久久久按摩观| 韩国中文字幕hd久久精品| 欧美一区二区在线看| 91亚洲国产成人久久精品麻豆| 欧美日韩中字一区| 中文字幕日韩国产| 欧美亚洲国产一区二区三区| 日韩电影在线观看一区二区| 日韩欧美一区视频| gv天堂gv无码男同在线观看| 久久久午夜精品| 成人黄色免费网址| 国产日韩在线不卡| 免费在线观看你懂的| 精品在线免费观看| 激情深爱综合网| 第一会所sis001亚洲| 日本一区二区三区视频在线观看 | 99热精品国产| 国产精品久久久毛片| 国产精品v一区二区三区| 欧美日韩无遮挡| 日韩精品中文字幕吗一区二区| 成人黄色大片在线免费观看| 粉嫩av国产一区二区三区| 91大神在线播放精品| videos性欧美另类高清| 国产精品video| 爱看av在线入口| 亚洲**2019国产| 欧美free嫩15| 91极品女神在线| 亚洲成人看片| 国外成人在线播放| 八戒八戒神马在线电影| 久久99精品视频一区97| 超碰99在线| 国产精品99久久久久久www| 日韩城人网站| 国产精品爱久久久久久久| 欧美视频精品| 国产精品一区二区三区精品| 亚洲精华一区二区三区| 成人9ⅰ免费影视网站| 日本在线中文字幕一区二区三区| 国产精品一区电影| 亚洲日本一区二区三区在线| 精品一区二区视频| 日韩片欧美片| 日韩.欧美.亚洲| 亚洲国产精品久久久久蝴蝶传媒| 视频一区二区综合| 国产精品一线天粉嫩av| 欧美久久在线| 亚洲第一天堂| 欧美韩国日本在线| 国产成人综合亚洲网站| 日日夜夜精品视频免费观看 | 91午夜在线播放| 成人在线免费电影网站| 成人18视频| 久久国产综合| 日韩av三级在线| 国产美女精品人人做人人爽| 99爱视频在线| 极品少妇一区二区| 在线 丝袜 欧美 日韩 制服| 国产精品电影一区二区| 91视频免费网址| 91精品国产色综合久久不卡蜜臀| 日韩欧美亚洲系列| 欧美国产亚洲视频| 麻豆蜜桃在线| 久久人人爽人人爽人人片av高请| 成人做爰视频www网站小优视频| 91在线视频成人| 精品黄色一级片| 日韩欧美亚洲天堂| 国产成人久久精品77777最新版本| 久久精品无码一区| 天天做天天摸天天爽国产一区| 国产特级黄色片| 精品国产乱码久久久久久影片| www.亚洲资源| 日韩av理论片| 网曝91综合精品门事件在线| 欧美国产视频一区| 国精品**一区二区三区在线蜜桃| 国产高清一区二区三区四区| 五月天一区二区三区| 亚洲国产精品suv| 久久躁日日躁aaaaxxxx| 亚洲福利影视| 伊人情人网综合| 91超碰成人| 自拍偷拍一区二区三区四区| 久久久久国产精品人| 中文字幕日韩一级| 精品视频1区2区| 国产免费a∨片在线观看不卡| 欧美在线影院在线视频| 欧美在线va视频| 欧美国产视频在线观看| 99综合在线| www.88av| 精品高清一区二区三区| 婷婷色在线观看| 2019最新中文字幕| 亚洲免费毛片| 少妇性l交大片| 国产日韩欧美亚洲| 免费黄色一级大片| 色777狠狠综合秋免鲁丝| 国产一区二区色噜噜| 一区二区三区四区在线视频| 久久爱另类一区二区小说| 久久噜噜色综合一区二区| 在线成人午夜影院| 亚洲欧洲国产综合| 精品国产欧美成人夜夜嗨| av剧情在线观看| 国产区二精品视| 性欧美精品高清| 欧美老女人性生活视频| 欧美性大战久久| av在线免费网址| 国产富婆一区二区三区| 中文日韩欧美| www.黄色在线| 欧美电影在线免费观看| 免费影视亚洲| 欧美一区激情视频在线观看| 日本sm残虐另类| 国产精品视频一区二区三| 疯狂做受xxxx高潮欧美日本| 手机福利小视频在线播放| 欧美日韩第一视频| 成人三级毛片| 男女爱爱视频网站| 成人成人成人在线视频| 久久国产波多野结衣| 日韩免费电影网站| 亚洲福利影院| 国产美女99p| 日韩一区精品视频| 全网免费在线播放视频入口| 亚洲国产欧美一区二区丝袜黑人| 第四色男人最爱上成人网| 做爰高潮hd色即是空| 成人综合婷婷国产精品久久免费| 亚洲欧美自拍视频| 久久亚洲精品网站| 欧美偷窥清纯综合图区| 亚洲 国产 图片| 国产精品网站在线播放| 精品人妻少妇AV无码专区 | 精品国产电影| 精品一二线国产| 天天干天天干天天干天天| 久久影视电视剧免费网站清宫辞电视| 日韩最新在线| 韩国三级丰满少妇高潮|