超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

dotConnect for Oracle使用教程:OracleAlerter組件的使用

原創(chuàng)|使用教程|編輯:郝浩|2013-04-24 14:50:48.000|閱讀 388 次

概述:OracleAlerter類是用于DBMS_ALERT包的接口,S_ALERT包支持異步通知數(shù)據(jù)庫事件(警報)。今天主要的內(nèi)容就是詳解OracleAlerter組件的使用,主要是由以下的部分組成:Oracle警報基礎(chǔ)、等待警報模式、開始模式。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關(guān)鏈接:

    OracleAlerter類是用于DBMS_ALERT包的接口,僅僅在專業(yè)版和開發(fā)版中有。DBMS_ALERT包支持異步通知數(shù)據(jù)庫事件(警報),通過恰當(dāng)?shù)厥褂眠@個包和數(shù)據(jù)庫觸發(fā)器,一個應(yīng)用程序可以通知任何其他的應(yīng)用程序,連接數(shù)據(jù)庫、登記接受到的報警以及數(shù)據(jù)庫的任何的改變等。

     今天主要的內(nèi)容就是詳解OracleAlerter組件的使用,主要是由以下的部分組成:Oracle警報基礎(chǔ)、等待警報模式、開始模式。

Oracle警報基礎(chǔ)

    DBMS_ALERT提供API接口來發(fā)送警報、警報注冊、并等待接收警報。這個解決方案主要采用了信號、寄存器和WAITANY。

  • dbms_alert.signal程序發(fā)出警報信號,當(dāng)提交事務(wù)的時候,這個警報就會提交生效。如果說事務(wù)被返回,這個信號就沒有起作用。也會提醒所有的感興趣的會議通知。
  • DBMS_ALERT.REGISTER程序?qū)试S在警報中注冊。
  • The DBMS_ALERT.WAITANY程序?qū)却魏蔚臅捛鞍l(fā)生的警報。

    OracleAlerter 類主要原則如下圖所示:

dotConnect for Oracle使用教程:OracleAlerter組件的使用

    OracleAlerter類支持兩種工作模式,等待警報和開始模式。“等待警報”模式將會等待最近的警報,并將其返回給應(yīng)用程序。“開始”模式就是啟動一次,當(dāng)接收到一個警報的時候就會提出一個事件,為了制止這種模式,叫做OracleAlerter 類實例的“停止”方法。

等待模式

     下面的示例就是演示的是OracleAlerter在等待模式的情況:

[C#]

static OracleConnection con = new OracleConnection();

static void Main(string[] args)
{  

  // Initialize and open a connection to the Oracle server.
  // We connect as Sys to have the privilieges to use the DBMS_Alert package.

  con.Server = "ora";
  con.UserId = "sys";
  con.Password = "pwd";
  con.ConnectMode = OracleConnectMode.SysDba;
  con.Open();

  // Execute a script needed to create the database objects used in our sample.
  // These objects are:
  // 1) table "alert_table" with two fields: an integer identification and a char value;
  // 2) trigger "alert_trigger", which initializes the "my_alert" Oracle Alert after each insert to alert_table.

  OracleScript createAll = new OracleScript();
  createAll.Connection = con;
  createAll.ScriptText = @"
  create table scott.alert_table
  (""id"" number(38,0),
   ""value"" varchar2(4000 byte)
  );

  create or replace trigger sys.alert_trigger
    after insert or update on scott.alert_table
    for each row
    begin
      dbms_alert.signal('my_alert', 'A row has been added.');
    end;
  ";           

  createAll.Execute();

  // Now we create an instance of the OracleAlerter class, which is used to retrieve alerts.
  // This instance is registered for the "my_alert" Oracle Alert.           
  // Timeout stands for the time in seconds during which OracleAlerter will be waiting for alerts.

  OracleAlerter alerter = new OracleAlerter();
  alerter.Connection = con;
  alerter.AlertName = "my_alert";
  alerter.Timeout = 10;

  // When waiting for alerts, OracleAlerter expectedly pauses the current thread.
  // Thus, we need another one to generate the alert while OracleAlerter is listening.
  // In the Insert() function, a row is added to alert_table.
  // As it is shown in the createAll script, this insert triggers the "my_alert" Oracle Alert.

  Thread insertThread = new Thread(new ThreadStart(Insert));
  insertThread.Start();           

  // Waits until the "my_alert" alert is received, returns the corresponding OracleAlert object.
  // If it is not during the timeout period, returns null.

  OracleAlert alert = alerter.WaitAlert();

  // Simple output operations to show the alert's content.
  Console.WriteLine("Got an alert: " + ((alert == null) ? "null" : alert.Message));
  Console.Read();

  // Drop table and trigger.
  OracleScript dropAll = new OracleScript();
  dropAll.Connection = con;
  dropAll.ScriptText = @"
  drop trigger sys.alert_trigger;
  drop table scott.alert_table;
  ";
  dropAll.Execute();

  // Close the connection.
  con.Close();
}

// A simple insert command used to trigger the "my_alert" alert.
// We take this command out to use multithreading.

public static void Insert()
{              
   OracleCommand insert = new OracleCommand();
   insert.CommandText = "insert into scott.alert_table values ('10', 'Some text')";
   insert.Connection = con;
   insert.ExecuteNonQuery();

   Console.WriteLine("Inserted a row");
}

[Visual Basic]

Private Shared con As New OracleConnection

Shared Sub Main(ByVal args As String())

    ' Initialize and open a connection to the Oracle server. 
    ' We connect as Sys to have the privilieges to use the DBMS_Alert package.
    con.Server = "ora"
    con.UserId = "sys"
    con.Password = "pwd"
    con.ConnectMode = OracleConnectMode.SysDba
    con.Open
    
    ' Execute a script needed to create the database objects used in our sample.
    ' These objects are:
    ' 1) table "alert_table" with two fields: an integer identification and a char value;
    ' 2) trigger "alert_trigger", which initializes the "my_alert" Oracle Alert after each insert to alert_table.
    
    Dim createAll As New OracleScript
    createAll.Connection = con
    createAll.ScriptText = VbCrlf _
	& "        " _
	 & "create table scott.alert_table " & VbCrlf _
	 & "        (""id"" number(38,0), " & VbCrlf _
	& "   ""value"" varchar2(4000 byte)" & VbCrlf & _
	"                );" & VbCrlf  & VbCrlf _
	& "                create or replace trigger sys.alert_trigger " & VbCrlf & _
	"                    after insert or update on scott.alert_table " & VbCrlf & _
	"                    for each row " & VbCrlf & _
	"                    begin" & VbCrlf _
	& "                        dbms_alert.signal('my_alert', 'A row has been added.');" _
	& VbCrlf & "                    end;" & VbCrlf & "        " 
    createAll.Execute
    
    ' Now we create an instance of the OracleAlerter class, which is used to retrieve alerts.
    ' This instance is registered for the "my_alert" Oracle Alert.            
    ' Timeout stands for the time in seconds during which OracleAlerter will be waiting for alerts.
    
    Dim alerter As New OracleAlerter
    alerter.Connection = con
    alerter.AlertName = "my_alert"
    alerter.Timeout = 10
    
    ' When waiting for alerts, OracleAlerter expectedly pauses the current thread. 
    ' Thus, we need another one to generate the alert while OracleAlerter is listening.
    ' In the Insert() function, a row is added to alert_table. 
    ' As it is shown in the createAll script, this insert triggers the "my_alert" Oracle Alert.
    Dim insertThread As Thread = New Thread(New ThreadStart(insert))
    insertThread.Start()    
    
    ' Waits until the "my_alert" alert is received, returns the corresponding OracleAlert object. 
    ' If it is not during the timeout period, returns null.
    Dim alert As OracleAlert = alerter.WaitAlert
    
    ' Simple output operations to show the alert's content.
    Console.WriteLine(("Got an alert: " & IIf((alert Is Nothing), "null", alert.Message)))
    Console.Read
    
    ' Drop table and trigger.
    Dim dropAll As New OracleScript
    dropAll.Connection = con
    dropAll.ScriptText = VbCrlf & _
    "        "  & "drop trigger sys.alert_trigger;" & VbCrlf & _
    "        "  & "drop table scott.alert_table;" & VbCrlf  
    dropAll.Execute
    
    ' Close the connection.
    con.Close
End Sub

' A simple insert command used to trigger the "my_alert" alert.
' We take this command out to use multithreading.
Public Shared Sub Insert()
    Dim createAll As New OracleCommand
    createAll.CommandText = "insert into scott.alert_table values ('10', 'Some text')"
    createAll.Connection = con
    createAll.ExecuteNonQuery
    Console.WriteLine("Inserted a row")
End Sub

開始模式

    在這個示例中講會使用警報檢索模式中的開始模式,OracleAlerter對象alerter將被初始化,并被設(shè)置為特定警報偵聽。然后OracleAlerter類的另一個實例alertGenerator,將會發(fā)送帶有名字的警報到服務(wù)器上,從而觸發(fā)警報的事件。等待時間到期后,將會提出WaitTimeout事件,監(jiān)聽重新開始。然后WaitTimeout對象停下來顯示停止事件。

[C#]

static void Main(string[] args)
{
    // Initialize and open a connection to the Oracle server. 
    // We connect as Sys to have the privilieges to use the DBMS_Alert package.
    OracleConnection con = new OracleConnection();
    con.Server = "ora";
    con.UserId = "sys";
    con.Password = "pwd";
    con.ConnectMode = OracleConnectMode.SysDba;
    con.Open();

    // Create the OracleAlerter instance and register it for the "my_alert" Oracle Alert.
    // Set Interval to 0 so that there is no delay between two consequent periods of listening.
    OracleAlerter alerter = new OracleAlerter();
    alerter.Connection = con;
    alerter.AlertName = "my_alert";
    alerter.Timeout = 3;
    alerter.Interval = 0;
            
    // Set the event handlers for all possible OracleAlerter events.
    // The Alert event fires when an alert is received.
    // The Error event fires as any error occurs while receiving alerts.
    // The Stopped event fires when alerter becomes inactive, e.g. after the Stop() method.
    // The WaitTimeout event fires when the Timeout period ends without getting an alert.
    alerter.Alert += new OracleAlerterAlertEventHandler(Alerter_OnAlert);
    alerter.Error += new OracleAlerterErrorEventHandler(Alerter_OnError);
    alerter.Stopped += new OracleAlerterFinishEventHandler(Alerter_OnStop);
    alerter.WaitTimeout += new OracleAlerterFinishEventHandler(Alerter_OnTimeOut);
	
    // Start the alerter. It will wait for alerts during the Timeout period.
    // After that, it sleeps during Interval and then starts again.
    // As Interval is zero, there will be no sleeping periods.
    // Unlike the WaitAlert method, Start() does not hold the current thread.
    alerter.Start();
	
    // We need to wait until the alerter begins listening. 
    // Otherwise, the alert may fire before OracleAlerter is initialized.
    // In this case, the Alert event won't be triggered and alerter will just wait 
    // until Timeout, producing the WaitTimeout event.
    Thread.Sleep(2000);
	
    // In this sample, we use another instance of OracleAlerter instead of database triggers to generate the alert.
    // alertGenerator uses the same connection and alert name as the alerter object.
    OracleAlerter alertGenerator = new OracleAlerter();
    alertGenerator.Connection = con;
    alertGenerator.AlertName = "my_alert";

    // Send an alert to the server. At this moment alerter should raise the Alert event.
    alertGenerator.Signal("An alert message.");

    // In contrast to WaitAlert(), the Start() method allows to receive alerts continuously.
    // Thus, we can process all alerts that are available on the server.
    alertGenerator.Signal("One more alert");
	
    // After the alert is received, alerter starts another Timeout period.
    // At its end, the WaitTimeout event will be generated. We pause the thread to get this event.
    // Besides, we need a small pause to let the last alert be sent to the server.
    Thread.Sleep(5000);
	
    // Disable alerter, raising the Stopped event. 
    alerter.Stop();
	
    Console.Read();
	
    // Close the connection.
    con.Close();            
}

// Simple event handlers for alerter's events.
public static void Alerter_OnAlert(object sender, OracleAlerterAlertEventArgs e)
{
	Console.WriteLine("Got an alert: " + e.AlertMessage);
}
public static void Alerter_OnError(object sender, OracleAlerterErrorEventArgs e)
{
	Console.WriteLine("Error: " + e.AlerterException.Message);            
}
public static void Alerter_OnStop(object sender, OracleAlerterFinishEventArgs e)
{
	Console.WriteLine("Stopped: " + e.ToString());
}
public static void Alerter_OnTimeOut(object sender, OracleAlerterFinishEventArgs e)
{
	Console.WriteLine("Time's up: " + e.ToString());
}

[Visual Basic]

Shared Sub Main(ByVal args As String())

    ' Initialize and open a connection to the Oracle server. 
    ' We connect as Sys to have the privilieges to use the DBMS_Alert package.
    Dim con As New OracleConnection
    con.Server = "ora"
    con.UserId = "sys"
    con.Password = "pwd"
    con.ConnectMode = OracleConnectMode.SysDba
    con.Open
    
    ' Create the OracleAlerter instance and register it for the "my_alert" Oracle Alert.
    ' Set Interval to 0 so that there is no delay between two consequent periods of listening.
    Dim alerter As New OracleAlerter
    alerter.Connection = con
    alerter.AlertName = "my_alert"
    alerter.Timeout = 3
    alerter.Interval = 0
    
    ' Set the event handlers for all possible OracleAlerter events.
    ' The Alert event fires when an alert is received.
    ' The Error event fires as any error occurs while receiving alerts.
    ' The Stopped event fires when alerter becomes inactive, e.g. after the Stop() method.
    ' The WaitTimeout event fires when the Timeout period ends without getting an alert.
    AddHandler alerter.Alert, New OracleAlerterAlertEventHandler(AddressOf Alerter_OnAlert)
    AddHandler alerter.Error, New OracleAlerterErrorEventHandler(AddressOf Alerter_OnError)
    AddHandler alerter.Stopped, New OracleAlerterFinishEventHandler(AddressOf Alerter_OnStop)
    AddHandler alerter.WaitTimeout, New OracleAlerterFinishEventHandler(AddressOf Alerter_OnTimeOut)
    
    ' Start the alerter. It will wait for alerts during the Timeout period.
    ' After that, it sleeps during Interval and then starts again.
    ' As Interval is zero, there will be no sleeping periods.
    ' Unlike the WaitAlert method, Start() does not hold the current thread.
    alerter.Start
    
    ' We need to wait until the alerter begins listening. 
    ' Otherwise, the alert may fire before OracleAlerter is initialized.
    ' In this case, the Alert event won't be triggered and alerter will just wait 
    ' until Timeout, producing the WaitTimeout event.
    Thread.Sleep(2000)
    
    ' In this sample, we use another instance of OracleAlerter instead of database triggers to generate the alert.
    ' alertGenerator uses the same connection and alert name as the alerter object.
    Dim alertGenerator As New OracleAlerter
    alertGenerator.Connection = con
    alertGenerator.AlertName = "my_alert"
    
    ' Send an alert to the server. At this moment alerter should raise the Alert event.
    alertGenerator.Signal("An alert message.")
    
    ' In contrast to WaitAlert(), the Start() method allows to receive alerts continuously.
    ' Thus, we can process all alerts that are available on the server.
    alertGenerator.Signal("One more alert")
    
    ' After the alert is received, alerter starts another Timeout period.
    ' At its end, the WaitTimeout event will be generated. We pause the thread to get this event.
    ' Besides, we need a small pause to let the last alert be sent to the server.
    Thread.Sleep(5000)
    
    ' Disable alerter, raising the Stopped event. 
    alerter.Stop
    Console.Read
    
    ' Close the connection.
    con.Close
End Sub

Public Shared Sub Alerter_OnAlert(ByVal sender As Object, ByVal e As OracleAlerterAlertEventArgs)
    Console.WriteLine(("Got an alert: " & e.AlertMessage))
End Sub

Public Shared Sub Alerter_OnError(ByVal sender As Object, ByVal e As OracleAlerterErrorEventArgs)
    Console.WriteLine(("Error: " & e.AlerterException.Message))
End Sub

Public Shared Sub Alerter_OnStop(ByVal sender As Object, ByVal e As OracleAlerterFinishEventArgs)
    Console.WriteLine(("Stopped: " & e.ToString))
End Sub

Public Shared Sub Alerter_OnTimeOut(ByVal sender As Object, ByVal e As OracleAlerterFinishEventArgs)
    Console.WriteLine(("Time's up: " & e.ToString))
End Sub

標(biāo)簽:

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn

文章轉(zhuǎn)載自:慧都控件

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產(chǎn)品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網(wǎng)上PM娛樂城盤口(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 正規(guī)雷火競技官方買球(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權(quán)威十大網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 權(quán)威188BET足球網(wǎng)(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 正規(guī)188BET足球大全(官方)網(wǎng)站/網(wǎng)頁版登錄入口/手機版登錄入口-最新版(已更新) 国产麻豆成av人片在线观看 | 国产欧美另类在线视频 | 国产免费人成视频在线观看播放 | 精品国产自在精品国产精 | 国产精品无码av片在线观看 | 国产高清av在 | 国产一区二区野外 | 国产黑丝在线播放 | 91精品国产高清久久久久久 | 国产欧美日韩另类在线专区 | 国产成人综合亚洲网 | 国产欧美日韩va另类在线播放 | 国产精品欧美久久久久天天影视 | 精品无码自拍视频在 | 国产免费区在线观看十分钟 | 国产成人久久久精品 | 激情欧美日韩一区二 | 国产妹子自慰视频下载 | 91在线无码一区二区 | 国内国产真实露脸对白磁力 | 91av在线免费观看 | 国产高清av一级av毛片 | 国产午夜片无码区在线观看爱情 | 国产精品无码久久av丝袜喷水 | 国产成人精品免费影视大全 | 国产人妻一区二区无码 | 3d动漫精品啪啪一区二区中文 | 国产欧美日韩一区二区加勒比 | 国产欧美成人福利在线播放 | 国产超碰人人做人人爱 | 国产丰满麻豆vid | 国产日韩一区二区视频在线播放 | 国产黄片精品自拍视频 | 国产成a人亚洲精v品无码不卡 | 91精品网站在线 | 风韵丰满熟妇啪啪区老老熟女百度 | 国产呦交 | 91午夜在线免费观看小视频 | 国产精品艺校美女校花在线 | av人人澡人人爽人人夜夜 | 国产精品无码一级免费看a级毛激情 | 国产黄色老熟女中文视频 | 91精品国产一区二区无码 | 国产福利导航一区二区三区 | 国产成人剧情av麻豆果冻 | 东京热人妻无码一区二区av | 国产一区在线观看免费 | 精品久久久无码中文字幕av | 国产福利小视频在线播放 | 69久久精品无码一区二区 | 91精品免费国产高清在线 | 成人电影一区二区 | 97精品人妻一区二区三区香蕉 | 成人国产综合一区二区在 | 精品国产免费久久一级 | 国产一区二区三区不卡在线观看 | 国产精品午夜爆乳美女视频 | 国产在线一区视频 | 国产亚洲欧美一区二区三区在线播放 | 国产精品三级在线播放 | av视频一本无码视频 | 69国产精品成人在线播放 | 国产一级无码午夜大片 | 99久久国产综合精品1尤物 | 韩国无码中文字幕在线视频 | 911国产在线观看无码专区 | 国产无码一级毛片 | 国产精品果冻麻豆精东天美 | av天堂午夜精品一区二区三 | 成人国产一区二区三区精品不卡 | 国产精品无码一本 | 国产精品三级在线观看 | 国产激情久久久久影院 | 91网站永久免费看nba视频 | 国产盗摄精品一区二区 | 成人精品毛片免费视频 | 国产3级在线高清手机在线播放 | 91精品国产高清久久久电影 | 国产一区二区在免费观看 | a级毛片免费看久久 | 国产精品成人v?在线观看 | 国产一区二区三区鲁婷婷 | 国产精品毛片99久久久久 | 国产精品人成a片一区二区下载 | 国产午夜精品亚洲精品国产 | 国产成人的电影在线观看 | 国产成人欧美一区二区三区vr | 国产一区二区久久无码精品 | 国产欧美日韩视频一区二区三区 | 国产大爆乳大爆乳在线播放 | 国产精品一区 | 国产精品一级毛片无码a片 国产精品一级毛片在线观看 | 国产在线视频一区二区三区 | 国产成人无码精品一区在线观看 | 成人欧美s视频 | 97人妻碰碰碰久久久久禁片 | 国产精品免费观看久久蜜芽 | 国产中文字字幕一级毛片 | 91麻豆视频 | 国产精品毛片在线完整版 | 国产成人高清精品亚洲 | 成人午夜高潮免费视频在线观看 | 2025人人精品久久 | a级毛片免费播放无码 | 高清中文无码久久 | 国产白丝精品久久av网站 | 国产成人综合久久精品可下载 | av中文字幕1| 国产精品无码久久av丝袜喷水 | 国产色视频一区二区三区qq号 | 高清无码一区 | 国产精品国色综合久久浪潮 | 国产精品三级在线观看无码 | 韩国精品久久一区二区三区 | 国产寡妇乱子伦一区二区三区。 | 国产超薄丝袜脚交视频 | 成人国产亚洲精品a区天堂 成人国产亚洲精品ā区天堂 | av日韩国产一区二 | 国产精品va在线观看浪潮 | 国产成人午夜福利免费无码r | 成人国产一区二区 | 国产精品国产自 | 成人av第一区二 | 丰满人妻被公侵犯日本 | 成人综合亚洲欧美一区h | 国产一区二区三区电影 | 国产美女一级在线观看 | 国产成年女人免费视频播放a | 国产精品无圣光一区二区 | 国产精品成人观看视频国产 | 国产三级小视频在线播放完整 | 国产精品免费一区二区三区四区 | 国产午夜福利精品一区二区三区 | 成人一区二区三区 | 国产成人av无码永久免费 | 国产传媒欧美日韩黄色大片 | 国产成人午夜 | av在线电影亚洲 | 国产美足白丝榨精在线观看sm | 国产欧美日韩视频在线观看一区 | 精品久久久久久久无码 | 国产av无码专区亚洲版综合 | 国产91丝袜在线播放动漫 | 岛国无码精品一区二区三区 | 国产精品美女久久久久av超清 | 极品色在线精品视 | 国产一区二区午夜福利在线观看 | 国产毛片一区二区精品 | 精品国产品对白在线 | 国产一区欧美日韩 | 国产精品大片在线看 | 国产一区二区精品久 | 囯产精品久久久久久久久久无 | 国产成人高清精品亚洲网站 | 国产三级xxxxx在线观看 | 国产深夜男女无套内射 | 国产极品乱码在线观看 | 国产美女视频 | 精品国产一区二区三区av | 国产a级毛片久久久久 | 国产精品免费播放 | 91精品国产乱码久久久久久 | 国产精品一区理论片 | 高潮欧美日本 | 国产成人一区二区三区在线 | 国产成人av免费观看 | 97人妻碰碰碰爽爽爽 | 国产一区二区三区欧美精品 | 国产成人精品第一区二区三区 | 国产免费高清视频第一页 | 国产一区二区中文字幕 | 91在线免费观看网站 | 国产精品一区二区三区免费视频 | 国产精品一区二区久久精品涩爱 | 国产黄在线视 | 91国产成人在线视频 | 国产精品国产三级囯产av中文 | 91精品自在拍精选久久 | 国产亚洲日韩第一页av | 精品无码色资 | 二区三区高清电影 | 成人无码视频在线观看网址 | 国产亚洲色婷婷久久99精品 | av毛片无码中文字幕不卡 | 国产麻豆精品av在线观看 | 高清欧美三级国产 | 激情人妻偷乱在线视频 | 精品动漫一区二区无码视频 | 国产aⅴ无码精品专区 | 99国产精成人午夜视频一区二 | 国产国语对白在线高清视频 | 2025国产精产品在线不卡 | 成人午夜精品久久久久久久 | 国外免费人妖网视频在线观 | 99久久国产精品免费人妻 | 国产免费无码不卡网站 | 国产精品午夜福利1000集 | 国产午夜理论不卡在线观看 | 国产精品制服丝袜清纯唯美 | 成人综合网站一区二区三区四区 | 国产精品广西柳州莫菁泽译网 | 国产成人精品一区二区秒播 | 国产aⅴ天堂亚洲国产a | 国产精品一区二区18 | 国产av综合精品久久久久 | 国产成人无码免费视频97 | 国产成人无码aa精 | 国产在线精品福利一区二区三区 | 国产精品日韩精品中文字幕 | 精品一区二区三区东京热 | 2025国产精品视频网站 | 国产av天堂无码一区二区三区 | a片在线观看免费视频不卡 a片在线观看跳转不卡 | 国产va免费精品 | 国产麻豆精品一区二区三区v视 | 丰满人妻av无码一区二区三区 | 国产精品成人影院久久久 | heyzo在线视频 | 国产精品日韩欧美在线第3页 | a级毛片高清免费视频在线 a级毛片高清免费视频在线播放 | 精品久久久无码人妻中文字幕麻豆 | 国产码欧美日韩高清综合一区 | 精品人妻无码一区二 | 国产精品福利免费观看 | 国产免费一区二区视频麻豆 | 3d动漫精品啪啪一区二区免费 | 国产在线观看www污污污 | 成人无码h动漫在线网站免费y | 国产精品一区不卡在线观看 | 国产欧美综合在线观看第七页 | 91尤物国产网红尤物福利 | 国产不卡在线 | 国产精品无码一区二区三区免费 | 国产精品一品二区三区的使用体验 | 精品人妻系列无码人妻免 | 国产精品欧美一区二区二区二区 | 18禁无遮挡爽爽爽无码视频 | 精品无码一区二区三区在线√观 | 国产91影院| 国产高清国产精品国产专区 | 国产一区二区内射最近更新 | 国产精品亚洲片在 | 国产69精品久久久久观看软件 | 国产成人欧美亚洲日韩电影 | 国产91无码一 | 国产成人av激情在线播放 | 成人欧美日韩视频一区 | 国产午夜看片 | 国产欧美综合在线系列 | 国产人妖视频一区二区女 | 国产精品高清偷窥盗摄 | av无码精品 | 国产频99热精品在线 | 精品国产99久久久久久麻豆 | 国产精品一级毛片无码老人 | 国产成人18黄网站免费 | 国产精品免费大 | 囯产剧情亚洲精品无码一页 | 国产一区二区在线影院 | 国产女人在线观看 | 国产一区在线观 | 国产一区三区二区中文在线 | av在线亚洲男 | 99久久亚洲精品日本无码 | 国产av线女人被 | 高潮又爽又黄又无遮挡动态图 | 国产精品国产三级国产普通话 | 国产精品九九视频 | 国产精品高清一区二区不卡 | 国产一区二区三区日韩欧 | 2025免费在线手机影院 | 91麻豆国产自产在 | 99精品视频69v精品视频 | 国产毛片大全视频 | 变态的让你无法想象 | 国产成人av无码片在线观看 | 国产福利片免费在线 | 99精品蜜臀蜜 | 国产精品日韩欧美一区二区三区 | 国产午夜电影在线观看不卡 | 成人免费a级毛片无码片在线播放 | 国产高颜值露脸在 | 国产一级毛片一区二区三区 | 国产午夜福利小视频合集 | 高清中文字幕一区 | 韩国无码一区二区三区免费视频 | av无码亚州不卡播放网点 | 国产国产成年在线视网站 | 成人欧美在线视频 | 99精品人妻无码专区在线视 | 911亚洲无码 | 国产精品成人啪精品视频免费网站 | 精品麻豆天美 | a级毛片毛片免费观看久潮喷 | 苍井空一区二区波多野结衣 | 国产三级黄色录像 | 精品少妇人妻aⅴ免费久久洗澡 | 国产传媒激情精品 | 国产一区二区理论在线观看 | 国产探花在线观看 | 国产成人亚洲综合无码dvd | 国产美女a片免费观看入口 国产美女a做αw | 国产精品成人观看视频网站 | 国产av福利片一二三四区 | 精品国产免费一区二区 | 国产福利视频一区 | 国产区精品在线观看 | 91黑丝 | 精品亚洲欧美中文字幕在 | 国产午夜福利影院 | 国产av一区二区最 | 国产福利片 | 国产一级毛片大陆片看看 | 精品人妻一区二区三区视频 | 国产精品亚洲āv色欲在线观看 | 国产精品免费久久久久影院 | 精品三级片在线 | 调教美女久久国产 | 成人三级视频在线观看一区二区 | 国产精品视频一区二区三区四 | 国产三级精品三级在线专区1 | 国产看免费视频一区二区三 | 国产精品无码一区二区三区免 | 国产午夜精品久久久久 | 国产无套内射又大又猛又粗又爽 | 国产91在线精品福利 | 国产精品夜色视频一区 | 国产大学生无码视频在线观看 | 国产精品国产国产aⅴ | 丰满大屁股bbbbb | 国产偷伦视频中文精品免费 | 国产精品免费无遮挡永久视频 | 国产丝袜视频一区二区三区 | 国产亚洲欧美在手机线专区 | 国产国产成人精品久久 | 国产精品淫水呻吟女王调教 | 东京热无码一区二区免费不卡 | 国产一区视频在线观看 | 国产精品视频一区二区猎奇 | 国产不卡在线观看激情综合网婷婷 | 18成禁人看免费无遮挡动态图 | 国内精品一级毛片免费看 | 精品熟女碰碰人人a久久 | 精品国产制服丝袜 | 91久久精品亚洲一区二区三区 | 国产欧美另类精品又又久久 | 精品激情视频一区二区三区中 | 国产综合变态自虐 | 高清无码一区二区在线观看吞 | 国产成人无码aa精品一区91 | 97人妻无码免费视频一区 | 成本人片无码中文字幕免费 | 国产一二三区有声小说 | 国产精品99无码一区二蜜桃 | 国产麻豆精品久久久 | 变态国产调教手机在线 | 精品国产日韩一区2区3区 | 成人精品天堂一区二区三区 | 国产99久久九九精品无码动漫 | 国产精品午夜福利在线观看地址 | 国产一级无码av免费久久 | 国产午夜福利在线 | 91久久久久久久 | 国产在线观看不卡免费高清 | 韩国级床戏大尺度在线观看 | 国产91久久久蜜臀青青天草二 | 精品无码久久久久久久动漫 | 精品午夜福利视频 | 国产成人精品精品日本亚洲 | 国产成人久久精品一区二区三区 | 99久久精品 | ww成人片在线观看 | 国产日韩欧美一区二区在线高清 | 91视频免费看平台安全吗 | 观看一区二区 | 国产精品成人久久久久 | 成人啪精品视频免费网站 | 国产亚洲日本人在线观看 | 黑巨人精品一区二区三区 | 国产成人一区av | 国产成人av在线播放欲色 | 91精品国产网 | 国产精品一久久香蕉国 | 国产大片免费观看中文字幕 | 国产一区二区福利久久 | 高清在线亚洲精品国产二区 | 国产一区二区三区视频 | 国产精品国产精品专区不卡 | 国内精品露脸在线视频播放 | 国产午夜精品久久久久婷婷 | 国产野外无码理论片 | 国产美女mm131爽爽爽 | 国产二区亚洲无码 | 国产高清国产精品国产k | 国产成人av在线网 | 国产尤物福利在线观看 | 国产尤物在线观看无码不卡 | 福利一区二区三区不卡视频 | 国产精品日韩专区第一页 | 精品无码专区久久久水蜜桃 | 国产aⅴ视频一区二区三区 国产aⅴ天堂无码一区二区三区 | 国产成a人片在线观看视频下载 | 国产精品激情综合久久 | 丰满爆乳无码一区二区三区 | av无码专区亚洲av波 | 国产成人久久精品激情 | 国产69精品久久久久app下载 | 国产欧美日韩综合在线一区二区 | 国产sm重味一 | 精品国产av无码一区二区三区 | av色综合久| 国产亚洲日韩欧美在线 | 精品无码成人片一区二区 | 国产精品国产三级国产普通话 | 精品国产一区二区三区久久狼黑人 | 国产91小视频在线观看 | 99久久九九国产精品国产 | 国产va欧美va在线观看 | 调教女孩自慰网站免费观看 | 国产精品毛片一区二区 | 成人午夜福利视频后入 | 国产福利91精品 | 91精品啪在线观看国产线免费 | av片亚洲国产男人的天堂 | 国产高清视频在线观看不卡 | 国产自偷频在线观看 | 国产av熟女一 | 国产精品日韩综合无码 | 国产成人精品大尺度在线观看 | 国产呦精品系列在线观看 | 国产精品日日蜜臀 | 国产亚洲日韩一区二区三区在线观 | 国产成人精品日本亚洲77上位 | 国产精品高清在线看 | 国产在线播放综合网房 | 国产精品日本一区二区不卡视频 | 成人青青热久免费精品 | 国产福利在线观看 | 精品国产尤物一区二区三区 | 精品无码一区二区三区电影婷婷 | 国产精品无码久久av丝袜喷水 | 国产精品中文字幕字幕在线 | 成人国产综 | 精品九九99久久人妻免费 | 国产成人精品免费 | 大尺码无码小黄片在线免费观看 | 国产精品免费人成网站 | av无码中文不卡在线观看 | 国产成人精品久久免费看 | 国产午夜福利精品理论片在线播放 | 成人在线免费观看视频 | 69国产成人综合久久精品 | 911国产影院在线观看 | 国产无套内射毛片 | 国产91电影厂精品福利片 | 国产无套内射又大又猛又粗 | 国产精品大片天天看片 | 国产成人综合久久精品推下载 | 18禁成人无遮羞网站免费 | 99国产精品永久免费视频 | 国产高清女同学巨大 | 国产日韩一区二区三区水蜜桃 | 精品人妻视频一区二区 | 国产精品午夜波多野结衣性色 | 国产91精品一区二区麻豆亚洲 | 国产一区精品一区无码 | 国产精品对白刺激音频在线观看 | 911青草亚洲精品 | 99久久精品美女高潮喷水 | 国产精品日本一区二区不卡视频 | 国产重口老太和小伙a片 | 国产精品爽黄69天堂a片 | 99久久久国产一区二区三区 | 3d动漫精品啪啪一区二区免费 | 国产内射又粗又大又猛 | 成人国产精品一区二区免费 | 国产美女黄色片网站 | 国产精品线在线精品 | 国产aⅴ精品一区二区三区 国产aⅴ精品一区二区三区久久 | a人片视频在线观看 | 精品久久久无码中文字幕 | 国产精彩视频一区二区三区 | 国产绿帽在线视频看 | 国产超碰āv人人做人人爽 国产超碰女人任你爽 | 国产av日韩| 国产高清久久无码视频 | 国产日韩一区二区三区在线播放 | 成人午夜福利视频后入 | 国产99久60在线视频 | 国产凹凸在线观看一区二区 | 精品久久久无码中文字幕av | 国产精品丝袜无码不卡视频 | 高清av熟女一区 | 精品国产av高清毛片 | 国产免费牲交视频 | 国产尤物在线观看不卡 | 国产a级毛片区一区二区三 国产a级毛片色咪味 | 18禁无遮拦无码国产在线播 | 国产一区日韩二区欧美 | 国产成人精品久久久 | 国产成人精品亚洲日本 | 爆乳无码中文字幕在线观看 | 91麻豆精品国产91久久久久久 | 国产精品男人影院在线播放 | 91精品国产一区二区三区左线 | 91福利国产在线播放午夜 | 国产三区不卡在线观看 | 国产一级毛片特级毛国产 | 99久久婷婷免费国产综合精品 | 国产精品久久久久久亚洲毛片 | 国产精品一区久久av | 丰满少妇作爱视频免费观看 | 成一级女人大片在线视频 | www.三级在线 | 国产成人亚洲精品播放器下载 | 国产福利专区精品视频 | 国产成人精品午夜福利在线播放 | 国产美女网站视频 | 东京热无码一区二区免费不卡 | 成人无码国产 | 国产精品女人伦一区二区三区 | 91久久精品国 | 成人做色视频在线观看网站 | 91精品福利麻豆专区 | 国产精品国产三级国产专播 | 精品无码国产一区二区三区麻豆 | 国产大学生无码视频在线观看 | 97人妻一区二区精品免费 | 高潮一区二区三区视频在线观看 | 韩国级床戏大尺度在线观看 | 国产黄色淫荡视频网 | 18禁止观看强奷免费国产大片 | 国产精品va无码一区二区三区 | 国精产品一二二线精东 | 成人精品视频一区二区 | 成人啪精品视频免费网站 | 国产精品一区二区三区不卡视频 | 国产稚嫩高中生呻吟激情在线 | 国产日韩美国成人 | 91av免费在线观看 | 91久久精品无码一区二区大 | 91精品福利区91免费国产视 | 国产av无码专区亚洲av手机麻豆 | 精品精品国产自在久久高清 | 成人免费观看国产高清 | 国产精品大片在线看 | 国产精品一区二区丝瓜 | www夜片内射视频日韩 | 91国偷自产中文字幕久久 | 国产成人午夜福利免费无码r | 国产三级国产经典国产av | 97无码一区二区三区 | 2025中文字幕亚洲精品 | 国产欧美精品国 | 国产高潮好爽好大好紧受不了了 | 国产黄色视频在线播放 | 国产精品亚洲一区二区三区正片 | 海角视频在线观看 | 国产成人av三级在线观看按摩 | 国产无码理论视频网 | 成人国产欧美大片一区 | 成a人片在线观看中文漫画 成a人无码午夜电影 | 国产av激情久久无码天堂 | 韩国免费a级毛片 | 国产精品一区二区三区极品 | 国产成人18黄网站免费 | 国产成人综合精品亚洲 | 国产麻豆精品一区二区 | 国产熟女一区二区三区十视频 | 国产超精品无码不卡av | 国产爆操美女五月天 | 国产精品偷伦视频免费观看了 | 国产精品亚洲日韩aⅴ在线 国产精品亚洲日韩aⅴ在线观看 | 精品日韩色国产在线观看 | 国产高潮美女出白浆在线观看 | 操美女黄在线网站 | 岛国av一区二区无码 | 2025天天做夜夜爽视频综合 | 91大神在线精品播放 | 高清国产无码乱伦 | 国产成年女人特黄特色毛片免 | 精品无码国产一区二区三区在线看 | 国产成人a视频高清在线下载 | 国产精品无码av在线播放 | 国产成人无码免费看片软件 | 朝桐光亚洲专区在线中文字幕 | 国产在线无码制服丝袜无码 | 国产精品成人小电影在线观看 | 国产大秀视频 | 91久久精品亚洲中文字幕无码 | 国产精品人妻无码久久久张津瑜 | 国产91丝袜在线观看 | 国产91精品一区二区麻豆亚洲 | 国产午夜无码精品免费看秒播 | 国产成人av无码片在线观看 | 国产成人午夜精品视频牛牛 | 国产精品无码专区av在线播放 | 精品无人区一码二码三码四码 | 国产极品嫩模在线观看 | 国产极品无码色综合 | 国产人妻久久精品一区 | 91精品一区二区三区无码吞精 | 国产户外一区二区三区在线 | av无码精品专区在线观看 | 国产精品无码视频全 | www夜片内射视频在观看视频 | 成人免费在线观看毛片 | 国产亚洲欧洲日韩 | 成人涩涩视频免费观看 | 精品无码成人片一区二区98 | 97人妻天天摸天天爽天天 | 精品国产专区91在线尤物 | 爆乳高潮喷水无码正在播放 | 国产成人午夜在线视频免费 | 国产欧美va欧美va香蕉在线 | 国产精品成人啪免费视频 | 精品国产av无码久久久黄 | 国产91l在线播放 | 91国内自产精华天堂 | 国产精品一区二区在线观看 | 精品人妻无码久久久久久 | 91国在线啪精品一区 | 国产免费人成视频在线播放播 | 国产精品免费观看久久蜜芽 | 2025国产亚洲日韩在线 | 国产91在线精品不卡 | 91福利在线观看 | 成人无码区免费aⅴ片黄瓜视频 | 国产动漫同人一区二区 | 国产精品午夜高清在线观看 | 国产美女视频国产视视频 | 国产亚洲一区二区在线 | 国产高潮好爽好大好紧受不了了 | av三级片在线 | 91精品人妻一区二区三区蜜 | 97人妻在线公开视频 | 国产精品一区2区三区内射 国产精品一区91 | 国产一二三四区中 | 国产精品高清系列在线观看 | 国产日韩另类视频一区 | 国产经典中文字幕影片 | 国产美女激情一二三区 | 国产黄在线观看免 | 国产精品免费一区二区 | 国产91在线精品国自产在线 | 国产精品香蕉成人网在线观看 | 国产亚洲欧美专区精品 | 国产亚洲欧美日韩在线三区 | 精品久久aⅴ人妻中文字幕 精品久久a人妻 | 国产艳福片内射视频播放 | 国产精品嫩草影院一二三区入口 | 国产精品亚洲二区在线看 | 91精品欧美一区二区综合在线 | 2025最新国产三级在线看 | 国产精品丝袜在自线拍 | 精品久久aⅴ人妻色欲 | 国产精品欧美亚洲日本综合 | 国产高清不卡一区二区三区 | 国产在线无码色视频大全 | 国产精品成人无码久久久久久 | 国产亚洲日韩av在线播放不卡 | 国产日韩精品欧美二区 | 成人国内精品久久久久影院 | 91久久偷偷做嫩 | 91av在线观看国产日本视频 | 高清国产午夜精品久久久久久 | a片日韩美女视频免费 | 国产中文字幕精品一区二区三区 | 1024国产欧美日韩精品 | 国产免费无码一区二区视频 | 精品人妻午夜一区二区三区 | 国产大片中文字幕在线观看 | 18精品爽国产白嫩精品 | 不卡无码在线免费 | 国产精品国产三级国产av剧情 | 成人午夜视频在线观看免费 | 2025精品国产自在现线看 | 国产激情视频一区二区三区 | 国产福利片一区二区 | 2025国语神马影院 | 国产福利爱福利微拍视频 | 东京热一区二区免费高清av | 精品国产亚洲一区二区三区在线观看 | 国产av无码一区 | 91精品国产自产在线老师啪 | 国产成人精品午夜福利在线观看 | 国产交换精品一区二区三区免费 | 国产毛a片久久久久久无码 国产毛多水多高潮高清 | 爆爽久久久一区二区又大又黄又嫩 | 精品美女网站在线观看av污 | 国产三级在线免费 | 国产一区二区在线观看年轻 | 国产成人a视频高清视频在线 | 国产成人精品无码一区二 | 国产免费午夜高清 | 国产精品后入内射日 | 白丝爆浆18禁一区 | 国产成人年无码av片在线观看 | 国产欧美日韩综合精品久久一区 | 国产偷人视频免费观看 | 高清一区二区亚洲欧美日韩 | 91在线视频 | 1区2区3区4区精品免费视频 | av无码一区二区三区波多野 | 国产午夜免费一区二区三区 | 国产午夜专区在线观看 | 国产精品爆乳在线播放 | 99国产婷婷综合在线视频 | 成熟丰满熟妇高潮xxxxx | 国产精品视频色尤物yw | 91久久精品国产免费一区 | 国产一区二区欧美区 | 高清国产网曝门事件情侣 | 91久久久久久亚洲精品蜜桃 | 国产成人精品无码一区二区 | 精品福利一区二区三区野战 | av午夜福利一片免费看久久 | 国产午夜视频在线观看网站 | 国产成人精品在线免费观看 | 91精品啪在线观看国产电影 | 成人片在线观看地址kk4444 | 99久久综合狠狠综合久久最 | 朝桐光亚洲专区在线中文字幕 | 成人年无码av片在线观看 | 国产精品一区二区18 | 国产成人年无码av片在线观看 | 国产三级片免费人 | 国产真实喝醉系列39女同事 | 精品国产99久久久久久www | 国产偷窥女洗浴在线观 | 国产av无码专区亚洲av草草 | 2025最新在线精品国自产拍视频 | 91午夜福利影视 | 国模吧无码一区二区三区 | 国产avxxxx无套内射 | 国产午夜福利精品在线观看不卡 | 成人一区在线 | 精品无码av不卡一区二区三区 | 粉嫩极品国产在线观看 | a级毛片免费全部播放经典 a级毛片免费全部播放无码 | 国产高清无码视频在线观看 | 91精品国产一区二区三区左线 | av无日| av在线免费观看麻豆 | 国产精品毛片91 | 国产成人综合日韩精品无码不卡 | 国产欧美精品综合一区 | 国产白领诱惑在线观看 | 国产成人手机高清在线观看网站 | 国产粉嫩一区二区三区不卡a | 国产高清无码日韩一区 | 国产精品丝袜黑色高跟鞋 | 国产精品女人呻吟在线观看 | 18禁黄色网站亚洲 | 国产不卡在线观看激情综合网婷婷 | 国产精品无码三级久久久天美传媒 | 国产福利视频一区二区三区 | 国产av激情无 | 精品日产一区二区 | 国产av综合影院 | 国产福利萌白酱在线观看视频 | 91福利国产在线在线播放 | 国产肥熟女视频一区二 | a人片视频在线观看 | 精品熟人妻一区二区三区四区不卡 | 精品一区二区av资源在线 | 国产亚洲中文在线字幕 | 国产精品自产拍在线观看中文 | 精品国产一区二区三区无码乌克兰 | 国产在线主播观看不卡 | 国产精品色 | 国产高清一级毛片在线不卡 | 国产精品va无码免费麻豆 | 国产毛片网站视频在观 | 国产在线aaa片一区二区99 | 国产1区2区3区在线观看 | 精品少妇爆乳无码aⅴ区 | 精品精品国产理论在线 | 国产午夜精华2025在线 | 成人午夜视频一区二区国语 | 国自产成人免费视频在线播放 | 国产麻豆剧传媒精品国产av | 国内女人牲交视频播放 | 国产毛片农村妇女 | 东京热一区二区无码视频 | 国精产品一区二区 | 2025国产拍精品系列观看 | 国产极品精品无码在线播出 | 成人国产精品一区在线观看播放 | 国产999精品2卡3卡4卡 | 成年午夜一级毛 | 91精品人妻一区二区蜜桃 | 国产亚洲成av人片在线观看导航 | 东京天堂国产一区二区三区 | 国产精品女人呻吟白浆在线观看 | 国产午夜福三级在线播放 | 91成人啪国产啪永久地址 | 国产超碰人人做人人爱ⅴa 国产超碰人人做人人爱电影 | 国产妇女乱码一区二区三区 |