【正文】
DO的對象模型是所有數(shù)據(jù)訪問接口對象模型中最簡單的一種。OLEDB提供了訪問任何數(shù)據(jù)資源的方法,包括相互關(guān)聯(lián)的數(shù)據(jù)庫和相互不關(guān)聯(lián)的數(shù)據(jù)庫、Email和文件系統(tǒng)、文本和圖形以及用戶定義的數(shù)據(jù)對象。Recordset 對象可支持兩類更新:立即更新和批更新。Recordset對象含有由Field對象組成的Fields集合。MoveFirst、MoveLast、MoveNext 和MovePrevious方法:在指定 Recordset 對象中移動(dòng)到第一個(gè)、最后一個(gè)、下一個(gè)或前一個(gè)記錄并使該記錄成為當(dāng)前記錄。Execute方法:執(zhí)行指定的查詢、SQL語句、存儲過程或特定提供者的文本等內(nèi)容。其功能分別敘述如下:216。216。216。第二節(jié) SQL語言SQL(Structured Query Language,結(jié)構(gòu)查詢語言)是一個(gè)功能強(qiáng)大的數(shù)據(jù)庫語言。使用SQL的常見關(guān)系數(shù)據(jù)庫管理系統(tǒng)有:Oracle、 Sybase、 Microsoft SQL Server、 Access等等。SQL語言有著非常突出的優(yōu)點(diǎn),SQL語言是非過程化的語言、統(tǒng)一的語言、是所有關(guān)系數(shù)據(jù)庫的公共語言。統(tǒng)一的語言:SQL可用于所有用戶的DB活動(dòng)模型,包括系統(tǒng)管理員、數(shù)據(jù)庫管理員、 應(yīng)用程序員、決策支持系統(tǒng)人員及許多其它類型的終端用戶。SQL功能強(qiáng)大,是一種完備的數(shù)據(jù)處理語言,不僅用于數(shù)據(jù)庫查詢,而且用于數(shù)據(jù)庫中的數(shù)據(jù)修改和更新,概括起來,它可以分成以下幾組:DML(Data Manipulation Language,數(shù)據(jù)操作語言):用于檢索或者修改數(shù)據(jù);DDL(Data Definition Language,數(shù)據(jù)定義語言): 用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫對象;DCL(Data Control Language,數(shù)據(jù)控制語言):用于定義數(shù)據(jù)庫用戶的權(quán)限。下面是一個(gè)簡單SQL語句的例子:我們使用SQL語句來從user_info中檢索‘用戶ID’為‘000001’的用戶姓名:SELECT 姓名 FROM user_info WHERE用戶ID = ‘000001’數(shù)據(jù)定義語言DDL:它是用來創(chuàng)建和修改數(shù)據(jù)庫結(jié)構(gòu)的一種語句,包括 Create、Alter和Drop 語句。數(shù)據(jù)庫管理系統(tǒng)必須在更改期內(nèi)保護(hù)所存儲的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫,數(shù)據(jù)庫必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和它們的更改不至于影響其它用戶的作業(yè)。多行 Insert 語句為拷貝數(shù)據(jù)提供了一種緊湊而高效的方法。標(biāo)準(zhǔn)語法:UPDATE table_nameSET columnname1 = value1 [, columname2 = value2]... WHERE search_conditionDelete 語句標(biāo)準(zhǔn)語法:DELETE FROM tablename WHERE condition在信息管理系統(tǒng)中,我們往往會遇到歸類、匯總、映射、索引、子查詢等復(fù)雜操作,相應(yīng)的支持與實(shí)現(xiàn)如下:GROUP BY方法:GROUP BY子句語法為:SELECT column1, SUM(column2)FROM listoftablesGROUP BY columnlist。第四章 系統(tǒng)設(shè)計(jì)隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。第一節(jié) 系統(tǒng)功能設(shè)計(jì)房地產(chǎn)銷售系統(tǒng)是為了對房地產(chǎn)銷售企業(yè)實(shí)行計(jì)算機(jī)化的管理,以提高工作效率,方便用戶。用戶權(quán)限主要任務(wù)是提高系統(tǒng)安全性和使用性,為系統(tǒng)提供良好的維護(hù),如用戶管理可以為用戶提供權(quán)限服務(wù)。背景設(shè)置管理模塊包括:界面的顏色和圖片的自定義設(shè)置。員工信息模塊包括:顯示添加修改刪除查詢。樓房類型模塊包括:顯示添加修改刪除查詢。樓房信息模塊包括:對新樓房添加,和現(xiàn)有的樓房信息修改查詢。檢索信息管理主要包括:員工信息包括:所有字段的查詢,也包括模糊查詢(like)和Excel輸出。第二節(jié) 系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 登錄模塊結(jié)構(gòu)流程圖:如圖41。數(shù)據(jù)庫設(shè)計(jì)時(shí)需要綜合企業(yè)各個(gè)部門的存檔數(shù)據(jù)和數(shù)據(jù)需求,分析各個(gè)數(shù)據(jù)之間的關(guān)系,按照DBMS提供的功能和描述工具,設(shè)計(jì)出規(guī)模適當(dāng)、正確反映數(shù)據(jù)關(guān)系、數(shù)據(jù)冗余少、存取效率高、能滿足多種查詢要求的數(shù)據(jù)模型。關(guān)系型數(shù)據(jù)庫要盡量按關(guān)系規(guī)范化要求進(jìn)行數(shù)據(jù)庫設(shè)計(jì),但為使效率高,規(guī)范化程度應(yīng)根據(jù)應(yīng)用環(huán)境和條件來決定。數(shù)據(jù)字典設(shè)計(jì):用數(shù)據(jù)字典描述數(shù)據(jù)庫的設(shè)計(jì),便于維護(hù)和修改。部分表結(jié)構(gòu)如下:房屋信息表結(jié)構(gòu)如圖:圖46圖46房屋信息表房型信息表結(jié)構(gòu)如下:圖47圖47 房型信息表公司基本信息表:圖48圖48公司基本信息表客戶信息表:圖49圖49 客戶信息表樓房信息表:圖410圖410 樓房信息表樓盤信息表:圖411圖411 樓盤信息表銷售信息表:圖412圖412 銷售信息表員工信息表:圖413圖413員工信息表用戶信息表:圖414圖414 用戶信息表其他的表請參考數(shù)據(jù)庫,表名如下:圖415圖415表名第五章 系統(tǒng)開發(fā)實(shí)現(xiàn)應(yīng)用程序是用VB開發(fā)的,界面設(shè)計(jì)的簡單明了。圖51 登錄界面根據(jù)登錄模塊的功能,管理員和普通用戶界面統(tǒng)一在一起。數(shù)據(jù)庫的連接采用的是ADO對象。 \。在系統(tǒng)功能設(shè)計(jì)中,系統(tǒng)維護(hù)功能主要有添加用戶,刪除用戶,和管理員密碼修改,如圖53所示。管理員密碼數(shù)據(jù)庫的用戶信息表項(xiàng)里。如果系統(tǒng)已經(jīng)添加的該用戶,系統(tǒng)自動(dòng)提示,重新添加。圖54 用戶密碼修改修改密碼:在舊密碼輸入你的登錄密碼,在新密碼中輸入新密碼,在新密碼核實(shí)中再輸入一次新密碼。這樣下一次再進(jìn)入本系統(tǒng)時(shí)本用戶的密碼就改為新密碼。也是本次開發(fā)的重點(diǎn)。各按鈕的功能:(所有管理界面):移動(dòng)到第一條記錄。添加:是添加一新的記錄。修改:移動(dòng)到要修改的記錄,點(diǎn)修改,修改完后,點(diǎn)保存后就修改完畢。圖55 員工信息輸入界面圖56 信息瀏覽第五節(jié) 查詢查詢打印模塊包括客戶信息、員工信息、銷售信息表,客戶報(bào)表的打印,查詢以客戶信息表為例,如圖57所示。在查詢完后,可以在如圖57中輸出Excel報(bào)表。代碼實(shí)現(xiàn)請參考附錄程序源代碼。 內(nèi)存:32MB以上。 第二節(jié) 系統(tǒng)的維護(hù) 系統(tǒng)維護(hù)的目的是保證管理信息系統(tǒng)正常而可靠地運(yùn)行,并能使系統(tǒng)不斷得到改善和提高,以充分發(fā)揮作用。(2)適應(yīng)性維護(hù) 使系統(tǒng)適用環(huán)境的變化而進(jìn)行的維護(hù)。 本系統(tǒng)的維護(hù)模塊本系統(tǒng)的維護(hù)功能主要是為保證系統(tǒng)能夠正常的運(yùn)行。這些都有待進(jìn)一步改善。1 .本次的課題設(shè)計(jì)首先分析了管理系統(tǒng)目前在國內(nèi)外的發(fā)展?fàn)顩r及需求分析。首先便是調(diào)研的不充分。然后,會用了兩種軟件,如何把它們連接在一起還真是一件困難的事:選擇連接的方法就很重要,通過各方面的比較,我選擇了ADO,通過ADO控件與數(shù)據(jù)庫中各表進(jìn)行連接,同時(shí)也用到少數(shù)編程實(shí)現(xiàn)VB和ACCESS數(shù)據(jù)庫的連接。最后就是從一而終的問題了,在開發(fā)過程中我遇到了許許多多的問題,很多地方都不明白,經(jīng)常有打退堂鼓的想法,我經(jīng)常的請教同學(xué)和老師,最后的成果雖然不很完美,但我盡力了,并有所收獲。他無論在理論上還是在實(shí)踐中,都給與我很大的幫助,使我得到不少的提高,即使在百忙中,抽出了很多時(shí)間對我的論文進(jìn)行的批改和修正。給予我很大的幫助,不僅幫我解答了不少的難點(diǎn),還給我提出了許多建議,我會以他們?yōu)榘駱?,更好地努力。同時(shí)感謝同組成員,我們在一起互相討論,學(xué)習(xí),解決了不少的難題。39。添加操作Dim IDmax As StringDim i As IntegerFor i = 1 To Val(Txt(0).Text) Txt(i).Text = Next i = TrueEnd SubPrivate Sub cmdRegDel_Click() 39。39。39。39。39。保存On Error GoTo ErrDim i As IntegerIf nModeSys = 1 Then If Then For i = 0 To Val(Txt(0).Text) 1 If Trim(Txt(i + 1).Text) = Then Else (i).Value = Trim(Txt(i + 1).Text) End If Next i ElseIf nModeSys = 2 Then For i = 0 To Val(Txt(0).Text) 1 If Trim(Txt(i + 1).Text) = Then Else (i).Value = Trim(Txt(i + 1).Text) End If Next i End If nModeSys = 0 = False MsgBox 操作已成功!, vbInformation + vbOKOnly, 系統(tǒng)提示Exit SubErr:MsgBox , vbInformation + vbOKOnly, 系統(tǒng)提示End SubPrivate Sub Combo1_Click() 39。39。Txt(CurrentIndex).Text = Trim() = FalseIf strTableName = 房屋信息表 Then If Lbl(CurrentIndex).Caption = 房型名稱 Then Dim rsZD As New If Then select * from 房型信息表 where 房型名稱=39。, CN, adOpenStatic, adLockOptimistic If Not Then For i = 1 To 5 If Not IsNull((i)) Then Txt(CurrentIndex + i).Text = (i) End If Next i End If End IfEnd IfOn Error GoTo ErrExit SubErr:MsgBox , vbInformation + vbOKOnly, 系統(tǒng)提示End SubPrivate Sub Command1_Click() 39。 管理(1).Text = strTableNameDim g As IntegerDim b As IntegerDim r As IntegerRandomizer = 125 + Rnd * 125Randomizeg = 125 + Rnd * 125Randomizeb = 125 + Rnd * 125 = RGB(r, g, b) = RGB(b, r, g) = RGB(g, b, r) = strTableNameIf strTableName = 公司基本信息表 Then = FalseElse = TrueEnd IfCall Combo1_ClickEnd SubPrivate Sub Txt_Click(Index As Integer)39。判斷是否有字典字段CurrentIndex = Index = False = FalseDim ss As Stringss = Mid(Trim(Lbl(Index).Caption), Len(Trim(Lbl(Index).Caption)) 1, 2)If ss = 日期 Then = Txt(Index).Top = Txt(Index).Left = Txt(Index).Width = TrueExit SubEnd If39。 Trim() amp。 Trim(Lbl(Index).Caption) amp。 from amp。記錄集,檢索用的Private Sub cmdExcel_Click() 39。設(shè)置活動(dòng)工作表 For i = 0 To 1 For j = 0 To 1 (i + 1, j + 1) = Trim((i, j)) Next j Next i = TrueExit SubErr:MsgBox , , 錯(cuò)誤 (True) 39。39。 amp。 Trim() amp。 Mid(Trim(), 10, 3) amp。 39。 Trim() amp。 If = like Then strSql = strSql amp。 Else strSql = strSql amp。39。39。39。39。39。查看的表名Public UserName As String 39。39。 0 amp。 _