亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? odbc-c5.htm

?? odbc教程真的很不錯
?? HTM
?? 第 1 頁 / 共 2 頁
字號:
pop lvi.lParam
invoke SendMessage,hList, LVM_INSERTITEM,0, addr lvi
mov lvi.imask,LVIF_TEXT
inc lvi.iSubItem
mov lvi.pszText,offset TheSurname
invoke SendMessage,hList,LVM_SETITEM, 0,addr lvi
inc lvi.iSubItem
mov lvi.pszText,offset TelNo
invoke SendMessage,hList,LVM_SETITEM, 0,addr lvi
inc row
.else
.break
.endif
.endw
ret
FillData endp

RunQuery proc hDlg:DWORD
invoke ShowWindow, hList, SW_SHOW
invoke SendMessage, hList, LVM_DELETEALLITEMS,0,0
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke SQLExecDirect, hStmt, addr SQLStatement, sizeof SQLStatement
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke FillData
.else
invoke ShowWindow, hList, SW_HIDE
invoke MessageBox,hDlg,addr ExecuteFail, addr AppName, MB_OK+MB_ICONERROR
.endif
invoke SQLCloseCursor, hStmt
invoke SQLFreeHandle, SQL_HANDLE_STMT, hStmt
.else
invoke ShowWindow, hList, SW_HIDE
invoke MessageBox,hDlg,addr AllocStmtFail, addr AppName, MB_OK+MB_ICONERROR
.endif
ret
RunQuery endp
QueryProc proc hDlg:DWORD, uMsg:DWORD, wParam:DWORD, lParam:DWORD 
.if uMsg==WM_CLOSE
invoke SQLFreeHandle, SQL_HANDLE_STMT, hStmt
invoke EndDialog, hDlg,0
.elseif uMsg==WM_INITDIALOG
invoke ShowWindow, hList, SW_SHOW
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke lstrcpy, addr Conn, addr SQLStatement
invoke lstrcat, addr Conn, addr WhereStatement
invoke SQLBindParameter,hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR,25,0, addr SearchName,25,addr StrLen
invoke SQLPrepare, hStmt, addr Conn, sizeof Conn
.else
invoke ShowWindow, hList, SW_HIDE
invoke MessageBox,hDlg,addr AllocStmtFail, addr AppName, MB_OK+MB_ICONERROR
invoke EndDialog, hDlg,0
.endif 
.elseif uMsg==WM_COMMAND
mov eax, wParam
shr eax,16
.if ax==BN_CLICKED
mov eax,wParam
.if ax==IDC_OK
invoke GetDlgItemText, hDlg, IDC_NAME, addr SearchName, 25
.if ax==0
invoke MessageBox, hDlg,addr NoData, addr AppName, MB_OK+MB_ICONERROR
invoke GetDlgItem, hDlg, IDC_NAME
invoke SetFocus, eax
.else
invoke lstrlen,addr SearchName
mov StrLen,eax
invoke SendMessage, hList, LVM_DELETEALLITEMS,0,0
invoke SQLExecute, hStmt
invoke FillData
invoke SQLCloseCursor, hStmt
.endif
.else
invoke SQLFreeHandle, SQL_HANDLE_STMT, hStmt
invoke EndDialog, hDlg,0
.endif
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
QueryProc endp
end start</b></font>
</pre>
<h4><font face="Tahoma" color="#FFFFCC">分析</font></h4>
<pre><b><font face="Tahoma" color="#33CCCC">start:
invoke GetModuleHandle, NULL
mov hInstance,eax
call GetProgramPath</font></b></pre>
<p><font face="Tahoma" size="-1">當程序開始時,將獲得實例句柄并獲得所在路徑.默認情況下數據庫 test.mdb應與程序處于同一文件夾. </font><br>
</p>
<pre><font face="Tahoma"><b><font color="#33CCCC">GetProgramPath proc
invoke GetModuleFileName, NULL,addr ProgPath,sizeof ProgPath
std
mov edi,offset ProgPath
add edi,sizeof ProgPath-1
mov al,"\"
mov ecx,sizeof ProgPath
repne scasb
cld
mov byte ptr [edi+2],0
ret
GetProgramPath endp</font></b></font> </pre>
<p><font face="Tahoma" size="-1">GetProgramPath調用GetModuleFileName來獲得程序的全路徑名.接著在路徑中查找最后一個"\"符",通過將文件名的第一個字符置為0獲得(truncate)" 文件名. 因此我們在ProgPath中獲得了程序的路徑名.</font></p>
<p><font face="Tahoma" size="-1">然后程序將用<font color="#FFFFCC"><b>DialogBoxParam</b></font>顯示主對話框.當主對話框第一次被載入時,它將獲得菜單句柄和listview control句柄.接下來在listview control中插入三列(因為我們已經知道結果集將包含三列.因為是我們先建的表.)</font></p>
<p><font face="Tahoma" size="-1">現在,它就等待用戶的動作了.如果用戶在菜單中選擇"connect",將會調用<font color="#FFFFCC"><b>ODBCConnect</b></font>函數.</font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC">ODBCConnect proc hDlg:DWORD
invoke SQLAllocHandle, SQL_HANDLE_ENV, SQL_NULL_HANDLE, addr hEnv
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">它做的第一件事是調用<font color="#FFFFCC"><b>SQLAllocHandle</b></font>來分配一個環境句柄.</font><b><font color="#33CCCC"><br>
</font></b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke SQLSetEnvAttr, hEnv,SQL_ATTR_ODBC_VERSION, SQL_OV_ODBC3,0
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">獲得環境句柄后,程序調用<font color="#FFFFCC"><b>SQLSetEnvAttr</b></font>來表示將要使用ODBC 3.x的語法.</font><b><font color="#33CCCC"><br>
</font></b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke SQLAllocHandle, SQL_HANDLE_DBC, hEnv, addr hConn
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">如果一切順利,程序將通過調用<font color="#FFFFCC"><b>SQLAllocHandle</b></font>獲得連接句柄來實現連接.</font><b><font color="#33CCCC"><br>
</font></b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke lstrcpy,addr ConnectString,addr strConnect
invoke lstrcat,addr ConnectString, addr ProgPath
invoke lstrcat, addr ConnectString,addr DBName</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">接著填寫連接字符串.完整的連接字符串將被用在<b><font color="#33CCCC">ConnectionString</font></b><br>
</font></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke SQLDriverConnect, hConn, hDlg, addr ConnectString, sizeof ConnectString, addr Conn, sizeof Conn,addr StrLen, SQL_DRIVER_COMPLETE
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke SwitchMenuState,TRUE
invoke MessageBox,hDlg, addr Conn,addr ConnectCaption,MB_OK+MB_ICONINFORMATION</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">當連接字符串完成,程序將調用<font color="#FFFFCC"><b>SQLDriverConnect</b></font>來通過MS Access ODBC 驅動程序連接test.mdb數據庫.如果文件test.mdb不存在,ODBC driver將提示用戶輸入該文件的位置,因為我們已經設定了<font color="#CCFFCC"><b>SQL_DRIVER_COMPLETE</b></font>標志.當<font color="#CCFFCC"><b>SQLDriverConnect</b></font>成功返回時, <font color="#CCFFCC"><b>Conn</b></font> 被填入由ODBC驅動程序創建的完整連接字符串.我們通過一個message box來將其顯示給用戶. <font color="#CCFFCC"><b>SwitchMenuState</b></font>是一個單純切換菜單選項可用的函數.</font></font></p>
<p><font face="Tahoma" size="-1">現在,到數據庫的連接已經建立并被打開,并一直保持打開狀態直到用戶選擇關閉. </font></p>
<p><font face="Tahoma" size="-1">當用戶選擇了"View All Records"命令, 
對話框過程將調用<font face="Tahoma" size="-1"><b><font color="#33CCCC">RunQuery.</font></b>函數 
<br>
</font></font></p><font face="Tahoma" size="-1">
<pre><font face="Tahoma" size="+0"><b>
<font color="#33CCCC">RunQuery proc hDlg:DWORD
invoke ShowWindow, hList, SW_SHOW
invoke SendMessage, hList, LVM_DELETEALLITEMS,0,0</font></b></font></pre>
<p><font face="Tahoma" size="-1">由于listview control在創建時是不可見的,現在我們把它顯示出來.還有 要把其中的所有元素(如果有的話)刪掉.</font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC" size="+0"> invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">接下來,程序將獲得一個語句句柄.</font></font><br>
</p></font>
<pre><font face="Tahoma" size="+0"><b><font color="#33CCCC"> invoke SQLExecDirect, hStmt, addr SQLStatement, sizeof SQLStatement
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">通過<font color="#FFFFCC"> <b>SQLExecDirect</b></font>執行已準備好的SQL語句.我這里選擇<font color="#FFFFCC"><b>SQLExecDirect</b></font> 
的原因是只須執行一次.</font><b><font color="#33CCCC"><br>
</font></b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke FillData</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">執行SQL語句后,將返回一個結果集.我們使用<font color="#FFFFCC"> <b>FillData</b></font>函數來從結果集中解出數據并將其放入listview control中.</font></font></p>
<pre><font face="Tahoma"><font face="Tahoma"><b><font color="#33CCCC">FillData proc
LOCAL lvi:LV_ITEM
LOCAL row:DWORD

invoke SQLBindCol, hStmt,1,SQL_C_CHAR, addr TheName, sizeof TheName,addr NameLength
invoke SQLBindCol, hStmt,2,SQL_C_CHAR, addr TheSurname, sizeof TheSurname,addr SurnameLength
invoke SQLBindCol, hStmt,3,SQL_C_CHAR, addr TelNo, sizeof TelNo,addr TelNoLength</font></b></font></font></pre>
<p><font face="Tahoma"><font face="Tahoma" size="-1">現在,結果集被返回.我們要綁定結果集的所有三列到我們提供的緩沖區中.這是調用<font color="#FFFFCC"><b>SQLBindCol</b></font>來實現的.注意我們要對每一列分別調用.并且我們并不需要綁定所有的列:只要綁定要獲得數據的列就行了. </font><font face="Tahoma"><b><br>
</b></font></font></p>
<pre><font face="Tahoma"><font face="Tahoma"><b><font color="#33CCCC"> mov row,0
.while TRUE
mov byte ptr ds:[TheName],0
mov byte ptr ds:[TheSurname],0
mov byte ptr ds:[TelNo],0</font></b></font></font></pre>
<p><font face="Tahoma"><font face="Tahoma" size="-1">當列中沒有數據時,我們初始化緩沖區為NULLs.更好的方法是用<font color="#FFFFCC"><b>SQLBindCol</b></font>指定的變量中數據的長度.在我們的例子中,我們可以檢查<font color="#CCFFCC"><b>NameLength</b></font>, 
<font color="#CCFFCC"> <b>SurnameLength</b></font>和<font color="#CCFFCC"><b>TelNoLength</b></font>中的值的確切長度.</font><font face="Tahoma"><b> 
</b></font></font></p>
<pre><font face="Tahoma"><font face="Tahoma"><b><font color="#33CCCC"> invoke SQLFetch, hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
mov lvi.imask,LVIF_TEXT+LVIF_PARAM
push row
pop lvi.iItem 
mov lvi.iSubItem,0
mov lvi.pszText, offset TheName
push row
pop lvi.lParam
invoke SendMessage,hList, LVM_INSERTITEM,0, addr lvi</font></b></font><font size="-1" color="#33CCCC"> </font><font color="#33CCCC"><b> </b></font></font></pre>
<p><font face="Tahoma"><font size="-1">其它都很簡單了.調用<font color="#FFFFCC"><b>SQLFetch 
</b></font>來獲得結果集的一行,并將其存入listview control的緩沖區中.當沒有更多的行供檢索時(已到達文件尾), <font color="#FFFFCC"><b>SQLFetch</b></font>返回<font color="#CCFFCC"><b>SQL_NO_DATA</b></font>并且程序跳出循環.</font></font><font face="Tahoma"><b><font color="#33CCCC"> 
</font></b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke SQLCloseCursor, hStmt
invoke SQLFreeHandle, SQL_HANDLE_STMT, hStmt</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">當完成對結果集的操作時,調用<font color="#FFFFCC"><b>SQLCloseCursor</b></font>關閉結果集并調用<font color="#FFFFCC"><b>SQLFreeHandle</b></font>釋放語句句柄.</font><font face="Tahoma" size="-1"><font color="#33CCCC"><br>
</font></font><font color="#33CCCC" face="Tahoma" size="-1"><br>
</font><font face="Tahoma" size="-1">當用戶選擇"Query"命令,程序顯示另一個對話框供用戶輸入要查詢的名字.</font></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> .elseif uMsg==WM_INITDIALOG
invoke ShowWindow, hList, SW_SHOW
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke lstrcpy, addr Conn, addr SQLStatement
invoke lstrcat, addr Conn, addr WhereStatement
invoke SQLBindParameter,hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR,25,0, addr SearchName,25,addr StrLen
invoke SQLPrepare, hStmt, addr Conn, sizeof Conn</font></b></font></pre>
<p><font face="Tahoma" size="-1">對話框做的第一件事是顯示listview control.接下來分配一個語句句柄以創建SQL語句.這個SQL語句有一個"where"子句及一個參數標志符"?". 
完整的SQL語句是:</font></p>
<blockquote> 
<p><font face="Tahoma" color="#ffffcc" size="-1"><b>select * from main where name=?</b></font></p>
</blockquote>
<p><font size="-1" face="Tahoma">接著程序調用<font color="#FFFFCC"><b>SQLBindParameter</b></font> 
來建立參數標志符與緩沖區<font color="#CCFFCC"><b>SearchName</b></font>的連接,這樣當SQL語句被執行時,ODBC驅動程序就可從<font color="#CCFFCC"><b>SearchName</b></font>中獲得需要的字符串.接下來,程序調用<font color="#FFFFCC"><b>SQLPrepare</b></font>來編譯SQL語句. 
這樣我們只要準備/編譯SQL語句一次就可多次使用.因為SQL語句已被編譯過,接下來的執行過程會快一些.</font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> .if ax==IDC_OK
invoke GetDlgItemText, hDlg, IDC_NAME, addr SearchName, 25
.if ax==0
invoke MessageBox, hDlg,addr NoData, addr AppName, MB_OK+MB_ICONERROR
invoke GetDlgItem, hDlg, IDC_NAME
invoke SetFocus, eax
.else</font></b></font></pre>
<p><font face="Tahoma"><font size="-1">當用戶在編輯框(edit control)中填入了一些名字并按下回車鍵, 程序將獲得編輯框中的文本并檢查是否是空字符串.如果是,則顯示一個message box并將鍵盤焦點設在編輯框上,提示用戶輸入名字.<br>
</font><b> </b></font></p>
<pre><font face="Tahoma"><b><font color="#33CCCC"> invoke lstrlen,addr SearchName
mov StrLen,eax
invoke SendMessage, hList, LVM_DELETEALLITEMS,0,0
invoke SQLExecute, hStmt
invoke FillData
invoke SQLCloseCursor, hStmt</font></b></font></pre>
<p><font face="Tahoma" size="-1">如果編輯框中已有字符串,程序會獲得它的長度并將其放入<font color="#CCFFCC"><b>StrLen</b></font>中供ODBC驅動程序使用(記住我們已將StrLen的地址傳送給了<font color="#FFFFCC"><b>SQLBindParameter</b></font>). 
接下來程序使用獲得的語句句柄調用<font color="#FFFFCC"><b>SQLExecute</b></font>執行已準備好的SQL語句.當<font color="#FFFFCC"><b> 
SQLExecute</b></font>返回時,程序調用FillData在listview control顯示結果.因為我們不會再用到結果集,調用<font color="#FFFFCC"><b>SQLCloseCursor</b></font>來關閉它.</font></p>
<p align="center"><b><font face="Tahoma" size="-1"><a href="odbc-c4.htm">[<<]</a> 
  <a href="odbc-index.html">[index]</a> <a href="odbc-index.html">[>>]</a></font></b></p>
<hr>
<p align="center"><font face="Tahoma" size="-1"><b>[<a href="http://win32asm.cjb.net">Iczelion's 
Win32 Assembly Homepage</a>]</b></font></p>
<p align="center"><b><font face="Tahoma" size="-1">[The Chinese Portion Is Translated By <a href="mailto:hw1979@263.net">Orochi</a> ,2000.8.24]</font></b></p>
<p> </p>
<p> </p>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区在线影院| 91精品国产福利在线观看| 欧美日本一区二区在线观看| 国产精品久久久久一区二区三区| 韩国女主播一区| 欧美高清在线视频| 不卡的电影网站| 国产精品国产三级国产普通话99 | 欧美videossexotv100| 婷婷成人综合网| 欧美一级日韩不卡播放免费| 在线观看网站黄不卡| 午夜精品爽啪视频| 日韩一区精品视频| 国产精品视频免费看| 欧美三级在线视频| 丰满岳乱妇一区二区三区| 一区二区三区精品| 精品国产在天天线2019| 91丨九色porny丨蝌蚪| 日日夜夜精品视频免费| 喷水一区二区三区| 亚洲欧美日韩国产另类专区| 欧美二区三区91| av动漫一区二区| 国产一区二区三区蝌蚪| 丰满少妇在线播放bd日韩电影| 91日韩一区二区三区| 欧美精品三级在线观看| 欧美r级在线观看| 亚洲欧洲精品天堂一级| 日韩欧美一二三四区| 欧美亚洲综合一区| 色综合久久中文综合久久97 | 免费一级片91| 国产一区二区福利视频| 99精品久久99久久久久| 久久国产精品第一页| 亚洲国产精品自拍| 中文字幕五月欧美| 奇米777欧美一区二区| 99国产精品久久| 日韩欧美在线网站| 91精品一区二区三区在线观看| av在线不卡观看免费观看| 欧美男人的天堂一二区| 国产精品视频第一区| 午夜欧美电影在线观看| 成人永久看片免费视频天堂| 国产精品自拍网站| 国产久卡久卡久卡久卡视频精品| 91久久奴性调教| 欧美在线影院一区二区| 精品国产百合女同互慰| 亚洲国产精品久久人人爱蜜臀| 国产精品一区二区男女羞羞无遮挡| 日本高清无吗v一区| 欧美激情中文字幕一区二区| 青青草原综合久久大伊人精品优势| 国产成人av一区| av电影在线观看一区| 久久先锋资源网| 久久久午夜精品理论片中文字幕| 欧美成人三级在线| 午夜在线成人av| 视频一区中文字幕| 在线视频综合导航| 亚洲色图一区二区三区| 亚洲成av人影院| 国产一区二区女| 日韩免费一区二区| 日韩高清不卡在线| 蜜桃在线一区二区三区| 黄页视频在线91| 日韩欧美电影一区| 视频一区免费在线观看| 777欧美精品| 日韩国产欧美三级| 91精品在线一区二区| 蜜桃久久久久久| 欧美r级电影在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 日韩欧美电影一区| 国产很黄免费观看久久| 久久精品视频一区| 亚洲一区中文在线| 国产呦精品一区二区三区网站| 91精品国产综合久久久久| 琪琪一区二区三区| 精品国精品国产| 成人毛片视频在线观看| 成人欧美一区二区三区| 91啪亚洲精品| 亚洲成人av福利| 69久久99精品久久久久婷婷| 琪琪一区二区三区| 日本一区二区三区四区| 亚洲国产视频一区二区| 欧美日韩一区二区在线观看 | 亚洲精品在线免费播放| 国产91丝袜在线播放0| 亚洲欧美欧美一区二区三区| 欧美最新大片在线看| 蜜臀va亚洲va欧美va天堂| 国产片一区二区| 日本电影欧美片| 狠狠色2019综合网| 亚洲视频一区二区在线| 9191久久久久久久久久久| 国产麻豆精品久久一二三| 中文字幕中文字幕一区| 日韩视频在线永久播放| www.亚洲在线| 日韩av二区在线播放| 中文字幕在线不卡视频| 制服丝袜中文字幕一区| 懂色av一区二区在线播放| 亚洲国产精品一区二区久久恐怖片 | 欧美国产成人精品| 欧美日免费三级在线| 国内精品写真在线观看| 亚洲一级在线观看| 久久一二三国产| 欧美最猛性xxxxx直播| 国产精品123区| 夜夜精品视频一区二区| 久久久夜色精品亚洲| 欧美日韩aaa| 99久久久久免费精品国产| 美女在线视频一区| 亚洲美女屁股眼交3| 久久久蜜臀国产一区二区| 欧美日产国产精品| 99免费精品视频| 国产成人啪免费观看软件| 日韩精品1区2区3区| 一区二区三区不卡视频在线观看| 日韩一区二区三区免费观看| 在线一区二区三区| 成人国产精品免费网站| 国产一区二区三区精品欧美日韩一区二区三区 | 91啪在线观看| 懂色av一区二区三区蜜臀| 麻豆成人久久精品二区三区小说| 国产精品另类一区| 久久影音资源网| 欧美白人最猛性xxxxx69交| 欧美理论片在线| 欧美三级蜜桃2在线观看| 97久久久精品综合88久久| 国产精品1区2区| 国产一区二区三区视频在线播放| 免费在线欧美视频| 免费在线成人网| 精品影视av免费| 亚洲精品一区二区三区蜜桃下载| 欧美丝袜自拍制服另类| 色婷婷综合久久久久中文| 91碰在线视频| 在线看日本不卡| 欧美天堂一区二区三区| 色噜噜狠狠成人网p站| 在线亚洲人成电影网站色www| 色婷婷精品大在线视频 | 亚洲精品视频免费看| 欧美日韩1234| 欧美日韩一区小说| 欧美日本乱大交xxxxx| 欧美精品一级二级三级| 91精品免费在线观看| 欧美一区二区视频在线观看2022| 日韩一区二区免费电影| 欧美成人一区二区三区片免费| 久久久青草青青国产亚洲免观| 国产精品无人区| 亚洲欧美一区二区视频| 亚洲与欧洲av电影| 日韩和欧美的一区| 国产一区美女在线| 99久久久国产精品| 欧美日韩在线观看一区二区| 在线不卡a资源高清| 久久欧美一区二区| 亚洲同性gay激情无套| 图片区日韩欧美亚洲| 国产精品资源网站| 91香蕉视频污| 欧美一级日韩不卡播放免费| 亚洲国产精品成人综合| 亚洲成年人网站在线观看| 精品在线视频一区| 91麻豆国产精品久久| 日韩精品在线网站| 亚洲美女在线一区| 久久精品99国产国产精| 成人免费视频视频| 欧美一级高清大全免费观看| 国产精品精品国产色婷婷| 六月婷婷色综合| 91成人国产精品|