【正文】
20_29,連接失?。? returnend ifopen(w_login)(5) 運(yùn)行應(yīng)用程序。(3) 設(shè)計(jì)登錄窗口。if =1 then messagebox(”xx1420_29警告”,”連接失敗!”) returnelse messagebox(”xx1420_29提示”,”連接成功!”)end if(9) 編寫連接數(shù)據(jù)庫以及顯示連接數(shù)據(jù)庫結(jié)果的腳本, messagebox對(duì)話框標(biāo)題為“xx1420_29”。工作區(qū)→右鍵→New→Target→Application:應(yīng)用對(duì)象名xx1420_2目標(biāo)名xx1420_2應(yīng)用庫名xx1420_29(6) 創(chuàng)建數(shù)據(jù)庫配置。(17) 設(shè)置數(shù)據(jù)庫用戶“xx1420_29”對(duì)表“xx1420_29_s”、“xx1420_29_c”、“xx1420_29_sc”的select、insert、delete、update權(quán)限。(13) 新建數(shù)據(jù)庫關(guān)系圖,指定選課表sno為外鍵參照學(xué)生表的sno,指定選課表o為外鍵參照課程表的o,數(shù)據(jù)庫關(guān)系圖名要求為“xx1420_29”。 (11) 在“xx1420”數(shù)據(jù)庫中創(chuàng)建選課表,表名為“xx1420_29_u”,包括列:uno、char(10),uname、char(10),password、char(6),u、tinyint,s、tinyint,c、tinyint,sc、tinyint。(9) 在“xx1420”數(shù)據(jù)庫中創(chuàng)建課程表,表名為“xx1420_29_c”,包括列:o、char(4),ame、char(20),credit、tinyint。(6) 啟動(dòng)企業(yè)管理器。 數(shù)據(jù)庫運(yùn)行和維護(hù)階段:程序運(yùn)行二.?dāng)?shù)據(jù)庫設(shè)計(jì)使用工具:SQL Server 2000目的要求:掌握SQL Server 2000數(shù)據(jù)庫、表的創(chuàng)建操作步驟:(1) 啟動(dòng)數(shù)據(jù)庫服務(wù)管理器。 216。 優(yōu)化 全局概念模式設(shè)計(jì)步驟: 概念模型設(shè)計(jì)階段:ER模型 局部概念模式設(shè)計(jì) 步驟: 需求分析階段:可行性分析報(bào)告 系統(tǒng)需求 用戶的需求具體體現(xiàn)在選課信息和用戶信息的提供、保存、更新和查詢的方面。數(shù)據(jù)庫建設(shè)是硬件、軟件和干件的結(jié)合。數(shù)據(jù)庫選課管理系統(tǒng)課程設(shè)計(jì)結(jié)構(gòu)設(shè)計(jì)課題:學(xué)生選課管理系統(tǒng)一.概要分析數(shù)據(jù)庫設(shè)計(jì)是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式。這就要求數(shù)據(jù)庫的設(shè)計(jì)必須合理,使之能夠充分滿足各種信息的輸入和輸出,保證數(shù)據(jù)存儲(chǔ)的可靠性,并且能夠快速取出和存入。選擇局部應(yīng)用:選擇一個(gè)適當(dāng)層次的數(shù)據(jù)流圖。合并:集成為一個(gè)整體的數(shù)據(jù)概念模型即全局ER模型。消除冗余:合并相關(guān)類型實(shí)體,消除冗余屬性、冗余聯(lián)系。 邏輯模型設(shè)計(jì)階段:關(guān)系模型n ER模型向關(guān)系模型的轉(zhuǎn)換 學(xué)生(學(xué)號(hào),姓名,性別,班級(jí),出生日期,地址,電話,) 課程(課程號(hào),課程名 ,學(xué)分) 選課(課程號(hào),學(xué)號(hào),成績)n 數(shù)據(jù)模型的優(yōu)化和規(guī)范處理216。(2) 啟動(dòng)企業(yè)管理器。(7) 以登錄賬戶sa注冊(cè)數(shù)據(jù)庫服務(wù)器“”,密碼為zzj。其中,o為主鍵。其中,sno、o為主鍵。(14) 啟動(dòng)查詢分析器,使用insert語句將表s、c、sc中的數(shù)據(jù)分別插入表“xx1420_29_s”、“xx1420_29_c”、“xx1420_29_sc”。(18) 刪除注冊(cè)的數(shù)據(jù)庫服務(wù)器,以登錄賬戶“xx1420_29”注冊(cè)數(shù)據(jù)庫服務(wù)器,測試其權(quán)限。(7) 連接數(shù)據(jù)庫服務(wù)器。(10) 運(yùn)行應(yīng)用程序。 I 窗口的構(gòu)成: 使用控件: 圖片按鈕“p_1“—— 靜態(tài)文本”st_”——賬號(hào)、密碼; 單行編輯框“sle_1, sle_2“——賬號(hào)和密碼輸入框 命令按鈕“cb_“——確定、退出 屬性: p_1 PictureName下拉列表中指定圖片為“文件路徑\ ” sle_1,sle_2 password屬性 事件: 設(shè)置全局變量 string g_uno 設(shè)置實(shí)例變量 Int i_n=0 “確定”按鈕觸發(fā)事件腳本select uno into:g_unofrom xx1420_29_uwhere uno=: and password=:。(6) 菜單的創(chuàng)建i. 創(chuàng)建菜單(File→)New→PB Object→Menu:右擊Untitled,Insert Submenu Item建菜單項(xiàng),右擊菜單,Insert Submenu Item建命令項(xiàng),通常菜單命名為“m_菜單名”。 菜單的屬性:① 定義菜單外觀General選項(xiàng)卡:Name(名稱)、MicroHelp(微幫助)、Enabled(可用性)等。創(chuàng)建窗口w_main,在“MenuName”框中指定捆綁的菜單名m_main,在“WindowType”下拉列表選中 “mdihelp!”,在“WindowState”下拉列表選中“maximized!”。(1)修改密碼項(xiàng)n 確定腳本int retSELECT uno INTO :g_uno FROM xx1420_29_u WHERE uno=:g_uno and password=:。 工具欄—OLE控件,設(shè)置“幫助”。選擇列:單擊列名。%+Trim()+%39。⑦ 定義數(shù)據(jù)源SQL selectOK:定義數(shù)據(jù)源。指定排序:單擊Sort選項(xiàng)卡,復(fù)選框Ascending表示升序。++39。 MessageBox(xx1420_29錯(cuò)誤,保存失敗!) END IFEND IFEND IF關(guān)閉腳本:Close(PARENT)(5) 系統(tǒng)主菜單中響應(yīng) “課程刪除”窗口腳本。? 控制數(shù)據(jù) Next→選擇一個(gè)或多個(gè)表→Open? 保存 對(duì)象名:d_c_edit? 數(shù)據(jù)對(duì)象5. 設(shè)計(jì)課程修改窗口 (7) 創(chuàng)建窗口事件腳本:Open事件腳本 :(sqlca)()closequery事件:int ret,ret1()IF ()0 THEN ret=MessageBox(xx1420_29提示,數(shù)據(jù)已更新,是否保存?,Question!,YesNoCancel!,3) IF ret=1 THEN ret1=() IF ret1=1 THEN COMMIT USING SQLCA。 and o=39。 MessageBox(xx1420_29錯(cuò)誤,保存失敗!) END IF ELSEIF ret=3 THEN RETURN 1 END IFEND IF取消腳本:()關(guān)閉腳本:Close(parent)(8) 系統(tǒng)主菜單中響應(yīng) “課程修改”窗口腳本。? 控制數(shù)據(jù)Next→選擇一個(gè)或多個(gè)表→Open? 保存對(duì)象名:d_c_insert? 數(shù)據(jù)對(duì)象7. 設(shè)計(jì)課程增加窗口 (10) 創(chuàng)建窗口事件腳本:Open事件腳本:(sqlca)(0)closequery事件腳本:int ret,ret1()IF ()0 THEN ret=MessageBox(xx1420_29提示,數(shù)據(jù)已更新,是否保存?,Question!,YesNoCancel!,3) IF ret=1 THEN ret1=() IF ret1=1 THEN COMMIT USING SQLCA。 MessageBox(xx1420_29錯(cuò)誤,保存失敗!) END IF ELSEIF ret=3 THEN RETURN 1 END IFEND IF刪除腳本:IF ()=1 then (0) (0) (1) ()ELSE (0) (()1) ()END IF關(guān)閉腳本:Close(PARENT)定義實(shí)例變量:Int i_nDw_1的itemchangedint i,jstring oi_n=0()IF ()=o THEN j=() o=[j] //檢查表 SELECT o INTO :o FROM xx1420_29_c WHERE o=:o。22 定義數(shù)據(jù)源OK:定義數(shù)據(jù)源。指定排序:單擊Sort選項(xiàng)卡,復(fù)選框Ascending表示升序。+cx+39。Open(w_s_locate)(15) 運(yùn)行應(yīng)用程序。選擇列:單擊列名。 MessageBox(xx1420_29提示,保存成功!) ELSE ROLLBACK USING SQLCA。++39。 MessageBox(1409_12錯(cuò)誤,保存失敗!) END IFEND IFEND IF關(guān)閉腳本:Close(parent)(17) 系統(tǒng)主菜單中響應(yīng) “學(xué)生刪除”窗口的腳本。33 控制數(shù)據(jù)Next→選擇xx1420_29_s→Open34 保存 對(duì)象名:d_s_edit35 數(shù)據(jù)對(duì)象13. 設(shè)計(jì)學(xué)生修改窗口 (19) 創(chuàng)建窗口事件腳本:Closequery腳本:int ret,ret1IF ()0 THEN ret=MessageBox(xx1420_29提示,數(shù)據(jù)已更新,是否保存?,Question!,YesNoCancel!,3) IF ret=1 THEN ret1=() IF ret1=1 THEN COMMIT USING SQLCA。 and sno=39。 MessageBox(xx1420_29錯(cuò)誤,保存失敗!) END IF ELSEIF ret=3 THEN RETURN 1 END IFEND IF取消腳本:()關(guān)閉腳本:“Close(parent)定義實(shí)例變量:Int i_n=0Dw_1 itemerror腳本:if i_n=1 thenmessagebox(xx1420_29警告,Email不能與表中相同!)elseif i_n=2 thenmessagebox(xx1420_29,Email不能與錄入值相同!)end if[()]=39。Open(w_s_edit)(21) 運(yùn)行應(yīng)用程序。選擇列:單擊列名。 MessageBox(xx1420_29提示,保存成功!) ELSE ROLLBACK USING SQLCA。 if =0 then i_n=1 return 1 end if //檢查數(shù)據(jù)窗口 for i=1 to () if ij then if upper([i])=upper(sno) then i_n=2 return 1 end if end if nextend ifif ()= then j=() =[j] //檢查表 select into : from xx1420_29_s where =:。42 定義數(shù)據(jù)源OK:定義數(shù)據(jù)源。44 保存 對(duì)象名:d_sc_s d_sc_o d_sc_145 數(shù)據(jù)對(duì)象17. 設(shè)計(jì)按學(xué)生選課窗口 (25) 創(chuàng)建窗口事件腳本:Open事件腳本:int scselect sc into :sc from xx1420_29_u where