




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第8章章 SQL語(yǔ)句和游標(biāo)語(yǔ)句和游標(biāo)8.1SQL語(yǔ)句語(yǔ)句8.2游標(biāo)的使用游標(biāo)的使用8.3SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例小小 結(jié)結(jié)8.1 SQL語(yǔ)句語(yǔ)句 8.1.1 SQL語(yǔ)句的作用語(yǔ)句的作用 8.1.2 SQL語(yǔ)句的基本格式語(yǔ)句的基本格式 8.1.3 SQL語(yǔ)句的應(yīng)用舉例語(yǔ)句的應(yīng)用舉例 8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句8.1.1 SQL語(yǔ)句的作用語(yǔ)句的作用 PowerScript提供了一整套嵌入式SQL語(yǔ)句。利用嵌入式SQL語(yǔ)句,我們能夠在程序中靈活地操縱數(shù)據(jù)庫(kù)。PowerScript支持在程序中使用嵌入式SQL語(yǔ)句,并且支持在SQL語(yǔ)句中使用具體數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)特有
2、的SQL語(yǔ)句、函數(shù)和保留字8.1.1 SQL語(yǔ)句的作用語(yǔ)句的作用在程序中書寫SQL語(yǔ)句的格式為:SQL語(yǔ)句; 整個(gè)SQL語(yǔ)句可以寫在一行,也可以寫成更易理解的多行格式,只要在語(yǔ)句結(jié)束處放上一個(gè)分號(hào)(;)即可。在SQL語(yǔ)句中可以使用常量或合法的變量,但使用變量時(shí)需在變量前加個(gè)冒號(hào)(:)(通常稱作綁定變量或引用變量),多個(gè)變量或常量之間用逗號(hào)(,)分隔。我們向“學(xué)生基本情況”表中插入數(shù)據(jù)項(xiàng)。事先創(chuàng)建好表,表名為“學(xué)生基本情況”。8.1.2 SQL語(yǔ)句的基本格式語(yǔ)句的基本格式1.SELECT語(yǔ)句 單行SELECT語(yǔ)句從數(shù)據(jù)庫(kù)中檢索一條記錄,如果找到多條滿足條件的記錄,則產(chǎn)生錯(cuò)誤(后續(xù)章節(jié)將介紹讀取多
3、條數(shù)據(jù)庫(kù)記錄的游標(biāo)方法)。其語(yǔ)法格式為SELECT FieldsList INTO VarList FROM TableList WHERE CriteriaUSING TransactionObject;8.1.2 SQL語(yǔ)句的基本格式語(yǔ)句的基本格式 2.INSERT語(yǔ)句 用INSERT語(yǔ)句向數(shù)據(jù)庫(kù)中插入一條記錄。其語(yǔ)法格式為 INSERT INTO TableName(FieldName,.) VALUES(ValueOfField,.) USING TransactionObject;8.1.2 SQL語(yǔ)句的基本格式語(yǔ)句的基本格式 3.UPDATE語(yǔ)句 用UPDATE語(yǔ)句修改表中指定的數(shù)
4、據(jù)。其語(yǔ)法格式為 UPDATE TableName SET FieldName=Value,F(xiàn)ieldName=Value,. WHERE Criteria USING TransactionObject;8.1.2 SQL語(yǔ)句的基本格式語(yǔ)句的基本格式 4.DELETE語(yǔ)句 使用DELETE語(yǔ)句刪除表中的數(shù)據(jù)。其語(yǔ)法格式為 DELETE FROM TableName WHERE Criteria USING TransactionObject;8.1.3 SQL語(yǔ)句的應(yīng)用舉例語(yǔ)句的應(yīng)用舉例 1.檢查SQL語(yǔ)句執(zhí)行情況 嵌入式SQL語(yǔ)句的執(zhí)行有可能成功,也有可能失敗,良好的編程風(fēng)格對(duì)每條可執(zhí)行的
5、SQL語(yǔ)句都會(huì)檢查其執(zhí)行情況。每當(dāng)執(zhí)行一條SQL語(yǔ)句后,與該語(yǔ)句相關(guān)的事務(wù)對(duì)象的SQLCode屬性都給出一個(gè)值指示SQL語(yǔ)句的執(zhí)行是否成功。SQLCode取值為: 0:最近一次SQL語(yǔ)句執(zhí)行成功。 -1:最近一次SQL語(yǔ)句執(zhí)行失敗。 100:最近一次SQL語(yǔ)句沒(méi)有返回?cái)?shù)據(jù)。8.1.3 SQL語(yǔ)句的應(yīng)用舉例語(yǔ)句的應(yīng)用舉例 2.SQL語(yǔ)句的應(yīng)用舉例 建立一個(gè)應(yīng)用。 連接數(shù)據(jù)庫(kù)(MSS SQL Server)。 創(chuàng)建上表。 建立如圖81所示界面。8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句 SQL語(yǔ)句雖不難學(xué),但要記憶十分清楚也并不容易。PowerBuilder提供了圖形化生成SQL語(yǔ)句的工具畫板,利用它能夠
6、用交互方式定義SQL語(yǔ)句并將其粘貼到程序中。PowerBuilder的SQL語(yǔ)句畫板能夠構(gòu)造三類語(yǔ)句:游標(biāo)、非游標(biāo)和過(guò)程。非游標(biāo)SQL語(yǔ)句對(duì)應(yīng)于單行SELECT、INSERT、UPDATE和DELETE語(yǔ)句。下面以構(gòu)造SELECT語(yǔ)句為例說(shuō)明基本操作過(guò)程,并扼要說(shuō)明其他語(yǔ)句的粘貼方法。8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句粘貼過(guò)程如圖812、圖813、圖814、圖815、圖816所示。如圖812所示,在腳本編輯窗口中單擊鼠標(biāo)右鍵選擇要粘貼的語(yǔ)句。 8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句如圖813所示,選擇表8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句在如圖814所示的窗口中對(duì)選中表的字段進(jìn)行選擇。 8.1.4
7、粘貼粘貼SQL語(yǔ)句語(yǔ)句單擊此時(shí)畫板的“Design.Into Variables.”彈出如圖815所示畫面8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句 輸入程序變量,單擊圖上“OK”按鈕提交返回結(jié)果,如圖816所示。8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句 在數(shù)據(jù)庫(kù)畫板中我們也可以對(duì)在編寫程序時(shí)粘貼所需要的SQL語(yǔ)句,具體過(guò)程如下:雙擊圖817中的一個(gè)圖標(biāo) 例如雙擊“SELECT”進(jìn)入如圖818所示的選擇表窗口8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句單擊“Open”按鈕進(jìn)入圖819所示窗口8.1.4 粘貼粘貼SQL語(yǔ)句語(yǔ)句單擊工具欄上的“Return”按鈕進(jìn)入圖820,我們可以看到SQL語(yǔ)句。8.1.4 粘貼粘貼S
8、QL語(yǔ)句語(yǔ)句可以使用“Ctrl+L”得到如圖821所示結(jié)果。 8.2 游標(biāo)的使用游標(biāo)的使用 8.2.1 游標(biāo)的含義及作用游標(biāo)的含義及作用 8.2.2 游標(biāo)的使用過(guò)程游標(biāo)的使用過(guò)程 8.2.3 聲明游標(biāo)(聲明游標(biāo)(DECLARE語(yǔ)句)語(yǔ)句) 8.2.4 打開(kāi)游標(biāo)(打開(kāi)游標(biāo)(OPEN語(yǔ)句)語(yǔ)句) 8.2.5 提取數(shù)據(jù)(提取數(shù)據(jù)(FETCH語(yǔ)句)語(yǔ)句) 8.2.6 關(guān)閉游標(biāo)(關(guān)閉游標(biāo)(CLOSE語(yǔ)句)語(yǔ)句) 8.2.7 使用使用Where子句子句8.2.1 游標(biāo)的含義及作用游標(biāo)的含義及作用 選取多行數(shù)據(jù)時(shí)必須定義游標(biāo)。所謂游標(biāo)可以理解成一個(gè)返回結(jié)果集合的指針,使用該指針可以對(duì)返回的結(jié)果逐條處理。事實(shí)
9、上,DataWindow可以替代游標(biāo)進(jìn)行從后臺(tái)數(shù)據(jù)庫(kù)查詢多條記錄的復(fù)雜操作,但是,同DataWindow和DataStore相比,游標(biāo)也有其自身的優(yōu)點(diǎn),比如系統(tǒng)資源占用少,操作靈活,可根據(jù)需要定義變量類型,如全局、實(shí)例、局部類型和訪問(wèn)類型(如私有或公共)等8.2.2 游標(biāo)的使用過(guò)程游標(biāo)的使用過(guò)程 游標(biāo)典型的使用過(guò)程一般為: (1)用DECLARE說(shuō)明游標(biāo); (2)用OPEN語(yǔ)句打開(kāi)游標(biāo); (3)使用FETCH語(yǔ)句讀取一行數(shù)據(jù); (4)處理數(shù)據(jù); (5)判斷是否已經(jīng)讀完所有數(shù)據(jù),未讀完時(shí)重復(fù)執(zhí)行35步; (6)使用CLOSE語(yǔ)句關(guān)閉游標(biāo)。 總之使用游標(biāo)有四種基本的步驟:聲明游標(biāo)、打開(kāi)游標(biāo)、提取數(shù)
10、據(jù)、關(guān)閉游標(biāo)。下面分別介紹DECLARE、OPEN、FETCH、CLOSE語(yǔ)句。8.2.3 聲明游標(biāo)(聲明游標(biāo)(DECLARE語(yǔ)語(yǔ)句)句) 像使用其他類型的變量一樣,使用一個(gè)游標(biāo)之前,首先應(yīng)當(dāng)聲明它。游標(biāo)的聲明包括兩個(gè)部分:游標(biāo)的名稱和這個(gè)游標(biāo)所用到的SQL語(yǔ)句。 使用游標(biāo)前需要用DECLARE語(yǔ)句說(shuō)明游標(biāo)。其語(yǔ)法格式為: DECLARE CursorName CURSOR FOR SelectStatement USING TransactionObject; 其中,CursorName是游標(biāo)的名稱,可以使用任何有效的標(biāo)識(shí)符來(lái)表示;SelectStatement是任何有效的SELECT語(yǔ)句;
11、TransactionObject是事務(wù)對(duì)象名,缺省時(shí)使用SQLCA。8.2.4 打開(kāi)游標(biāo)(打開(kāi)游標(biāo)(OPEN語(yǔ)句)語(yǔ)句) 游標(biāo)聲明后在其他操作之前,必須打開(kāi)它,打開(kāi)已經(jīng)說(shuō)明的游標(biāo)并執(zhí)行相應(yīng)的SELECT語(yǔ)句。其語(yǔ)法格式為: OPEN CursorName; 其中CursorName是已經(jīng)用DECLARE語(yǔ)句說(shuō)明的游標(biāo)名8.2.5 提取數(shù)據(jù)(提取數(shù)據(jù)(FETCH語(yǔ)句)語(yǔ)句) 當(dāng)使用OPEN語(yǔ)句打開(kāi)游標(biāo)并在數(shù)據(jù)庫(kù)中執(zhí)行查詢后,我們還不能立即利用查詢結(jié)果集中的數(shù)據(jù),必須用FETCH語(yǔ)句來(lái)讀取數(shù)據(jù)。FETCH語(yǔ)句是游標(biāo)使用的核心。一條FETCH語(yǔ)句一次可以將一條記錄放入程序員指定的變量中。在Data
12、Window和DataStore中,執(zhí)行了Retrieve()函數(shù)以后,查詢的所有結(jié)果全部可以得到;而使用游標(biāo),我們只能逐條記錄得到查詢結(jié)果。已經(jīng)聲明并打開(kāi)一個(gè)游標(biāo)后,我們就可以將數(shù)據(jù)放入任意的變量中。在FETCH語(yǔ)句中可以指定游標(biāo)的名稱和目標(biāo)變量的名稱8.2.5 提取數(shù)據(jù)(提取數(shù)據(jù)(FETCH語(yǔ)句)語(yǔ)句) FETCH語(yǔ)句從游標(biāo)中讀取當(dāng)前記錄并把它保存到指定的變量中。當(dāng)數(shù)據(jù)庫(kù)支持下述用法時(shí),還可以使用FETCH FIRST、FETCH PRIOR、FETCH LAST。FETCH語(yǔ)句的語(yǔ)法格式為: FETCH CursorName INTO HostVariableList; 其中,Curso
13、rName是OPEN語(yǔ)句打開(kāi)的游標(biāo)名;HostVariableList是與SELECT語(yǔ)句中選擇字段相對(duì)應(yīng)的主變量列表。8.2.6 關(guān)閉游標(biāo)(關(guān)閉游標(biāo)(CLOSE語(yǔ)句)語(yǔ)句) CLOSE語(yǔ)句關(guān)閉先前打開(kāi)的游標(biāo)。其語(yǔ)法格式為: CLOSE CursorName; 其中CursorName是先前打開(kāi)游標(biāo)的名稱。關(guān)閉游標(biāo)后,就不能再使用FETCH語(yǔ)句從游標(biāo)中讀取數(shù)據(jù)了。下面是關(guān)閉游標(biāo)的示例:CLOSE xhxm; 注意:在游標(biāo)操作的最后,不要忘記關(guān)閉游標(biāo),要養(yǎng)成良好的編程習(xí)慣,以使系統(tǒng)釋放游標(biāo)占用的資源。8.2.7 使用使用Where子句子句 DECLARE語(yǔ)句的作用只是定義一個(gè)游標(biāo),在OPEN語(yǔ)句
14、中這個(gè)游標(biāo) 才會(huì)真正地被執(zhí)行。了解了這些,我們就可以很方便地實(shí)現(xiàn)這樣的功能在DECLARE的W HERE子句中加入變量作參數(shù),如下所示: Dec fenshu .定義分?jǐn)?shù)變量fenshu=dec(ddlb1.text) DECLARE xhxm CURSOR FOR .聲明游標(biāo)SELECT xh,xm FROM chengjibiao WHERE shuxue=:fenshu;OPEN xhxm; .打開(kāi)游標(biāo) tring xh,xm .定義學(xué)號(hào)、姓名變量 DO WHILE SQLCA.SQLCode=0 FETCH xhxm INTO:xh,:xm; .讀取數(shù)據(jù)8.2.7 使用使用Where子
15、句子句 LOOP CLOSE xhxm; .關(guān)閉游標(biāo) 同其他變量一樣,我們也可以定義游標(biāo)的訪問(wèn)類型:全局、共享、實(shí)例或局部,游標(biāo)變量的命名規(guī)則同其他變量一樣。 如果連接的數(shù)據(jù)庫(kù)管理系統(tǒng)支持存儲(chǔ)過(guò)程,那么在PowerScript中就可以使用定義在數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程。8.2.7 使用使用Where子句子句 使用存儲(chǔ)過(guò)程的方法與游標(biāo)十分類似:首先用DECLARE語(yǔ)句說(shuō)明存儲(chǔ)過(guò)程(其語(yǔ)法請(qǐng)參看聯(lián)機(jī)幫助),然后用EXECUTE語(yǔ)句執(zhí)行已說(shuō)明的過(guò)程,再使用FETCH語(yǔ)句讀取各條記錄,最后用CLOSE語(yǔ)句關(guān)閉存儲(chǔ)過(guò)程。 在PowerScript中使用存儲(chǔ)過(guò)程前,應(yīng)該首先在數(shù)據(jù)庫(kù)中定義所需的存儲(chǔ)過(guò)程。使用存儲(chǔ)
16、過(guò)程能夠提高應(yīng)用程序的執(zhí)行效率。應(yīng)該注意到,并非所有的數(shù)據(jù)庫(kù)管理系統(tǒng)都支持存儲(chǔ)過(guò)程。 注意 打開(kāi)游標(biāo)或存儲(chǔ)過(guò)程后,如果要使用COMMIT或ROLLBACK語(yǔ)句,必須十分小心,因?yàn)檫@兩個(gè)語(yǔ)句將關(guān)閉游標(biāo)或存儲(chǔ)過(guò)程。 8.3 SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例 例說(shuō)明 本例將演示如何創(chuàng)建一個(gè)日用品管理系統(tǒng)登錄窗口。通過(guò)對(duì)用戶名和密碼的驗(yàn)證進(jìn)入系統(tǒng)。當(dāng)密碼輸入錯(cuò)誤時(shí),提示有三次機(jī)會(huì),當(dāng)?shù)谌芜€沒(méi)有輸入正確時(shí),啟動(dòng)此系統(tǒng)將失敗,其界面如圖822所示。8.3 SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例 設(shè)計(jì)思路 本例中用戶名下拉列表框使用游標(biāo)從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),用戶名下拉列表框中的內(nèi)容可以根據(jù)數(shù)據(jù)
17、庫(kù)內(nèi)容的改變而變化;密碼的驗(yàn)證是通過(guò)SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)中的用戶名和密碼的比較,得出用戶是否有權(quán)登錄此系統(tǒng)。8.3 SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例 實(shí)現(xiàn)過(guò)程 1.連接數(shù)據(jù)庫(kù),創(chuàng)建表“PassWord”。主要字段有用戶名、密碼,如圖823所示。下面的操作中所提取的數(shù)據(jù)將從該表中得到。 2.在工作區(qū)中創(chuàng)建窗口名稱為:w Login系統(tǒng)登錄打開(kāi)的密碼驗(yàn)證窗口。 3.為登錄窗口添加如圖822所示的控件:日用品管理系統(tǒng)靜態(tài)文本(st1),用戶名(st2),密碼(st3),下拉列表(ddlb1),密碼輸入單行文本(sle1),確定按鈕(cb1),取消按鈕(cb2)。將各控件按圖822所示布置。
18、4.代碼的編寫。8.3 SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例(1)為窗口(w Login)定義變量(Instance Variables): Integer Enter number .記錄登錄次數(shù)變量(2)為窗口(w Login)的OPEN事件編寫腳本: String Name Enter Number=0 .記錄登錄次數(shù)變量sle1.Text=ddlb1.SetFocus() .下面代碼使用游標(biāo)提取數(shù)據(jù)庫(kù)中的數(shù)據(jù)添加到下拉列表框中DECLARE C1CURSOR FOR SELECT用戶名FROM PassWord;OPEN C1; FETCH C1INTO:Name; Do Whi
19、le SQLCa.SQLCode=0 ddlb1.AddItem(Name) FETCH C1INTO:Name;Loop CLOSE C1; .下列代碼將單行文本與按鈕1設(shè)為不可用If sle1.Enabled=TRUE Then sle1.Enabled=FALSE End if If cb1.Enabled=TRUE Then cb1.Enabled=FALSE End if8.3 SQL語(yǔ)句和游標(biāo)編程實(shí)例語(yǔ)句和游標(biāo)編程實(shí)例(3)為下拉列表(ddlb1)的SelectionChanged事件添加代碼: sle1.Enabled=TRUE cb1.Enabled=TRUE (4)選擇所需要
20、的用戶名及輸入密碼之后就進(jìn)入密碼驗(yàn)證階段(確定按鈕的單擊事件代碼): Integer number .從數(shù)據(jù)庫(kù)PassWord中驗(yàn)證用戶名,密碼是否正確,正確時(shí)number不為零SELECT count()INTO:number FROM PassWord Where用戶名=:ddlb1.Text and密碼=:sle1.Text USING SQLCA; If SQLCA.SQLCode100Then If SQLCA.SQLCode=-1Then MessageBox(系統(tǒng)錯(cuò)誤,登錄失敗!n錯(cuò)誤代碼為:+String(SQLCA.SQLDBCode)+n錯(cuò)誤信息為:+SQLCA.SQLErrText+n請(qǐng)與系統(tǒng)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程資料員承包合同
- 仿古建設(shè)工程施工合同書
- 2024屆高考語(yǔ)文寫作指導(dǎo)家鄉(xiāng)風(fēng)俗
- 2025年四川貨運(yùn)從業(yè)資格證模擬版本
- 中外合資經(jīng)營(yíng)企業(yè)合同常用版樣書8篇
- 2025年安徽貨運(yùn)從業(yè)資格證題
- 2025年寧德道路運(yùn)輸從業(yè)資格證考試
- 數(shù)據(jù)模型構(gòu)建表-模型構(gòu)成
- 醫(yī)院對(duì)口支援協(xié)議書
- 2025年南寧從業(yè)資格貨運(yùn)資格考試題庫(kù)答案大全
- 2025年山東泰山財(cái)產(chǎn)保險(xiǎn)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 初中物理競(jìng)賽及自主招生講義:第7講 密度、壓強(qiáng)與浮力(共5節(jié))含解析
- 高中主題班會(huì) 梁文鋒和他的DeepSeek-由DeepSeek爆火開(kāi)啟高中第一課-高中主題班會(huì)課件
- 污水處理設(shè)施運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 一年級(jí)下冊(cè)書法教案 (一)
- 《浙江省應(yīng)急管理行政處罰裁量基準(zhǔn)適用細(xì)則》知識(shí)培訓(xùn)
- 2024年全國(guó)職業(yè)院校技能大賽高職組(康復(fù)治療技術(shù)賽項(xiàng))考試題庫(kù)(含答案)
- 2025年山東健康集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《中外廣播電視史》課件
- 微信公眾號(hào)運(yùn)營(yíng)
- DLT 593-2016 高壓開(kāi)關(guān)設(shè)備和控制設(shè)備
評(píng)論
0/150
提交評(píng)論