我學(xué)習(xí)VB編程時(shí),,常常喜歡使用數(shù)據(jù)庫(kù),。在我的VB處女作之《學(xué)五筆多媒體教學(xué)系統(tǒng)4.00》中使用的數(shù)據(jù)庫(kù),但那時(shí)我還不會(huì)讓程序自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù),是事先創(chuàng)建好,,供VB程序調(diào)用的,。后來(lái)在我寫的《股票管理大師》中我就利用VB編程自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)供程序調(diào)用。
自從我學(xué)會(huì)了用VB程序自動(dòng)創(chuàng)建Access數(shù)據(jù)庫(kù)后,,我放棄了事先創(chuàng)建,,喜歡由VB程序自動(dòng)創(chuàng)建。我覺(jué)得自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)有如下幾點(diǎn)好處: 首先,,安裝程序丟下了這個(gè)數(shù)據(jù)庫(kù)尾巴,。事先創(chuàng)建好的數(shù)據(jù)庫(kù),在安裝程序時(shí)一定要帶著這個(gè)數(shù)據(jù)庫(kù),,并將其安裝到用戶的電腦上,,就象一個(gè)尾巴一個(gè),走到哪里就帶到哪里,。感覺(jué)是個(gè)負(fù)擔(dān),。如果由VB程序自動(dòng)來(lái)創(chuàng)建所需的數(shù)據(jù)庫(kù),就不需要安裝程序老是帶著這個(gè)數(shù)據(jù)庫(kù)了,。因?yàn)檫@個(gè)數(shù)據(jù)庫(kù)是由程序自己按照要求隨時(shí)創(chuàng)建的,。 其次,用戶數(shù)據(jù)更加安全,。由于事先創(chuàng)建的數(shù)據(jù)庫(kù)是由安裝程序帶著走的,,并由其安裝到用戶的電腦上,如果用戶需要重新安裝的話,,通常會(huì)先缷載,,而在缷載時(shí),這個(gè)可能保存了用戶很多重要數(shù)據(jù)的數(shù)據(jù)庫(kù)也會(huì)被刪除,,重新安裝后由安裝帶著的那個(gè)原來(lái)數(shù)據(jù)庫(kù)被重新安裝到了用戶電腦上,,先前的數(shù)據(jù)可能完全被丟失了。由VB程序自動(dòng)創(chuàng)建的數(shù)據(jù)庫(kù)就不會(huì)發(fā)生這種事情,,缷載時(shí)也不會(huì)被刪除,,重新安裝應(yīng)用程序也不會(huì)重新來(lái)創(chuàng)建這個(gè)數(shù)據(jù)庫(kù),這只要在程序中判斷一下即可實(shí)現(xiàn),。用戶的數(shù)據(jù)不會(huì)因缷載重新安裝而丟失,。 第三,方便程序升級(jí),。程序在用戶手中使用后,,通常會(huì)反饋一些很有價(jià)值的意見(jiàn)和建議,這就需要對(duì)原程序進(jìn)行升級(jí),。有時(shí)就會(huì)對(duì)原數(shù)據(jù)庫(kù)結(jié)構(gòu)進(jìn)行一些修改,,如果是事先創(chuàng)建就非常麻煩了,,采用編程自動(dòng)創(chuàng)建的就比較方便。 VB6編程創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù)需要在工程中先引用Microsoft ADD Ext. 2.8 for DLL and Security,,然后定義兩個(gè)變量,,比如: Dim cat As New ADOX.Catalog Dim tbl As New ADOX.Table 現(xiàn)在可以用下面這句代碼來(lái)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件(比如文件名為abc.mdb,保存在D盤根目錄下): cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\abc.mdb" 用下面這段代碼可以創(chuàng)建一個(gè)表其及字段: With tbl .Name="MyContacts" '表名 .Set .ParentCatalog=cat
.Columns.Append "ContactId",adInteger '創(chuàng)建一個(gè)字段名為ContactId的字段 .Columns("ContactId").Properties("AutoIncrement")=True '設(shè)置字段ContactId的數(shù)據(jù)類型為自動(dòng)編號(hào) .Keys.Append "kCid",adKeyPrimary,"ContactId" '設(shè)置字段ContactId為主鍵
.Columns.Append "CustomerID",adVarWChar '創(chuàng)建一個(gè)字段名為CustomerID的字符型字段 .Columns("CustomerID").Properties("Default")="DDDD" '設(shè)置字段CustomerID的默認(rèn)值為"DDDD" .Indeses.Append "cID","CustomerID" '對(duì)字段CustomerID建一個(gè)索引
.Columns.Append "FirstName",adVarWChar .Indexes.Append "Fir","FirstName" .Kesy.Append "kFir",adKeyUnique,"FirstName" '加上這句,,即完成建立一個(gè)無(wú)重復(fù)的索引,。
End With
cat.Tables.Append tbl
至此,,VB6完成了自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù),。 |
|