系統(tǒng)需求分析
研究生個(gè)人信息管理
導(dǎo)師信息管理
專業(yè)信息管理
功能模塊設(shè)計(jì)
針對(duì)上述需求,設(shè)計(jì)的功能模塊如圖10.34所示。
數(shù)據(jù)表設(shè)計(jì)
1.研究生信息數(shù)據(jù)表
數(shù)據(jù)表名稱:graduate_info。數(shù)據(jù)表結(jié)構(gòu)如表10.4所示。
2.專業(yè)信息數(shù)據(jù)表
3.導(dǎo)師信息數(shù)據(jù)表
索引和視圖設(shè)計(jì)
1.研究生信息數(shù)據(jù)表的索引和視圖設(shè)計(jì)
2.專業(yè)信息表的索引和視圖設(shè)計(jì)
3.導(dǎo)師信息數(shù)據(jù)表的索引和視圖設(shè)計(jì)
創(chuàng)建數(shù)據(jù)庫(kù)用戶
(1)在如圖10.35所示的創(chuàng)建用戶的【一般信息】選項(xiàng)卡中進(jìn)行如下設(shè)置。
(2)切換到如圖10.36所示的創(chuàng)建用戶的【角色】選項(xiàng)卡。
(3)成功創(chuàng)建上述用戶的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create user "graduateuser" profile "default"
identified by "12345678" default tablespace "users"
temporary tablespace "temp"
account unlock;
grant unlimited tablespace to "graduateuser";
grant "connect" to "graduateuser";
grant "resource" to "graduateuser";
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/creategraduateuser.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行creategraduateuser.sql文件創(chuàng)建用戶。
創(chuàng)建數(shù)據(jù)表
1.創(chuàng)建研究生信息表
(1)在如圖10.37所示的創(chuàng)建表的【一般信息】選項(xiàng)卡中進(jìn)行如下操作。
(2)切換到如圖10.38所示的創(chuàng)建表的【約束條件】選項(xiàng)卡。
(3)上述創(chuàng)建數(shù)據(jù)表graduateuser.graduate_info的sql代碼如下。
(3)上述創(chuàng)建數(shù)據(jù)表graduateuser.graduate_info的sql代碼如下。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createtablegraduateinfo.sql 文件創(chuàng)建數(shù)據(jù)表graduateuser.graduate_info。
2.創(chuàng)建專業(yè)信息表
(1)在如圖10.39所示的創(chuàng)建表的【一般信息】選項(xiàng)卡中按照如圖所示進(jìn)行設(shè)置。
(2)切換到如圖10.40所示的創(chuàng)建表的【約束條件】選項(xiàng)卡。
(3)上述創(chuàng)建數(shù)據(jù)表graduateuser.major_info的sql代碼如下。
【參見光盤文件】:第10章/createtablemajorinfo.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createtablemajorinfo.sql文件創(chuàng)建數(shù)據(jù)表graduateuser.major_info。
3.創(chuàng)建導(dǎo)師信息表
(1)在如圖10.41所示的創(chuàng)建表的【一般信息】選項(xiàng)卡中按照如圖所示進(jìn)行設(shè)置。
(2)切換到如圖10.42所示的創(chuàng)建表的【約束條件】選項(xiàng)卡。
(3)上述創(chuàng)建數(shù)據(jù)表graduateuser.director_info的sql代碼如下。
【參見光盤文件】:第10章/createtabledirectorinfo.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createtabledirectorinfo.sql 文件創(chuàng)建數(shù)據(jù)表graduateuserdirector_info。
創(chuàng)建索引
1.為研究生信息表的name字段建立索引
(1)在如圖10.43所示的創(chuàng)建索引的【一般信息】選項(xiàng)卡中按照?qǐng)D示進(jìn)行操作。
(2)其他選項(xiàng)卡按照默認(rèn)設(shè)置即可。
(3)上述創(chuàng)建索引的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create index "graduateuser"."研究生姓名字段索引"
on "graduateuser"."graduate_info"("name")
tablespace "indx"
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createindexgraduate.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createindexgraduate.sql 文件創(chuàng)建數(shù)據(jù)表graduateuser.graduate_info的索引“研究生姓名字段索引”。
2.為導(dǎo)師信息表的name字段建立索引
(1)在如圖10.44所示的創(chuàng)建索引的【一般信息】選項(xiàng)卡中按照?qǐng)D示進(jìn)行操作。
(2)其他選項(xiàng)卡按照默認(rèn)設(shè)置即可。
(3)上述創(chuàng)建索引的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create index "graduateuser"."導(dǎo)師姓名字段索引"
on "graduateuser"."director_info"("name")
tablespace "indx"
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createindexdirector.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createindexdirector.sql 文件創(chuàng)建數(shù)據(jù)表graduateuser.director_info的索引“導(dǎo)師姓名字段索引”。
創(chuàng)建視圖
1.為研究生信息表建立視圖
(1)在如圖10.45所示的創(chuàng)建視圖的【一般信息】選項(xiàng)卡中按照?qǐng)D示進(jìn)行操作。
(2)其他選項(xiàng)卡按照默認(rèn)設(shè)置即可。
(3)上述創(chuàng)建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_graduate" as
select *
from graduateuser.graduate_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewgraduate.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createviewgraduate.sql文件創(chuàng)建數(shù)據(jù)表graduateuser.graduate_info的視圖“view_graduate”。
2.為專業(yè)信息表建立視圖
(1)在如圖10.46所示的創(chuàng)建視圖的【一般信息】選項(xiàng)卡中按照?qǐng)D示進(jìn)行操作。
(2)其他選項(xiàng)卡按照默認(rèn)設(shè)置即可。
(3)上述創(chuàng)建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_major" as
select *
from graduateuser.major_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewmajor.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createviewmajor.sql文件創(chuàng)建數(shù)據(jù)表graduateuser.major_info的視圖“view_major”。
2.為導(dǎo)師信息表建立視圖
(1)在如圖10.47所示的創(chuàng)建視圖的【一般信息】選項(xiàng)卡中按照?qǐng)D示進(jìn)行操作。
(2)其他選項(xiàng)卡按照默認(rèn)設(shè)置即可。
(3)上述創(chuàng)建視圖的sql代碼如下。
―――――――――――――――――――――――――――――――――――――
create or replace view "graduateuser"."view_director" as
select *
from graduateuser.director_info with read only
―――――――――――――――――――――――――――――――――――――
【參見光盤文件】:第10章/createviewdirector.sql。
(4)讀者可以直接在【sqlplus worksheet】中執(zhí)行createviewdirector.sql 文件創(chuàng)建數(shù)據(jù)表graduateuser.director_info的視圖“view_director”
vb工程總體框架
開發(fā)完成的研究生管理信息系統(tǒng)的總體框架如表10.7所示。
【參見光盤文件】:第10章/研究生管理信息系統(tǒng).vbp。
系統(tǒng)是如何運(yùn)行的
(1)啟動(dòng)vb,打開配套光盤的工程文件。
(2)如圖10.48所示。
(3)出現(xiàn)如圖10.49所示的工程屬性的【通用】選項(xiàng)卡。
(4)打開模塊module1,查看名為main的過程的代碼如下。說明main過程將啟動(dòng)名為frmmain的主窗體。
(5)編輯名為frmmain的主窗體,如圖10.50所示。
(6)出現(xiàn)如圖10.51所示的【菜單編輯器】界面,可以查看主窗體的菜單設(shè)計(jì)。
工程中設(shè)計(jì)的菜單如表10.8所示。
(7)為什么這些菜單可以調(diào)用這些子窗體或者執(zhí)行退出主窗體的操作呢?在圖10.50的主窗體中用鼠標(biāo)雙擊,在出現(xiàn)的代碼窗口中的主要代碼如下。
―――――――――――――――――――――――――――――――――――――
‘選擇菜單項(xiàng)directorinsertmenu后將顯示子窗體forminsertdirector
private sub directorinsertmenu_click()
forminsertdirector.show
end sub
‘選擇菜單項(xiàng)directorselectmenu 后將顯示子窗體formselectdirector
private sub directorselectmenu_click()
formselectdirector.show
end sub
‘選擇菜單項(xiàng)directorupdatemenu后將顯示子窗體formupdatedirector
private sub directorupdatemenu_click()
formupdatedirector.show
end sub
‘選擇菜單項(xiàng)graduateinsertmenu后將顯示子窗體forminsertgraduate
private sub graduateinsertmenu_click()
forminsertgraduate.show
end sub
‘選擇菜單項(xiàng)graduateselectmenu后將顯示子窗體formselectgraduate
private sub graduateselectmenu_click()
formselectgraduate.show
end sub
‘選擇菜單項(xiàng)graduateupdatemenu后將顯示子窗體formupdategraduate
private sub graduateupdatemenu_click()
formupdategraduate.show
end sub
‘選擇菜單項(xiàng)majorinsertmenu后將顯示子窗體forminsertmajor
private sub majorinsertmenu_click()
forminsertmajor.show
end sub
‘選擇菜單項(xiàng)majorupdatemenu后將顯示子窗體formupdatemajor
private sub majorupdatemenu_click()
formupdatemajor.show
end sub
‘選擇菜單項(xiàng)exitmenu后將顯示退出主窗體
private sub exitmenu_click()
end
end sub
―――――――――――――――――――――――――――――――――――――
模塊的設(shè)計(jì)
模塊module1的其他主要代碼如下。
―――――――――――――――――――――――――――――――――――――
‘定義了名為connectstring的無(wú)參數(shù)函數(shù),連接數(shù)據(jù)庫(kù)
public function connectstring() as string
connectstring = "dsn=graduatedb;uid=graduateuser;pwd=12345678"
end function
‘定義了名為executesql的帶參數(shù)函數(shù),參數(shù)sql和msgstring都為字符串型。該函數(shù)用于執(zhí)行sql語(yǔ)句。
public function executesql(byval sql as string, msgstring as string) as adodb.recordset
‘conn為adodb的connection連接對(duì)象
dim conn as adodb.connection
‘rest為adodb的記錄集對(duì)象
dim rest as adodb.recordset
‘若執(zhí)行sql錯(cuò)誤轉(zhuǎn)向executesql_error標(biāo)記處
on error goto executesql_error
set conn = new adodb.connection
‘連接數(shù)據(jù)庫(kù)
conn.open connectstring
set rest = new adodb.recordset
‘執(zhí)行sql字符串語(yǔ)句
rest.open trim$(sql), conn, adopenkeyset, adlockoptimistic
set executesql = rest
msgstring = "查詢到" & rest.recordcount & " 條記錄"
‘執(zhí)行sql完畢后關(guān)閉連接和記錄集
executesql_exit:
set rest = nothing
set conn = nothing
exit function
‘執(zhí)行sql錯(cuò)誤時(shí)的處理方法
executesql_error:
msgstring = "查詢錯(cuò)誤: " & _
err.description
resume executesql_exit
end function
‘定義了名為checktxt的帶參數(shù)函數(shù),參數(shù)txt為字符串型。該函數(shù)用于檢測(cè)txt字符串是否有內(nèi)容。
public function checktxt(txt as string) as boolean
if trim(txt) = "" then
checktxt = false
else
checktxt = true
end if
end function
―――――――――――――――――――――――――――――――――――――
各子窗體的設(shè)計(jì)
1.添加信息窗體的設(shè)計(jì)
打開名為forminsertgraduate的子窗體,如圖10.52所示。
窗體的設(shè)計(jì)如表10.8所示。
表10.8 子窗體forminsertgraduate的設(shè)計(jì)
窗體的程序代碼分析如下。
2.修改信息窗體的設(shè)計(jì)
打開名為formupdategraduate的子窗體,如圖10.53所示。
窗體的設(shè)計(jì)如表10.10所示。
窗體的程序代碼分析如下。
3查詢信息窗體的設(shè)計(jì)
打開名為formselectgraduate的子窗體,如圖10.54所示。窗體的設(shè)計(jì)如表10.11所示。
窗體的代碼設(shè)計(jì)如下。
新聞熱點(diǎn)
疑難解答