亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > PostgreSQL > 正文

PostgreSQL7.0手冊-接口-57. ODBC 接口

2019-09-08 23:34:10
字體:
來源:轉載
供稿:網友
第五十七章. ODBC 接口
內容 
背景 
Windows 應用 
Unix 安裝 
配置文件 
ApplixWare 
注意:背景信息最初作者是 Tim Goeke
ODBC?。ㄩ_放數據庫聯接 Open Database Connectivity)是一套 API,用這套 API 允許你書寫可以應用在各種 RDBMS 服務器上互操作的應用.ODBC 提供一個與產品無關的在前端應用和后端數據庫服務器之間的接口,允許用戶可以書寫可以運行于來自不同廠商的數據庫服務器上的應用. 
背景
ODBCAPI把后端匹配為一個 ODBC-兼容的數據源.這些(數據源)可以是從文本文件到 Oracle 或 PostgresRDBMS 的任何東西. 
后端的訪問來自 ODBC 驅動,或者廠商提供的允許數據訪問的驅動.psqlODBC 就是這種驅動,同時還有其他驅動可以得到,例如 OpenLink ODBC 驅動. 

一旦你寫了一個 ODBC 應用,你 應該 能夠與 任何 后端數據庫聯接,不管數據庫廠商是誰,只要數據庫結構是一致的. 

例如.你可以擁有 MS SQL Server 和 Postgres 服務器,它們擁有完全一樣的數據.使用 ODBC,你的 Windows 應用將做完全一樣的調用并且后端數據源將(對 Windows 應用而言)看起來一樣. 
 


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Windows 應用
在現實世界里,驅動的差異和 ODBC 支持的級別降低了 ODBC 的潛能: 
Access,Delphi和 Visual Basic 都直接支持 ODBC.
在 C++ 里,象 Visual C++,你可以使用 C++ ODBCAPI.
在 Visual C++ 里,你可以使用 CRecordSet 類,它把 ODBCAPI 集封裝在 MFC 4.2 類里面.這是在 Windows NT 里開發 Windows C++ 應用的最簡單的途徑.

書寫應用
“如果我寫了一個基于 Postgres 的應用,我能否寫成用 ODBC 對 Postgres 服務器調用的形式,或者是有其他的數據庫程序象 MS SQL Server 或 Access 需要訪問數據時怎么辦?” 
ODBCAPI 就是解決方法.對于 Visual C++ 編碼,你可以在 Microsoft 的站點或者你的 VC++ 文擋里面找到更多信息. 

Visual Basic 和其他 RAD 工具擁有使用 ODBC 直接訪問數據的 Recordset 對象.使用數據敏感的( data-aware )控制,你可以迅速與 ODBC 后端數據庫建立聯接(非?!⊙杆伲?

用 MS Access 進行試驗將幫助你把這些東西弄明白.試著用用 File->Get External Data?。ㄎ募?>獲取外部數據).

小技巧:你必須先設置一個 DSN.

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

Unix 安裝
ApplixWare 有一個 ODBC 數據庫接口至少能夠支持一些平臺.ApplixWare v4.4.2 已經在 Linux 下證明可以與使用包含在 Postgres 里的psqlODBC 驅動的 Postgres v7.0 共同使用. 
制作驅動
談到 psqlODBC 驅動程序(或任何ODBC 驅動程序)的第一件事情就是在使用 ODBC 驅動程序的系統里必須存在一個驅動程序管理器.有一個叫 iodbc 的用于 Unix 的自由軟件 ODBC 驅動程序,我們可以在網上的許多地方獲得這個東西,包括 AS200。(譯注:好象要換個地方 www.iodbc.org ).安裝 iodbc 的指導超出本文擋的范圍,但可以在壓縮的iodbc .shar 文件里面找到一個 README ,說明了如何安裝和運行. 
我們已經說過,你找到的任何用于你的平臺的驅動管理器應該支持psqlODBC 驅動或者任何 ODBC 驅動. 

用于 psqlODBC 的 Unix 配置文件最近已經大大修改了,以便于很容易地在支持的平臺上制作(驅動)同時也便于今后對其他 Unix 平臺的支持.該驅動的新的配置和制作文件應該已經把在支持的平臺上制作驅動變為一個簡單的過程.目前這些(平臺)包括 Linux 和FreeBSD,但我們希望其他用戶可以奉獻出必要的信息以便迅速擴展這個驅動可以制作的平臺的數量. 

實際上只有兩個獨立的制作驅動的方法?。Q于你是如何獲得驅動的,這些區別最終只是體現在你在那里和如何運行 configure 和make.驅動程序可以當作一種獨立的,只有客戶端的安裝,或者可以作為主 Postgres 發布的一部分.如果你的 ODBC 客戶端應用運行在多種異種平臺上,獨立安裝的方式比較方便.當目標客戶端和服務器一樣或者客戶端和服務器有著相似的配置時,集成的安裝模式比較方便. 

詳細說來,如果你把 psqlODBC 驅動做為 Postgres 版本的一部分制作(從現在開始我們把這個當作一次 "集成" 制作)那么你將在 Postgres 版本的頂級目錄和 Postgres 其他的庫文件一起配置和安裝 ODBC 驅動程序.如果你的驅動是一個獨立的包,那么你將在你解開驅動源程序的位置配置和制作驅動. 
  

集成安裝 
這個安裝過程適用于一次集成安裝. 

為 src/configure 聲明 --with-odbc 命令行參數: 
% ./configure --with-odbc
% make
重新制作 Postgres 版本: 
% make install
安裝放在 PGROOT/contrib/odbc/odbc.sql 里面的 ODBC 目錄擴展: 
% psql -e template1 < $PGROOT/contrib/odbc/odbc.sql
這里聲明 template1 作為目標數據庫將保證所有后繼的數據庫都有這些相同的定義.
一旦配置完,ODBC 驅動將在為 Postgres 系統其他部件定義的區域里制作和安裝.安裝范圍的 ODBC 配置文件將被放置在 Postgres 目標樹(POSTGRESDIR)的頂層目錄.你可以用 make 命令行替換這個位置 
% make ODBCINST=filename install
v6.4前的集成安裝 
如果你安裝有早于 v6.4 的 Postgres,而且你擁有最初的源代碼樹,并且你想使用最新的版本的 ODBC 驅動,那么你可能會希望下面這樣的安裝. 

拷貝輸出的 tar 文件到你的目標系統,并且在一個干凈的目錄里解開包. 
在包含源代碼的目錄里面,鍵入: 

% ./configure
% make
% make POSTGRESDIR=PostgresTopDir install
如果你想把安裝組件放到不同的目錄樹中,那么你可以顯式地聲明各種不同的目的地: 
% make BINDIR=bindir  LIBDIR=libdir  HEADERDIR=headerdir ODBCINST=instfile install
獨立的安裝 
一次獨立的安裝不是集成在一個正常的 Postgres 版本的制作過程中的.這種方法很適合為有多種不同平臺的有本地安裝的 Postgres 源代碼樹的客戶端上制作 ODBC 驅動. 

獨立安裝的庫和頭文件的缺省路徑分別是 /usr/local/lib 和 /usr/local/include/iodbc。另外還安裝一個系統范圍的配置文件到 /share/odbcinst.ini (如果 /share 存在)或 /etc/odbcinst.ini?。ㄈ绻?share 不存在). 

注意:把文件安裝到 /share 或者 /etc 需要 root 權限.Postgres 的大多數安裝步驟不需要這個條件,而且你可以選另一個 Postgres 超級用戶可寫的目標路徑替換之.
獨立安裝的版本可以在 Postgres 發布版本里面制作或者可以從 Insight Distributors,目前的非 Unix 源碼維護者獲取源代碼. 
把壓縮的 tar 文件拷貝到一個空目錄.如果用的是 zip 包,用下面命令解包 

% unzip -a packagename
-a 選項可以去掉 DOS 源文件里的 CR/LF 對. 
如果你拿到的是 gzipped tar 包,那么運行 

% tar -xzf packagename
從主 Postgres 源文件樹里創建一個完整的獨立安裝 tar 文件:
配置主 Postgres 版本. 
創建 tar 文件: 

% cd interfaces/odbc
% make standalone
拷貝輸出的 tar 文件到你的目標系統.如果使用 ftp,應該使用二進制模式傳輸. 
把 tar 文件解開到一個干凈的目錄. 

配置獨立安裝: 

% ./configure
配置可以帶有選項進行: 
% ./configure --prefix=rootdir --with-odbc=inidir
這里 --prefix 把庫和頭文件安裝到目錄 rootdir/lib 和 rootdir/include/iodbc 下,并且 --with-odbc 把 odbcinst.ini 安裝到指定的目錄. 
注意這些選項同樣可以用于集成安裝,但是要注意用于集成安裝時--prefix 將同樣應用于你的 Postgres 安裝的其他部分.--with-odbc 只適用于配置文件 odbcinst.ini。 

編譯并鏈接源代碼: 

% make ODBCINST=instdir
你同樣可以在 'make' 命令行上覆蓋缺省安裝路徑.這些只適用于庫和頭文件的安裝路徑.因為驅動需要知道 odbcinst.ini 文件的位置,試圖覆蓋聲明該文件的安裝路徑將可能讓你很頭疼.最安全的方法是簡單的允許驅動把 odbcinst.ini 文件裝到缺省路徑或者你在 './configure' 命令行用 --with-odbc 聲明的路徑. 
安裝源代碼: 

% make POSTGRESDIR=targettree install
要分別覆蓋庫和頭文件的安裝路徑,你需要在 make install 命令行上傳遞正確的安裝變量.這些變量是 LIBDIR,HEADERDIR 和 ODBCINST.在 make 命令行上覆蓋 POSTGRESDIR 將導致 LIBDIR 和 HEADERDIR 放在你聲明的新目錄里的頂層.ODBCINST 獨立于 POSTGRESDIR?!?
下面是你如何顯式地聲明目標變量的例子: 

% make BINDIR=bindir LIBDIR=libdir HEADERDIR=headerdir install
例如,鍵入 
% make POSTGRESDIR=/opt/psqlodbc install
(在你運行過 ./configure 和 make 后)將導致庫和頭文件被分別安裝到目錄 /opt/psqlodbc/lib 和/opt/psqlodbc/include/iodbc . 
命令 

% make POSTGRESDIR=/opt/psqlodbc HEADERDIR=/usr/local install
應該導致庫被安裝到 /opt/psqlodbc/lib 而頭文件安裝到 /usr/local/include/iodbc.如果這些不起作用,請與某位維護者聯系。

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

配置文件
~/.odbc.ini 包含用戶為 psqlODBC 聲明的訪問信息.這個文件用了 Windows 注冊表文件的習慣,但是忽略這些限制也可以. 
.odbc.ini 文件有三個必須的段.第一個是 [ODBC Data Sources],定義了一個你希望訪問的每個數據庫的任意名稱和描述.第二個必須的段是 Data Source Specification?。〝祿绰暶鳎┎⑶颐總€數據庫都將有一個這樣的段.每個段必須用 [ODBC Data Sources] 里給出的名稱標記并且必須包含下面的內容: 

Driver = POSTGRESDIR/lib/libpsqlodbc.so
Database=DatabaseName
Servername=localhost
Port=5432
小技巧:記住 Postgres 數據庫名通常是單獨一個詞,沒有任何類型的路徑名稱.Postgres 服務器管理對數據庫的實際訪問,并且你只需要在客戶端聲明(數據庫)名稱.
可以增加其他條目用于控制顯示的格式.第三個必須的段是 [ODBC],必須包含 InstallDir 關鍵字和一些其他選項. 
這里是一個 .odbc.ini 文件的例子,顯示了三個數據庫的訪問信息: 

[ODBC Data Sources]
DataEntry = Read/Write Database
QueryOnly = Read-only Database
Test = Debugging Database
Default = Postgres Stripped

[DataEntry]
ReadOnly = 0
Servername = localhost
Database = Sales

[QueryOnly]
ReadOnly = 1
Servername = localhost
Database = Sales

[Test]
Debug = 1
CommLog = 1
ReadOnly = 0
Servername = localhost
Username = tgl
Password = "no$way"
Port = 5432
Database = test

[Default]
Servername = localhost
Database = tgl
Driver = /opt/postgres/current/lib/libpsqlodbc.so

[ODBC]
InstallDir = /opt/applix/axdata/axshlib

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

ApplixWare
配置
必須正確配置 ApplixWare ,以便讓它能夠訪問 PostgresODBC 驅動軟件. 
  
允許 ApplixWare 數據庫訪問 
這些指導信息適用于 Linux 上的 4.4.2 版本的 ApplixWare.請參考 Linux 系統管理 在線手冊獲取更詳細的信息. 

你必須修改 axnet.cnf 以便于 elfodbc 可以找到 libodbc.so?。∣DBC 驅動管理器)共享庫.這個庫包含在 ApplixWare 發布版本里,但是要修改 axnet.cnf 指向正確的位置. 
以 root 身份編輯文件  applixroot/applix/axdata/axnet.cnf. 

在 axnet.cnf 的底部,找出以下面文字開頭的一行 
#libFor elfodbc /ax/...
把這一行改成 
libFor elfodbc applixroot/applix/axdata/axshlib/lib
告訴 elfodbc 在這個路徑里查找 ODBC 支持庫.通?!pplix 被裝在 /opt,這樣完整的路徑就是 /opt/applix/axdata/axshlib/lib,但如果你在其他地方安裝了 Applix ,相應的修改路徑.
創建上面描述的 .odbc.ini.你可能還要增加標志 
TextAsLongVarchar=0
到 .odbc.ini 的數據庫聲明部分,這樣文本字段就不會顯示為 **BLOB**。
測試 ApplixWare ODBC 聯接 
運行 Applix Data 
選擇感興趣的 Postgres 數據庫. 

選擇 Query->Choose Server. 
選擇 ODBC,并且敲擊 Browse.你在 .odbc.ini 里配置的數據庫應該顯示出來.確?! ost: field  是空的(如果不是,axnet 將試圖與另一臺機器的 axnet 聯接查找數據庫).S 

選擇敲擊 Browse 顯示出的數據庫,然后敲擊 OK. 

在登錄標識對話框里輸入 username(用戶名)和 password (口令).然后敲擊 OK.

你應該看到在數據窗口左下腳有 “Starting elfodbc server”?。▎印lfodbc 服務器)字樣.如果彈出一個錯誤對話框,參考下面的調試章節. 
'Ready'(就緒)信息將在數據窗口的左下角出現.這表明你現在可以輸入查詢. 

從 Query->Choose tables 選擇一個表,然后選擇 Query->Query 來訪問該數據庫.表的頭 50 行左右的信息將顯示出來.

常見問題
在嘗試通過 Applix Data 建立一個 ODBC 聯接時下面的信息可能出現: 
Cannot launch gateway on server(無法在服務器上建立網關) 
elfodbc can't find libodbc.so. Check your axnet.cnf.(elfodbc 無法找到 libodbc.so.檢查你的 axnet.cnf.) 
Error from ODBC Gateway: IM003::[iODBC][Driver Manager]Specified driver could not be loaded 
libodbc.so 不能在找到 .odbc.ini 里列出的驅動.檢查設置. 
Server: Broken Pipe 
驅動進程因為其他原因結束的.你可能拿的不是最新的 Postgres ODBC 軟件包. 
  
setuid to 256: failed to launch gateway 
九月發布的 ApplixWare v4.4.1(第一個有 Linux 下官方支持的 ODBC)在用戶名超過八(8)字符長時有問題.這個問題是 Steve Campbell 發現的. 
作者:由 Steve Campbell 在 1998-10-20 提交.
axnet 程序的安全系統看起來有一點奇怪.axnet 代理用戶的事務,因而在一個真正的多用戶系統它應該以 root 權限(這樣它可以讀/寫每個用戶的目錄).我對建議這樣做有些猶豫,因為我們不知道這樣會引起什么樣的安全漏洞.
調試 ApplixWare ODBC 聯接
一個調試聯接問題的很好的 Unix 系統工具是 strace. 
用 strace 調試 
啟動 applixware. 
在 axnet 進程上運行一個 strace.例如,如果 

% ps -aucx | grep ax
顯示 
cary   10432  0.0  2.6  1740   392  ?  S  Oct  9  0:00 axnet
cary   27883  0.9 31.0 12692  4596  ?  S   10:24  0:04 axmain
那么運行 
% strace -f -s 1024 -p 10432
檢查 strace 輸出. 
來自 Cary?。涸S多從 ApplixWare 來的錯誤信息輸出到 stderr,但是我不能確定 stderr 發送到哪里,所以 strace 是把它們找出來的方法.
例如,在得到一個 “Cannot launch gateway on server”,我在 axnet 上運行 strace 并且得到 
[pid 27947] open("/usr/lib/libodbc.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 27947] open("/lib/libodbc.so", O_RDONLY) = -1 ENOENT
(No such file or directory)
[pid 27947] write(2, "/usr2/applix/axdata/elfodbc:
can't load library 'libodbc.so'/n", 61) = -1 EIO (I/O error)
所以發生的錯誤是 applix elfodbc 在查找 libodbc.so,但是找不到.這就是為什么 axnet.cnf 需要修改的原因.
運行 the ApplixWare 演示
為了通過 ApplixWare 數據教程,你需要創建教程提到的樣例表.所用的創建表的 ELF 宏試圖在許多數據庫字段上使用一個 NULL 條件,而目前 Postgres 不允許這些選項. 
  
要繞開這些問題,你可以按下面方法做: 
修改 ApplixWare 演示 
拷貝 /opt/applix/axdata/eng/Demos/sqldemo.am 到一個本地目錄. 
編輯本地 sqldemo.am 的拷貝: 

查找 'null_clause = "NULL" 
修改這些成為 null_clause = ""

運行 Applix Macro Editor. 
從 Macro Editor 里打開 sqldemo.am 文件. 

選擇 File->Compile and Save. 

退出 Macro Editor. 

運行 Applix Data. 

選擇 *->Run Macro 

輸入值 “sqldemo”,然后敲擊 OK. 

你應該看到數據窗口狀態欄的的進度(在左下角). 

你現在應該可以訪問 demo 表.

有用的宏
你可以向你的標準 Applix 啟動宏文件里增加關于你的數據庫登錄和口令的信息.這是一個例子文件 ~/axhome/macros/login.am: 
macro login
set_set_system_var@("sql_username@","tgl")
set_system_var@("sql_passwd@","no$way")
endmacro
  注意 
對任何含有用戶名和口令信息的文件你都要仔細保護. 

支持的平臺
psqlODBC 已經在 Linux 制作和測試過了.也有在 FreeBSD 和 Solaris 上成功的報告.在代碼里沒有限制它在已經支持 Postgres 的平臺上運行的東西。(譯注:這里大部分內容是ApplixWare的特點,那位朋友有經驗,能否詳細介紹一下?)

--------------------------------------------------------------------------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91po在线观看91精品国产性色| 国产精品久久久久久久久久久久久久| 亚洲福利视频网站| 一区二区亚洲欧洲国产日韩| 亚洲欧美中文日韩在线| 久久91亚洲精品中文字幕| 一本色道久久综合亚洲精品小说| 美女精品久久久| 欧美午夜丰满在线18影院| 久久久国产视频91| 欧美成人一区二区三区电影| 久久精品电影网| 欧美性猛交xxxx免费看漫画| 久久网福利资源网站| 亚洲免费伊人电影在线观看av| 国产精品白丝av嫩草影院| 亚洲欧美国产一区二区三区| 丝袜亚洲欧美日韩综合| 欧美性极品xxxx娇小| 久久天天躁日日躁| 欧美—级高清免费播放| 一本一道久久a久久精品逆3p| 欧美疯狂做受xxxx高潮| 川上优av一区二区线观看| 国产精品欧美激情在线播放| 国产精品96久久久久久又黄又硬| 奇米影视亚洲狠狠色| 中文字幕日韩欧美| 日韩色av导航| 日韩精品在线视频观看| 国产97在线亚洲| 亚洲男人天堂2024| 日韩中文字幕网址| 久久久精品一区二区| 亚洲欧美一区二区激情| 日韩精品极品视频免费观看| 亚洲国产精品嫩草影院久久| 2018日韩中文字幕| 亚洲精品国产品国语在线| 欧美性xxxx| 中文字幕成人精品久久不卡| 国产精品激情av在线播放| 国产欧洲精品视频| 国产精品久久久久久久久久三级| 国产欧美日韩中文字幕| 久久全球大尺度高清视频| 国产91精品黑色丝袜高跟鞋| 中文字幕亚洲天堂| 亚洲男人的天堂在线| 中文字幕欧美日韩va免费视频| 国产香蕉97碰碰久久人人| 日韩国产精品亚洲а∨天堂免| 亚洲欧洲在线视频| 国产精品对白刺激| 亚洲第一级黄色片| 日韩一区二区福利| 性色av一区二区咪爱| 日韩精品在线第一页| 免费不卡在线观看av| 91av国产在线| 黄色精品一区二区| 国产成人精品999| 欧美小视频在线观看| 欧美日韩成人精品| 亚州成人av在线| 久久免费视频在线观看| 日本韩国在线不卡| www.欧美精品一二三区| 日韩三级影视基地| 成人免费网站在线看| 97人人模人人爽人人喊中文字| 欧美尺度大的性做爰视频| 日韩中文字幕欧美| 国产视频精品xxxx| 成人欧美一区二区三区在线| 欧美精品精品精品精品免费| 亚洲一区二区三区777| 欧美乱妇高清无乱码| 色婷婷久久一区二区| 91精品久久久久久久久| 亚洲视频综合网| 中文字幕日韩精品在线| 成人精品视频99在线观看免费| 欧美性极品少妇精品网站| 国语自产精品视频在免费| 九九热99久久久国产盗摄| 91亚洲精品视频| 亚洲欧美激情一区| 欧美激情视频一区| 色婷婷综合久久久久| 欧美精品videossex88| 欧美色videos| 亚洲色图校园春色| 国产精品扒开腿爽爽爽视频| 高清一区二区三区四区五区| 国产精品亚洲第一区| 久久久亚洲国产| 亚洲毛片在线观看| 国产精品久久久久久久久久| 亚洲欧美另类国产| 国产成人一区二区| 98精品在线视频| 久久久久久香蕉网| 亚洲大尺度美女在线| 亚洲国产日韩欧美在线99| 亚州成人av在线| 中文字幕精品影院| 国产精品日韩在线一区| 午夜精品福利在线观看| 国产视频丨精品|在线观看| 精品日韩中文字幕| 国产精品第100页| 亚洲欧美一区二区精品久久久| 亚洲a级在线观看| 欧美极品第一页| 久久99久久亚洲国产| 国产精品第100页| 国产精品爽爽爽爽爽爽在线观看| 国产精品美女主播在线观看纯欲| 欧美精品久久久久久久免费观看| 中文国产成人精品久久一| 欧美亚洲在线视频| 午夜欧美不卡精品aaaaa| 91极品视频在线| 国产91精品视频在线观看| 一本一本久久a久久精品综合小说| 91美女福利视频高清| 77777亚洲午夜久久多人| 亚洲图片在区色| 色婷婷综合成人av| 中文字幕精品视频| 欧美怡红院视频一区二区三区| 成人免费高清完整版在线观看| 久久99精品视频一区97| 亚洲美女视频网| 亚洲xxxxx性| 亚洲女人天堂成人av在线| 久久色在线播放| 97在线免费观看视频| 91社影院在线观看| 亚洲无限av看| 奇门遁甲1982国语版免费观看高清| 欧美日韩成人在线观看| 国产视频在线一区二区| 亚洲www视频| 国产一区二区三区在线观看网站| 久久国产精品久久久久久久久久| 神马久久久久久| www欧美日韩| 一区二区三区天堂av| 在线观看成人黄色| 97热在线精品视频在线观看| 精品无码久久久久久国产| 91伊人影院在线播放| 国产一区二区黑人欧美xxxx| 色偷偷av一区二区三区乱| 亚洲人成毛片在线播放| 久久久视频在线| 欧美性猛交99久久久久99按摩| 最近2019中文字幕大全第二页| 久久久久国产精品免费网站| 91在线网站视频| 91福利视频在线观看| 91av免费观看91av精品在线|