日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

05CRecordset类

發布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 05CRecordset类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CRecordset類

CRecordset類代表一個記錄集.該類是MFCODBC類中最重要、功能最強大的類。

10.5.1 動態集、快照、光標和光標庫

在多任務操作系統或網絡環境中,多個用戶可以共享同一個數據源。共享數據的一個主要問題是如何協調各個用戶對數據源的修改。例如,當某一個應用改變了數據源中的記錄時,別的連接至該數據源的應用應該如何處理。對于這個問題,基于MFCODBC應用程序可以采取幾種不同的處理辦法,這將由程序采用哪種記錄集決定。

記錄集主要分為快照(Snapshot) 和動態集(Dynaset)兩種,CRecordset類對這兩者都支持。這兩種記錄集的不同表現在它們對別的應用改變數據源記錄采取了不同的處理方法。

快照型記錄集提供了對數據的靜態視.快照是個很形象的術語,就好象對數據源的某些記錄照了一張照片一樣.當別的用戶改變了記錄時(包括修改、添加和刪除),快照中的記錄不受影響,也就是說,快照不反映別的用戶對數據源記錄的改變.直到調用了CRecordset::Requery重新查詢后,快照才會反映變化.對于象產生報告或執行計算這樣的不希望中途變動的工作,快照是很有用的。需要指出的是,快照的這種靜態特性是相對于別的用戶而言的,它會正確反映由本身用戶對記錄的修改和刪除,但對于新添加的記錄直到調用Requery后才能反映到快照中.

動態集提供了數據的動態視.當別的用戶修改或刪除了記錄集中的記錄時,會在動態集中反映出來:當滾動到修改過的記錄時對其所作的修改會立即反映到動態集中,當記錄被刪除時,MFC代碼會跳過記錄集中的刪除部分.對于其它用戶添加的記錄,直到調用Requery時,才會在動態集中反映出來。本身應用程序對記錄的修改、添加和刪除會反映在動態集中。當數據必須是動態的時侯,使用動態集是最適合的。例如,在一個火車票聯網售票系統中,顯然應該用動態集隨時反映出共享數據的變化。

在記錄集中滾動,需要有一個標志來指明滾動后的位置(當前位置)。ODBC驅動程序會維護一個光標,用來跟蹤記錄集的當前記錄,可以把光標理解成跟蹤記錄集位置的一種機制。

光標庫(Cursor Library)是處于ODBC驅動程序管理器和驅動程序之間的動態鏈接庫(ODBCCR32.DLL).光標庫的主要功能是支持快照以及為底層驅動程序提供雙向滾動能力,高層次的驅動程序不需要光標庫,因為它們是可滾動的.光標庫管理快照記錄的緩沖區,該緩沖區反映本程序對記錄的修改和刪除,但不反映其它用戶對記錄的改變,由此可見,快照實際上相當于當前的光標庫緩沖區.

應注意的是,快照是一種靜態光標(Static Cursor).靜態光標直到滾動到某個記錄才能取得該記錄的數據.因此,要保證所有的記錄都被快照,可以先滾動到記錄集的末尾,然后再滾動到感興趣的第一個記錄上.這樣做的缺點是滾動到末尾需要額外的開銷,會降低性能.

與快照不同,動態集不用光標庫維持的緩沖區來存放記錄.實際上,動態集是不使用光標庫的,因為光標庫會屏蔽掉一些支持動態集的底層驅動程序功能.動態集是一種鍵集驅動光標(Keyset-Driven Cursor),當打開一個動態集時,驅動程序保存記錄集中每個記錄的鍵.只要光標在動態集中滾動,驅動程序就會通過鍵來從數據源中檢取當前記錄,從而保證選取的記錄與數據源同步.

從上面的分析中可以看出,快照和動態集有一個共同的特點,那就是在建立記錄集后,記錄集中的成員就已經確定了.這就是為什么兩種記錄集都不能反映別的用戶添加記錄的原因.

10.5.2 域數據成員與數據交換

CRecordset類代表一個記錄集.用戶一般需要用ClassWizard創建一個CRecordset的派生類.ClassWizard可以為派生的記錄集類創建一批數據成員,這些數據成員與記錄的各字段相對應,被稱為字段數據成員或域數據成員.例如,對于表10.2所示的將在后面例子中使用的數據庫表,ClassWizard會在派生類中加入6個域數據成員,如清單10.1所示.可以看出域數據成員與表中的字段名字類似,且類型匹配.

 

10.2 stdreg32.mdb中的Section

CourseID

(Text)

SectionNo

(Text)

InstructorID

(Text)

RoomNo

(Text)

Schedule

(Text)

Capacity

(int)

MATH101

1

KLAUSENJ

KEN-12

MWF10-11

40

MATH101

2

ROGERSN

WIL-1088

TTH3:30-5

15

MATH201

1

ROGERSN

WIL-1034

MWF2-3

20

MATH201

2

SMITHJ

WIL-1054

MWF3-4

25

MATH202

1

KLA

WIL-1054

MWF9-10

20

MATH202

2

ROGERSN

KEN-12

TTH9:30-11

15

MATH202

3

KLAUSENJ

WIL-2033

TTH3-4:30

15

清單10.1 派生類中的域數據成員

class CSectionSet : public CRecordset

{

public:

. . . . . .

//{{AFX_FIELD(CSectionSet, CRecordset)

CString m_CourseID;

CString m_SectionNo;

CString m_InstructorID;

CString m_RoomNo;

CString m_Schedule;

int m_Capacity;

//}}AFX_FIELD

. . . . . .

};

 

域數據成員用來保存某條記錄的各個字段,它們是程序與記錄之間的緩沖區.域數據成員代表當前記錄,當在記錄集中滾動到某一記錄時,框架自動地把記錄的各個字段拷貝到記錄集對象的域數據成員中.當用戶要修改當前記錄或增加新記錄時,程序先將各字段的新值放入域數據成員中,然后調用相應的CRecordset成員函數把域數據成員設置到數據源中.

不難看出,在記錄集與數據源之間有一個數據交換問題.CRecordset類使用"記錄域交換"(Record Field Exchange,縮寫為RFX)機制自動地在域數據成員和數據源之間交換數據.RFX機制與對話數據交換(DDX)類似.CRecordset的成員函數DoFieldExchange負責數據交換任務,在該函數中調用了一系列RFX函數.當用戶用ClassWizard加入域數據成員時,ClassWizard會自動在DoFieldExchange中建立RFX.典型DoFieldExchange如清單10.2所示:

 

清單10.2 典型的DoFieldExchange函數

void CSectionSet::DoFieldExchange(CFieldExchange* pFX)

{

//{{AFX_FIELD_MAP(CSectionSet)

pFX->SetFieldType(CFieldExchange::outputColumn);

RFX_Text(pFX, _T("[CourseID]"), m_CourseID);

RFX_Text(pFX, _T("[SectionNo]"), m_SectionNo);

RFX_Text(pFX, _T("[InstructorID]"), m_InstructorID);

RFX_Text(pFX, _T("[RoomNo]"), m_RoomNo);

RFX_Text(pFX, _T("[Schedule]"), m_Schedule);

RFX_Int(pFX, _T("[Capacity]"), m_Capacity);

//}}AFX_FIELD_MAP

}

 

 

10.5.3 SQL查詢

記錄集的建立實際上主要是一個查詢過程,SQLSELECT語句用來查詢數據源.在建立記錄集時,CRecordset會根據一些參數構造一個SELECT語句來查詢數據源,并用查詢的結果創建記錄集.明白這一點對理解CRecordset至關重要.SELECT語句的句法如下:

SELECT rfx-field-list FROM table-name [WHERE m_strFilter]

[ORDER BY m_strSort]

其中table-name是表名,rfx-field-list是選擇的列(字段).WHEREORDER BY是兩個子句,分別用來過濾和排序。下面是SELECT語句的一些例子:

SELECT CourseID, InstructorID FROM Section

SELECT * FROM Section WHERE CourseID=MATH202AND Capacity=15

SELECT InstructorID FROM Section ORDER BY CourseID ASC

其中第一個語句從Section表中選擇CourseIDInstructorID字段.第二個語句從Section表中選擇CourseIDMATH202Capacity等于15的記錄,在該語句中使用了象"AND"或"OR"這樣的邏輯連接符.要注意在SQL語句中引用字符串、日期或時間等類型的數據時要用單引號括起來,而數值型數據則不用.第三個語句從Section表中選擇InstructorID列并且按CourseID的升序排列,若要降序排列,可使用關鍵字DESC

提示:如果列名或表名中包含有空格,則必需用方括號把該名稱包起來。例如,如果有一列名為“Client Name”,則應該寫成“[Client Name]”。

 

10.5.4 記錄集的建立和關閉

要建立記錄集,首先要構造一個CRecordset派生類對象,然后調用Open成員函數查詢數據源中的記錄并建立記錄集.在Open函數中,可能會調用GetDefaultConnectGetDefaultSQL函數.函數的聲明為

CRecordset( CDatabase* pDatabase = NULL);
參數pDatabase指向一個CDatabase對象,用來獲取數據源.如果pDatabaseNULL,則會在Open函數中自動構建一個CDatabase對象.如果CDatabase對象還未與數據源連接,那么在Open函數中會建立連接,連接字符串(參見10.3.1)由成員函數GetDefaultConnect提供.

virtual CString GetDefaultConnect( );
該函數返回缺省的連接字符串.Open函數在必要的時侯會調用該函數獲取連接字符串以建立與數據源的連接.一般需要在CRecordset派生類中覆蓋該函數并在新版的函數中提供連接字符串.

virtual BOOL Open( UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL = NULL, DWORD dwOptions = none );
throw( CDBException, CMemoryException );
該函數使用指定的SQL語句查詢數據源中的記錄并按指定的類型和選項建立記錄集.參數nOpenType說明了記錄集的類型,如表10.3所示,如果要求的類型驅動程序不支持,則函數將產生一個異常.參數lpszSQL是一個SQLSELECT語句,或是一個表名.函數用lpszSQL來進行查詢,如果該參數為NULL,則函數會調用GetDefaultSQL獲取缺省的SQL語句.參數dwOptions可以是一些選項的組合,常用的選項在表10.4中列出.若創建成功則函數返回TRUE,若函數調用了CDatabase::Open且返回FALSE,則函數返回FALSE

 

10.3 記錄集的類型

類型

含義

AFX_DB_USE_DEFAULT_TYPE

使用缺省值.

CRecordset::dynaset

可雙向滾動的動態集.

CRecordset::snapshot

可雙向滾動的快照.

CRecordset::dynamic

提供比動態集更好的動態特性,大部分ODBC驅動程序不支持這種記錄集.

CRecordset::forwardOnly

只能前向滾動的只讀記錄集.

 

 

10.4 創建記錄集時的常用選項

選項

含義

CRecordset::none

無選項(缺省).

CRecordset::appendOnly

不允許修改和刪除記錄,但可以添加記錄.

CRecordset::readOnly

記錄集是只讀的.

CRecordset::skipDeletedRecords

有些數據庫(如FoxPro)在刪除記錄時并不真刪除,而是做個刪除標記,在滾動時將跳過這些被刪除的記錄.

 

 

virtual CString GetDefaultSQL( );
Open函數在必要時會調用該函數返回缺省的SQL語句或表名以查詢數據源中的記錄.一般需要在CRecordset派生類中覆蓋該函數并在新版的函數中提供SQL語句或表名.下面是一些返回字符串的例子.
Section//選擇Section表中的所有記錄到記錄集中
Section, Course//合并Section表和Course表的各列到記錄集中

//Section表中的所有記錄按CourseID的升序進行排序,然后建立記錄集

SELECT * FROM Section ORDER BY CourseID ASC

上面的例子說明,通過合理地安排SQL語句和表名,Open函數可以十分靈活地查詢數據源中的記錄.用戶可以合并多個表的字段,也可以只選擇記錄中的某些字段,還可以對記錄進行過濾和排序.

上一小節說過,在建立記錄集時,CRecordset會構造一個SELECT語句來查詢數據源.如果在調用Open時只提供了表名,那么SELECT語句還缺少選擇列參數rfx-field-list(參見10.5.3).框架規定,如果只提供了表名,則選擇列的信息從DoFieldExchange中的RFX語句里提取.例如,如果在調用Open時只提供了"Section"表名,那么將會構造如下一個SELECT語句:

SELECT CourseID,SectionNo,InstructorID,RoomNo, Schedule,Capacity FROM Section

 

建立記錄集后,用戶可以隨時調用Requery成員函數來重新查詢和建立記錄集.Requery有兩個重要用途:

    • 使記錄集能反映用戶對數據源的改變(參見10.5.1).

    • 按照新的過濾或排序方法查詢記錄并重新建立記錄集.

 

在調用Requery之前,可調用CanRestart來判斷記錄集是否支持Requery操作.要記住Requery只能在成功調用Open后調用,所以程序應調用IsOpen來判斷記錄集是否已建立.函數的聲明為

virtual BOOL Requery( );throw( CDBException, CMemoryException );
返回TRUE表明記錄集建立成功,否則返回FALSE.若函數內部出錯則產生異常.

BOOL CanRestart( ) const; //若支持Requery則返回TRUE

BOOL IsOpen( ) const; //若記錄集已建立則返回TRUE

CRecordset類有兩個公共數據成員m_strFilterm_strSort用來設置對記錄的過濾和排序.在調用OpenRequery前,如果在這兩個數據成員中指定了過濾或排序,那么OpenRequery將按這兩個數據成員指定的過濾和排序來查詢數據源.

成員m_strFilter用于指定過濾器.m_strFilter實際上包含了SQLWHERE子句的內容,但它不含WHERE關鍵字.使用m_strFilter的一個例子為:

m_pSet->m_strFilter=CourseID=MATH101’”; //只選擇CourseIDMATH101的記錄

if(m_pSet->Open(CRecordset::snapshot, Section))

. . . . . .

成員m_strSort用于指定排序.m_strSort實際上包含了ORDER BY子句的內容,但它不含ORDER BY關鍵字.m_strSort的一個例子為

m_pSet->m_strSort=CourseID DESC; //CourseID的降序排列記錄

m_pSet->Open();

. . . . . .

事實上,Open函數在構造SELECT語句時,會把m_strFilterm_strSort的內容放入SELECT語句的WHEREORDER BY子句中.如果在OpenlpszSQL參數中已包括了WHEREORDER BY子句,那么m_strFilterm_strSort必需為空.

調用無參數成員函數Close可以關閉記錄集.在調用了Close函數后,程序可以再次調用Open建立新的記錄集.CRecordset的析構函數會調用Close函數,所以當刪除CRecordset對象時記錄集也隨之關閉。

 

10.5.5 滾動記錄

CRecordset提供了幾個成員函數用來在記錄集中滾動,如下所示.當用這些函數滾動到一個新記錄時,框架會自動地把新記錄的內容拷貝到域數據成員中.

void MoveNext( ); //前進一個記錄

void MovePrev( ); //后退一個記錄

void MoveFirst( ); //滾動到記錄集中的第一個記錄

void MoveLast( ); //滾動到記錄集中的最后一個記錄

void SetAbsolutePosition( long nRows );
該函數用于滾動到由參數nRows指定的絕對位置處.若nRows為負數,則從后往前滾動.例如,當nRows-1時,函數就滾動到記錄集的末尾.注意,該函數不會跳過被刪除的記錄.

virtual void Move( long nRows, WORD wFetchType = SQL_FETCH_RELATIVE );
該函數功能強大.通過將wFetchType參數指定為SQL_FETCH_NEXTSQL_FETCH_PRIORSQL_FETCH_FIRSTSQL_FETCH_LASTSQL_FETCH_ABSOLUTE,可以完成上面五個函數的功能.若wFetchTypeSQL_FETCH_RELATIVE,那么將相對當前記錄移動,若nRows為正數,則向前移動,若nRows為負數,則向后移動.

 

如果在建立記錄集時選擇了CRecordset::skipDeletedRecords選項,那么除了SetAbsolutePosition外,在滾動記錄時將跳過被刪除的記錄,這一點對象FoxPro這樣的數據庫十分重要.

如果記錄集是空的,那么調用上述函數將產生異常.另外,必須保證滾動沒有超出記錄集的邊界.調用IsEOFIsBOF可以進行這方面的檢測.

 

BOOL IsEOF( ) const;
如果記錄集為空或滾動過了最后一個記錄,那么函數返回TRUE,否則返回FALSE

BOOL IsBOF( ) const;
如果記錄集為空或滾動過了第一個記錄,那么函數返回TRUE,否則返回FALSE

 

下面是一個使用IsEOF的例子:

while(!m_pSet->IsEOF( ))

m_pSet->MoveNext( );

調用GetRecordCound可獲得記錄集中的記錄總數,該函數的聲明為

long GetRecordCount( ) const;
要注意這個函數返回的實際上是用戶在記錄集中滾動的最遠距離.要想真正返回記錄總數,只有調用MoveNext移動到記錄集的末尾(MoveLast不行)

 

10.5.6 修改、添加和刪除記錄

要修改當前記錄,應該按下列步驟進行:

調用Edit成員函數.調用該函數后就進入了編輯模式,程序可以修改域數據成員.注意不要在一個空的記錄集中調用Edit,否則會產生異常.Edit函數會把當前域數據成員的內容保存在一個緩沖區中,這樣做有兩個目的,一是可以與域數據成員作比較以判斷哪些字段被改變了,二是在必要的時侯可以恢復域數據成員原來的值.若再次調用Edit,則將從緩沖區中恢復域數據成員,調用后程序仍處于編輯模式.調用Move(AFX_MOVE_REFRESH)Move(0)可退出編輯模式(AFX_MOVE_REFRESH的值為0),同時該函數會從緩沖區中恢復域數據成員.

設置域數據成員的新值.

調用Update完成編輯.Update把變化后的記錄寫入數據源并結束編輯模式.

 

要向記錄集中添加新的記錄,應該按下列步驟進行:

調用AddNew成員函數.調用該函數后就進入了添加模式,該函數把所有的域數據成員都設置成NULL(注意,在數據庫術語中,NULL是指沒有值,這與C++NULL是不同的).與Edit一樣,AddNew會把當前域數據成員的內容保存在一個緩沖區中,在必要的時侯,程序可以再次調用AddNew取消添加操作并恢復域數據成員原來的值,調用后程序仍處于添加模式.調用Move(AFX_MOVE_REFRESH)可退出添加模式,同時該函數會從緩沖區中恢復域數據成員.

設置域數據成員.

調用UpdateUpdate把域數據成員中的內容作為新記錄寫入數據源,從而結束了添加.

 

如果記錄集是快照,那么在添加一個新的記錄后,需要調用Requery重新查詢,因為快照無法反映添加操作.

要刪除記錄集的當前記錄,應按下面兩步進行:

調用Delete成員函數.該函數會同時給記錄集和數據源中當前記錄加上刪除標記.注意不要在一個空記錄集中調用Delete,否則會產生一個異常.

滾動到另一個記錄上以跳過刪除記錄.

 

上面提到的函數聲明為:

virtual void Edit( );throw( CDBException, CMemoryException );

virtual void AddNew( );throw( CDBException );

virtual void Delete( );throw( CDBException );

virtual BOOL Update( );throw( CDBException );
若更新失敗則函數返回FALSE,且會產生一個異常.

 

在對記錄集進行更改以前,程序也許要調用下列函數來判斷記錄集是否是可以更改的,因為如果在不能更改的記錄集中進行修改、添加或刪除將導致異常的產生.

BOOL CanUpdate( ) const; //返回TRUE表明記錄是可以修改、添加和刪除的.

BOOL CanAppend( ) const; //返回TRUE則表明可以添加記錄.

總結

以上是生活随笔為你收集整理的05CRecordset类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色婷婷啪啪免费在线电影观看 | 成年人视频在线免费观看 | 国产成人黄色网址 | 国产精成人品免费观看 | 成年人网站免费在线观看 | 91在线国内视频 | 久久久免费看 | 狠狠色狠狠色综合日日92 | 97精品国产一二三产区 | 亚洲精品视频第一页 | 色综合久久天天 | 国产精品自产拍在线观看 | 成人av电影免费在线播放 | 在线观看国产日韩欧美 | 久草久草视频 | 婷婷丁香六月 | 免费观看不卡av | 欧美精品免费在线 | 欧美成人手机版 | 国产精品久久一区二区无卡 | 日韩av片免费在线观看 | 中文字幕一区二区三 | 国产精品9区 | av网址在线播放 | 精品亚洲国产视频 | 视频在线观看国产 | 免费成人黄色av | 中文字幕一区二区三区四区久久 | 国产午夜精品一区二区三区嫩草 | 四虎成人av | www.干| 日韩免费三区 | 国产黄大片 | 在线观看91 | 国产高清视频免费在线观看 | 日本精品视频在线 | 不卡的av在线播放 | 成人黄色在线视频 | 视频在线精品 | 久久久久久免费视频 | 这里只有精品视频在线观看 | 精品少妇一区二区三区在线 | 亚洲理论视频 | 欧美精品国产综合久久 | 久草视频中文 | 99c视频高清免费观看 | 伊人五月天.com | 亚洲精色| 久久久免费观看 | 久久久久久久久久久久久国产精品 | 黄色毛片一级片 | 国产欧美精品在线观看 | 在线www色 | 欧美一级久久久 | www.av中文字幕.com | 韩国精品一区二区三区六区色诱 | 久久一二区 | 日韩欧美精品一区二区三区经典 | 天天色天天色天天色 | 成人在线免费观看网站 | 欧美成人精品在线 | 欧美性色黄大片在线观看 | 国产涩图 | 九九久久精品 | 久久综合狠狠 | 精品国产一区二区三区久久 | 美女国内精品自产拍在线播放 | 日韩在线小视频 | 国产亚洲视频在线免费观看 | 五月婷婷丁香色 | 婷婷丁香自拍 | 国产免费嫩草影院 | 中文字幕精品www乱入免费视频 | 国产精品久久中文字幕 | 五月的婷婷 | 国产一区二区三区免费在线观看 | 欧美在线观看禁18 | 亚洲精品在线观看av | 亚洲 中文 在线 精品 | 精品久久久久久亚洲 | 亚洲毛片一区二区三区 | 成人久久影院 | 国产视频二 | 亚洲精品综合一区二区 | 欧美天天综合 | 日韩精品视频在线免费观看 | 98福利在线| 国产成人精品亚洲 | 超碰人人乐 | 在线观看国产高清视频 | 久草免费在线视频观看 | 一区二区av | 少妇bbb搡bbbb搡bbbb′ | 亚洲视频中文 | 欧美精品久久久久久久 | 操久在线 | 成人精品一区二区三区电影免费 | 国产一区二区不卡视频 | 五月天伊人| 日韩电影精品一区 | 日本久久成人中文字幕电影 | 97成人资源站 | 91香蕉国产在线观看软件 | 久久久久97国产 | 97福利视频| 国产成人精品在线观看 | 久久人人爽爽 | 黄色精品久久 | 国产在线视频一区二区三区 | 最新精品视频在线 | 激情五月播播久久久精品 | 99色视频 | 欧美日韩高清在线 | 在线观看日韩 | av一级免费 | 97电影网手机版 | 中文字幕一区二区三区在线观看 | 亚洲一二视频 | 久久久久 免费视频 | 日韩综合视频在线观看 | 国产91在线观看 | 欧美国产日韩在线视频 | 国产精品美女在线观看 | 99视频+国产日韩欧美 | 国产精品视频 | 丁香 久久 综合 | 99这里都是精品 | 国产在线一区观看 | 九色91在线视频 | 91av看片| 日日操日日插 | 一级黄色片在线免费观看 | 午夜精品一区二区三区视频免费看 | 欧美精品久久久久性色 | 色狠狠狠 | 国产小视频你懂的 | 97超碰色 | 久久综合色综合88 | 午夜私人影院久久久久 | 激情视频一区 | 国产美女视频免费 | 久久国产欧美日韩 | 日韩中文字幕a | 国产 色 | 国产高清在线观看 | 精品国产一区二区三区av性色 | 国精产品999国精产品视频 | 免费视频91蜜桃 | 色综合天天干 | 一区二区三区高清在线观看 | 超碰97在线资源站 | 免费亚洲成人 | 91香蕉久久 | 欧美日视频 | 成人午夜电影在线播放 | 黄色国产精品 | 99热只有精品在线观看 | 81精品国产乱码久久久久久 | 天天伊人狠狠 | 久草免费在线视频观看 | 欧美另类tv | 91麻豆精品国产91久久久久久久久 | 欧美在线一二区 | 久久专区 | 久久精品欧美 | 最新在线你懂的 | 亚洲精品视频在线免费播放 | 免费看片网页 | 天天搞天天干 | 99在线观看 | 欧美最爽乱淫视频播放 | 一级黄色在线免费观看 | 91丨porny丨九色 | 欧美aⅴ在线观看 | 一区二区三区高清 | 亚洲精品一区二区三区高潮 | 一区二区三区观看 | 日本一区二区不卡高清 | 色橹橹欧美在线观看视频高清 | 一二三久久久 | 亚洲电影图片小说 | 91视频在线自拍 | 91高清免费观看 | 国产999精品久久久影片官网 | 国产成人99av超碰超爽 | 五月天色站 | 成人在线观看日韩 | 久久久久久久久久久免费视频 | www夜夜操 | 免费看的国产视频网站 | 色夜视频 | 激情中文字幕 | 欧美成人tv | 九九热国产视频 | 国产在线超碰 | 在线免费观看一区二区三区 | 国产精品久久久久毛片大屁完整版 | 九九爱免费视频在线观看 | 在线播放91 | 黄网站色| 成人一区二区三区在线 | 亚洲精品视频网址 | 99性视频 | 在线电影a | 一区二区男女 | 国产一区二区在线影院 | 国产成人精品一区在线 | 婷婷精品国产一区二区三区日韩 | 日批网站免费观看 | 日韩午夜电影院 | 99久久精 | 不卡的一区二区三区 | 国产老太婆免费交性大片 | 在线免费中文字幕 | 国产探花视频在线播放 | 免费视频久久久久久久 | 天天做天天爱夜夜爽 | 成人av片免费观看app下载 | 日本aa在线 | 欧美精品免费在线 | 久久免费视屏 | 国内精品久久久久影院日本资源 | 五月天婷婷在线观看视频 | 国产小视频免费观看 | 国产又粗又长的视频 | 久色婷婷 | 日韩最新在线视频 | 九色91福利 | 国产精品原创 | 在线视频91| 久久久2o19精品 | 91麻豆精品91久久久久同性 | 亚洲国产高清视频 | 狠狠网站| 午夜精品久久久久久久久久久 | 国产 日韩 中文字幕 | 国产在线黄 | 亚洲黄色免费网站 | 亚洲精品视频第一页 | 国产精品久久久久久久婷婷 | 久久久99精品免费观看乱色 | 91黄色小视频 | 国产精品嫩草69影院 | 成人一级视频在线观看 | 亚洲成av人片在线观看香蕉 | 婷婷伊人五月天 | 中文字幕av一区二区三区四区 | 精品亚洲成a人在线观看 | 国产成人一区二区三区电影 | 国产精品久久久久久模特 | 特黄色大片 | 免费观看黄色av | 99在线看| 国产精品美女久久久网av | 五月婷婷开心中文字幕 | 精品视频免费久久久看 | 99热这里只有精品8 久久综合毛片 | 成人欧美亚洲 | 狠狠色丁香 | 97国产精品 | 人人插人人草 | 久久国产精品影视 | 草久电影 | 久久99九九99精品 | 狠狠色丁香婷婷综合久小说久 | 综合久久婷婷 | 久久亚洲福利视频 | 国产成人免费在线 | 黄色av成人在线观看 | 91欧美视频网站 | 人人干人人干人人干 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久一视频 | 国产一区二区在线视频观看 | 激情综合啪| 国产va精品免费观看 | 天天操婷婷 | 国产又粗又猛又爽又黄的视频免费 | 精品国产乱码久久久久久1区2匹 | 6080yy午夜一二三区久久 | 日日夜精品 | 久热免费在线观看 | 免费涩涩网站 | 国产在线免费观看 | 99这里只有精品99 | 国产精品ssss在线亚洲 | 国产一级免费播放 | 国产午夜精品一区二区三区在线观看 | 国产高清在线观看 | 国产精品黄 | 久久久午夜精品理论片中文字幕 | 日韩免费一区 | 久久人人爽人人爽人人片av软件 | 中文字幕在线观看1 | 欧美一区二区三区在线 | 91福利视频免费观看 | 欧美福利网址 | 超碰av在线播放 | 国产一区免费视频 | 午夜av免费看 | 免费观看完整版无人区 | 亚洲伊人色 | 国产福利网站 | 91精品一区在线观看 | 在线观看国产区 | 国产99久久久国产精品免费看 | 91成年人在线观看 | 亚洲成a人片在线www | 天天操夜操视频 | 狠狠久久 | 麻豆免费精品视频 | 91传媒在线看 | 日韩在线在线 | 日韩中文字幕免费在线观看 | 91av在线免费视频 | 欧美国产日韩在线视频 | 日韩在线观看三区 | av看片在线观看 | 精品91视频| 国产 在线 高清 精品 | 久久另类小说 | 俺要去色综合狠狠 | 视频一区二区三区视频 | 国产视频精品在线 | 精品日韩视频 | 久久综合久久综合这里只有精品 | 三级a视频 | 视频在线91 | 日韩在线视 | 久久精品视频4 | 欧美日韩国产一区 | 97av视频| 欧美一区在线观看视频 | 中文一区二区三区在线观看 | www.国产在线 | 国产精品12 | 日韩免费观看一区二区 | 97av.com| 中文字幕av在线免费 | 国产成人久久精品 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 99婷婷狠狠成为人免费视频 | 久久综合给合久久狠狠色 | a级免费观看| 91日韩国产 | 成人网在线免费视频 | 91少妇精拍在线播放 | www.久久视频 | 国产精品九九九 | 91精品在线免费 | 国产精品99久久久久久小说 | 日日干狠狠操 | 亚洲四虎影院 | 天天射一射 | 国内精品小视频 | 天天艹日日干 | 久久免费视频观看 | 国产精品久久精品国产 | 久久久精品免费观看 | 黄色免费电影网站 | 国产分类视频 | 99精品欧美一区二区蜜桃免费 | 夜夜看av | 国产精品成人av在线 | 在线 国产一区 | 亚洲精品乱码久久久久久蜜桃不爽 | 国产精品区免费视频 | 久久6精品| 在线视频日韩一区 | 一区二区视频欧美 | 99久久999久久久精玫瑰 | 超碰免费av | 精品一区二区免费视频 | 成人在线免费看视频 | 天天天在线综合网 | 成人三级av | av高清在线 | 亚洲理论片 | 少妇按摩av | 久久开心激情 | 国产成免费视频 | 日本成人中文字幕在线观看 | 91大神免费在线观看 | www.五月天婷婷.com | 国产精品久久久久久久久岛 | 免费在线观看亚洲视频 | 人人讲下载 | 欧洲亚洲激情 | 亚洲天堂精品视频在线观看 | 91九色porny在线 | 亚洲首页 | 99久久夜色精品国产亚洲 | 成人黄色在线电影 | 高清美女视频 | 亚洲 综合 激情 | 99re在线视频观看 | 中文字幕在线播放日韩 | 精品视频久久久 | 狠狠综合网 | 日韩av影视在线 | 日韩欧美视频免费在线观看 | 久久国产网 | 九九欧美 | 一级片色播影院 | 久草在线免费播放 | 免费在线观看污 | 久艹在线播放 | 久久天天躁 | 国产精品精品久久久 | 国产成人精品一区二区在线观看 | 超碰国产在线播放 | 三上悠亚在线免费 | 久草免费在线 | 久久久91精品国产一区二区三区 | 丁香六月婷婷开心婷婷网 | 在线免费视频一区 | 久久综合久色欧美综合狠狠 | 碰超人人 | 在线观看视频在线 | 国产伦理久久精品久久久久_ | 六月丁香在线观看 | 狠狠黄 | 日韩在线观看精品 | 国产免费一区二区三区最新 | 黄色一集片 | 99精品福利 | 亚洲精品影院在线观看 | 久久久五月天 | 韩国一区二区三区视频 | 久久成人毛片 | 国产在线永久 | 国产综合在线观看视频 | 国产传媒中文字幕 | av网站播放 | 亚洲综合成人专区片 | av电影在线免费观看 | 欧美二区在线播放 | 尤物97国产精品久久精品国产 | 日韩在线免费观看视频 | 日韩免费 | 99热这里精品 | 96国产在线 | 色婷婷激情 | 日韩在线观看一区 | 日韩免费看片 | 91网免费看 | 亚洲欧美国产精品久久久久 | 成人午夜久久 | 亚洲视频高清 | 久久久久国产免费免费 | av资源免费在线观看 | 国产精品丝袜 | 黄色片亚洲 | 免费av影视| 国产精品一区二区在线 | 四虎www| 人人插人人费 | 日韩欧美在线一区二区 | 日日草av | 久久国产麻豆 | 久久久久久久久电影 | 日韩免费观看一区二区三区 | 欧美成年网站 | 久久精品欧美一 | av黄色av | 久久精品婷婷 | 国产99久久久久久免费看 | 欧美另类tv | www.色五月| 美女网站在线观看 | 日本丶国产丶欧美色综合 | av免费网页| 伊人久在线 | 欧美日韩精品在线视频 | 亚洲成人av电影 | 国产又粗又硬又爽视频 | 日韩电影在线观看中文字幕 | 九九热精品视频在线观看 | 亚洲视频精品 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产精品欧美日韩在线观看 | 日韩欧美黄色网址 | 色视频网站在线 | 亚洲国产成人久久 | 亚洲国产精品成人av | 91精品国产乱码久久 | www.av在线播放 | 成人av高清 | 国产在线超碰 | 亚洲欧洲av | 欧美精品亚洲精品 | 综合久久网站 | 精品国产91亚洲一区二区三区www | 久久99中文字幕 | 91在线视频免费播放 | 精品 一区 在线 | 99热精品国产 | 成人免费网站在线观看 | 日韩动漫免费观看高清完整版在线观看 | 国产亚洲精品免费 | 日韩a在线看 | 91亚·色| 久久福利在线 | 激情网站免费观看 | 中文资源在线观看 | 国产精品综合久久久久久 | 日韩精品视 | 人人添人人 | 91天天操 | 看国产黄色片 | 欧美老人xxxx18 | 热99久久精品 | 亚洲 欧美 国产 va在线影院 | 五月婷婷操 | 久久久亚洲国产精品麻豆综合天堂 | 国产精品第7页 | 精品一区二区在线观看 | av一区二区三区在线 | 日本护士三级少妇三级999 | 国产精品自在线拍国产 | 欧美一级片在线 | 亚洲精品黄| 国产精品一区二区中文字幕 | 精品高清视频 | 毛片网站在线观看 | 草樱av | 蜜臀av一区二区 | 一区在线免费观看 | 国产主播99 | 4438全国亚洲精品观看视频 | 91在线免费视频 | 在线亚洲天堂网 | 久久亚洲综合色 | 久久久久亚洲精品成人网小说 | 97精品国产97久久久久久免费 | 天天干天天干天天 | 91精品国产99久久久久 | 高清中文字幕 | 国产精品入口麻豆 | 久久这里只有精品久久 | 欧美一区在线看 | 免费精品视频在线观看 | 久久亚洲精品国产亚洲老地址 | 久久手机免费视频 | 麻豆国产网站 | www天天干com | 日韩亚洲精品电影 | 99999精品视频 | 97超碰影视| 亚洲成色777777在线观看影院 | 亚洲 欧美变态 另类 综合 | 国产999视频在线观看 | 女女av在线| 久久久91精品国产一区二区三区 | 日韩免费av片 | 午夜精选视频 | 国产精品美女久久久久久免费 | 色a资源在线 | 黄色大片日本 | 嫩小bbbb摸bbb摸bbb | 在线激情影院一区 | 天天干天天做天天操 | 在线观看一级视频 | 日日干精品 | 久久久久国产精品厨房 | 久草在线 | 欧美日比视频 | 国产成人一区二区三区电影 | 欧美一区二区精美视频 | 免费观看性生交大片3 | 国内精品久久久久影院一蜜桃 | 久久精品视频3 | 97在线观看| 99精品视频免费在线观看 | 久久精品视频免费观看 | 久久不见久久见免费影院 | 久久理论电影 | 四虎在线免费观看视频 | 天天爱天天射天天干天天 | 你操综合 | 美女视频黄频大全免费 | 亚洲国产精品日韩 | 999热视频 | 99久久婷婷国产综合亚洲 | 亚洲一级黄色片 | 国产一区二区三区在线免费观看 | 狠狠色伊人亚洲综合网站色 | 免费www视频 | 亚洲电影院 | 天天射射天天 | 日b视频在线观看网址 | 在线视频 你懂得 | 国产三级精品三级在线观看 | 开心丁香婷婷深爱五月 | 99视频精品全国免费 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 成人一区二区在线观看 | 色综合久久久久久中文网 | 久久久久久毛片精品免费不卡 | 国产不卡网站 | 久久伦理 | mm1313亚洲精品国产 | 九九热精品视频在线观看 | 米奇狠狠狠888 | 午夜精品久久久久99热app | 在线亚洲欧美视频 | 国产精品日韩在线 | 亚洲视频在线看 | 亚洲男男gⅴgay双龙 | 日本中文字幕在线电影 | 丁香激情视频 | 免费不卡中文字幕视频 | 日本韩国精品在线 | 精品在线观看国产 | 中文字幕免费观看全部电影 | 日韩影视在线观看 | 久久狠狠干 | 在线免费观看欧美日韩 | av高清免费| 国产精品美女网站 | 99精品视频一区二区 | 久久久国产一区二区三区四区小说 | 国产视频精品久久 | 国产在线播放观看 | 日韩一片| 久久精品精品电影网 | 国产高清不卡一区二区三区 | 亚洲自拍偷拍色图 | 国产精品毛片一区视频播不卡 | 久久96 | 国产黄色在线看 | 久久综合九色综合网站 | 国内99视频 | www.av免费观看 | 免费在线观看一区 | 91丨精品丨蝌蚪丨白丝jk | 欧美日本啪啪无遮挡网站 | 欧美小视频在线观看 | 国产精品久久久久一区二区三区 | 亚洲视频,欧洲视频 | 成人免费视频网 | 欧美日韩国产精品爽爽 | 天天操夜夜看 | 97超级碰 | 免费精品视频在线 | 色综合久久中文综合久久牛 | 天无日天天操天天干 | 最新国产在线 | 久久99国产精品二区护士 | 日韩av网站在线播放 | 成人黄色免费在线观看 | 91视频在线国产 | 男女视频久久久 | 亚洲资源在线观看 | 99精品免费在线 | 久在线 | 久久久久蜜桃 | 国产精品久久久久免费观看 | 99视频在线 | 久久久受www免费人成 | 片网站 | 久草网在线观看 | 久久精品毛片 | 美女视频黄色免费 | 五月婷婷丁香 | 免费视频在线观看网站 | 欧美日一级片 | 国产一区二区成人 | 91在线免费看片 | 天天射天天干天天操 | 国产视频手机在线 | 在线免费色 | 色婷婷成人网 | 黄色在线免费观看网站 | 久久综合欧美 | 91亚洲国产成人久久精品网站 | av高清网站在线观看 | 国产涩涩网站 | 亚洲人人射 | 日韩av片在线 | 黄色片免费看 | 丁香婷婷成人 | 日韩免费在线视频观看 | 欧美久久99 | 色综合天天爱 | 久久成人国产精品 | 9999在线观看| 四虎永久免费 | 午夜性盈盈 | 欧美综合干 | 菠萝菠萝在线精品视频 | 在线免费黄色av | 超碰在线资源 | 最新的av网站| 日韩剧情 | 超碰人人91| 国产成人三级一区二区在线观看一 | 最新免费中文字幕 | 日韩亚洲国产精品 | 最新日韩视频在线观看 | 麻豆久久精品 | 国产成人免费网站 | 综合天堂av久久久久久久 | 久久国产精品99国产精 | 日韩激情小视频 | 99视频免费看 | 午夜av一区二区三区 | 亚洲视频免费在线观看 | 在线va视频 | 国产精品久久久久永久免费看 | 成人91av| 视频成人永久免费视频 | 日韩av不卡在线观看 | 婷婷伊人综合亚洲综合网 | 久草www| 草莓视频在线观看免费观看 | 国产区在线视频 | 久久久久久电影 | 国产高清绿奴videos | 久久精品电影院 | 亚洲精品视频在线免费播放 | 欧美热久久 | 国产在线a免费观看 | 超碰官网 | 国产小视频在线免费观看视频 | 久久蜜桃av | 亚洲成a人片在线www | 国产色视频一区二区三区qq号 | 97精品在线 | 99在线热播精品免费 | 极品国产91在线网站 | 天天躁日日躁狠狠躁 | 国内精品小视频 | 麻豆国产精品va在线观看不卡 | 欧美一区二区三区免费观看 | av免费电影在线 | 久久久九色精品国产一区二区三区 | 国产欧美精品一区二区三区四区 | 久久超碰97 | 激情五月婷婷网 | 国产精品激情偷乱一区二区∴ | 欧美极品久久 | 人人爽人人爽人人爽 | 国产特级毛片aaaaaa毛片 | 91超碰免费在线 | 精品国产不卡 | 毛片美女网站 | 一区二区欧美日韩 | 国内视频一区二区 | 丁香婷婷激情 | 亚洲精品国产片 | 日韩一级电影网站 | 色在线免费 | 日日操日日干 | 热re99久久精品国产99热 | 一区二区三区在线影院 | 欧美黄色特级片 | 国产精品久久久精品 | 免费观看mv大片高清 | 欧美午夜久久 | 在线www色 | 蜜桃视频日本 | 亚洲成年人在线播放 | 久久成熟| 日韩在线不卡av | 精品国产一区二区三区男人吃奶 | 91自拍91| 97人人人| 亚洲综合网 | 亚洲成人资源 | 国产精品久久久久久久毛片 | 夜夜操天天操 | 91麻豆精品国产91久久久无限制版 | 国产精品久久久久久久久搜平片 | 五月婷婷中文网 | 中文字幕成人在线 | 亚洲最大的av网站 | 波多野结衣视频一区二区三区 | 亚洲精选在线观看 | 欧美日韩国产二区三区 | 麻豆视频免费看 | 黄色91免费观看 | 日韩中字在线 | 日韩精品久久久久久 | 九月婷婷人人澡人人添人人爽 | 日韩电影在线观看一区二区三区 | 久久九九影视 | 欧美二区三区91 | 久久精品视频网 | 成人97视频一区二区 | 麻豆成人在线观看 | 亚洲精品乱码久久久久久按摩 | 亚洲另类在线视频 | www亚洲国产 | 91精品国产91久久久久久三级 | 天天艹天天 | 亚洲精品国产精品国产 | 久久综合久久88 | 久久无码av一区二区三区电影网 | 日韩性片 | v片在线看 | 日韩福利在线观看 | 欧美三级高清 | 国产麻豆剧果冻传媒视频播放量 | 中文字幕91| 婷婷成人在线 | 玖玖爱国产在线 | 欧美激情精品久久久 | 在线v | 亚洲精品91天天久久人人 | 国产免费不卡 | 欧美性生活免费看 | 久久久久久网址 | 久久精品79国产精品 | 国产在线播放观看 | 国产精品激情 | 成人黄色电影视频 | 亚洲精品欧洲精品 | 亚洲精品女 | 久久人人爽爽人人爽人人片av | 爱干视频 | 2022久久国产露脸精品国产 | 日韩精品中文字幕av | 91成人精品观看 | 成人9ⅰ免费影视网站 | 国产精品久久久久久妇 | 成人av在线网 | 超碰公开97| 国产一区二区三区四区在线 | 国产精品毛片网 | 国产精品久久久久一区二区三区 | 中文字幕在线观看第二页 | 国产青青青 | 四虎在线视频 | 精品国产成人在线影院 | 国产视频综合在线 | 五月婷婷开心 | 欧美一区二区三区在线播放 | 久久丁香网 | 久久精品99久久 | 国内久久久| 日韩www在线 | 91高清不卡| 久久99亚洲精品 | 欧美中文字幕第一页 | 高清不卡免费视频 | 51久久成人国产精品麻豆 | 天堂av官网 | 国产伦精品一区二区三区在线 | 国产精品一区二区三区在线看 | 91香蕉国产在线观看软件 | 精品视频亚洲 | 欧美精品视 | 日韩中字在线观看 | 国产精品v欧美精品v日韩 | 国产精品久久麻豆 | 精品美女在线视频 | 狠狠久久婷婷 | 国产在线免费av | 在线一区观看 | 97超碰福利久久精品 | 久草视频资源 | 久久99热久久99精品 | 美女福利视频 | 亚洲dvd| 蜜桃视频在线视频 | 免费黄色看片 | 91视频网址入口 | 亚洲美女视频在线 | 中文字幕资源在线观看 | 久久久久综合 | 91在线中文 | 国产一级二级在线播放 | 国产精品女视频 | 美女黄视频免费看 | 99r在线精品| 精品福利av| 精品国产乱码久久 | 成年人国产视频 | 国产精品xxxx18a99 | 九月婷婷色 | 久久人人爽人人爽人人片av免费 | 国产a高清 | 91资源在线免费观看 | 久久久福利视频 | 国产免费又爽又刺激在线观看 | 四虎伊人 | 日本中出在线观看 | 精品久久99 | 欧美色一色 | 99精品国产99久久久久久97 | 久久久www成人免费毛片麻豆 | 免费黄色av片 | 午夜在线免费观看 | 中文字幕精品一区二区三区电影 | 视频三区 | 日韩视频免费看 | 成片人卡1卡2卡3手机免费看 | 美女一区网站 | 韩国一区二区三区在线观看 | 日韩在线观看第一页 | 韩国精品福利一区二区三区 | 黄色精品久久 | 99精品国自产在线 | 在线观看免费一级片 | 国产精品网址在线观看 | 成人免费共享视频 | 国产成人三级在线播放 | 色婷婷激情| 91视频免费看网站 | 国产成人精品一区二区三区 | 久久免费视频1 | 久久av观看| 日日夜夜免费精品视频 | 麻豆94tv免费版 | 日韩av电影一区 | 久久麻豆视频 | 激情在线网址 | 久久久免费看片 | 粉嫩av一区二区三区四区五区 | 97成人在线观看 | 伊人天堂av | 色综合久久66| 久爱精品在线 | av福利免费 | 精品一区二区三区久久 | 亚洲成av人片在线观看www | 婷婷在线播放 | 欧美日韩国产区 | 亚洲91视频 | 日韩免费成人 | 天天综合导航 | 一区中文字幕 | 亚洲精品短视频 | 狠狠插天天干 | 狠日日| 日本久久成人中文字幕电影 | 99视频免费在线观看 | 久久午夜精品视频 | 一区二区精| av电影av在线 | 久久成人18免费网站 | 日韩,精品电影 | 视频一区二区在线观看 | 午夜精品一区二区三区在线 | www.五月天 | 欧美91在线 | 91视频com| 五月婷婷六月丁香 | 中文字幕一区三区 | 久久99国产精品二区护士 | 美女福利视频网 | 久久有精品 | 麻豆视频免费在线观看 | 91福利视频免费观看 | 手机看片1042 | 国产婷婷久久 | 亚洲毛片一区二区三区 | 黄色aaa级片| 久久婷婷精品视频 | 色综合久久综合网 | 久久精品国产免费看久久精品 | 日韩91av| 91成人免费 | 成年人在线免费看视频 | 韩日精品在线 | 亚洲无吗av| 97色免费视频 | 欧美精品久久久久久久亚洲调教 | 国产高清视频免费 | 中文字幕在线看视频国产中文版 | 中文字幕免费高清在线观看 | 十八岁以下禁止观看的1000个网站 | 韩国在线一区二区 | 九九视频在线播放 | 欧美另类性 | 深爱激情五月婷婷 | 亚洲一级电影在线观看 | 久草资源在线 | 在线观看视频中文字幕 | 丝袜+亚洲+另类+欧美+变态 | 亚洲国产精品传媒在线观看 | 午夜久久久久久久久 | 国产精品久久久久久久久岛 | 在线观看完整版免费 | 国产精品成人免费一区久久羞羞 | 美国三级黄色大片 | 日日爽视频 | 黄色a大片 | 丰满少妇久久久 | 亚洲在线a| 色播激情五月 | 国内精自线一二区永久 | 国产精品原创av片国产免费 | 97色涩 | 日韩欧美在线高清 | 久草久草在线观看 | 国产一区福利在线 |