欧美久久天天综合香蕉伊,h片在线免费观看,九九欧美,欧美1区2区3区,日本在线不卡一区,国产视频久久久,91久久久久久久

2023信創(chuàng)獨(dú)角獸企業(yè)100強(qiáng)
全世界各行各業(yè)聯(lián)合起來(lái),internet一定要實(shí)現(xiàn)!

快速搭建ERP的數(shù)據(jù)庫(kù)框架

2004-02-10 eNet&Ciweek

 ?。ū疚囊詓ql server為數(shù)據(jù)庫(kù)服務(wù)器,t-sql是標(biāo)準(zhǔn)sql語(yǔ)言的擴(kuò)充。)在ERP的軟件中,數(shù)據(jù)庫(kù)是它的靈魂。每一個(gè)ERP軟件都有自己的數(shù)據(jù)庫(kù),而這些數(shù)據(jù)庫(kù)中最關(guān)鍵的是數(shù)據(jù)庫(kù)框架。那么什么是數(shù)據(jù)庫(kù)框架?他的作用是什么?為什么要在安裝時(shí)搭建數(shù)據(jù)庫(kù)框架?本文就來(lái)解答這些問(wèn)題。

  在編寫ERP,MIS,S/B等數(shù)據(jù)庫(kù)的應(yīng)用程序時(shí),首先要做的一件事就是建立數(shù)據(jù)庫(kù)框架,它至少包括:數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的表,當(dāng)然還有視圖、存儲(chǔ)過(guò)程等,這就是數(shù)據(jù)庫(kù)框架(不含具體的數(shù)據(jù))。然后是使用vb,vc,vfp,pb等編程語(yǔ)言開發(fā)用戶界面,接受用戶對(duì)數(shù)據(jù)庫(kù)的操作。當(dāng)你成功的開發(fā)了一個(gè)ERP軟件后,你需要將它打包,最后交給客戶安裝并使用。這時(shí)就有一個(gè)問(wèn)題,當(dāng)你打包的時(shí)候,不可以將sql server打包到安裝程序中,所以用戶在使用時(shí)就必須先建立數(shù)據(jù)庫(kù)框架,而用戶并不知道數(shù)據(jù)庫(kù)的框架結(jié)構(gòu),ERP軟件又必須訪問(wèn)特定的數(shù)據(jù)庫(kù)框架才可以成功運(yùn)行,這時(shí)我們就需要有一個(gè)可以自動(dòng)生成數(shù)據(jù)庫(kù)框架的程序。舉個(gè)例:當(dāng)開發(fā)一個(gè)人力資源管理系統(tǒng)時(shí),需要一個(gè)數(shù)據(jù)庫(kù)框架,這最起碼在數(shù)據(jù)庫(kù)包含一個(gè)表,表中包含姓名,年齡,工資等信息,然后通過(guò)客戶端來(lái)訪問(wèn)這個(gè)表。如果沒(méi)有這個(gè)表,程序就不可能成功的運(yùn)行?,F(xiàn)在大家清楚了什么是數(shù)據(jù)庫(kù)框架和他的作用了吧!

  現(xiàn)在的ERP軟件中都帶有自動(dòng)生成數(shù)據(jù)庫(kù)框架的功能,不同軟件的實(shí)現(xiàn)方法不同,總結(jié)一下,大約有3種:

  1.以向?qū)У男问匠霈F(xiàn);

  2.在安裝時(shí)以配置系統(tǒng)的形式出現(xiàn);

  3.集成在主程序中,當(dāng)主程序第一次運(yùn)行的時(shí)候自動(dòng)生成數(shù)據(jù)庫(kù)框架。

  不論是那種方式,他們的用途都是一樣。    

    如果大家有《管家婆》的ERP,可以安裝來(lái)看看。它要求先安裝sql server ,安裝完后打開sql server你會(huì)發(fā)現(xiàn)sql server數(shù)據(jù)庫(kù)中只有它默認(rèn)的幾個(gè)數(shù)據(jù)庫(kù),并沒(méi)什么不同。接著開始安裝《管家婆》,安裝完后隨便用一下他的功能,再大開sql server你會(huì)發(fā)現(xiàn),數(shù)據(jù)庫(kù)已不同了,增加了一些數(shù)據(jù)庫(kù)(增加的數(shù)據(jù)庫(kù)因使用的功能和《管家婆》的版本不同而不同)。這些增加的數(shù)據(jù)庫(kù)就是為了使用數(shù)據(jù)庫(kù)框架自動(dòng)生成。

  那么,如何用程序?qū)崿F(xiàn)自動(dòng)生成數(shù)據(jù)庫(kù)框架?現(xiàn)在,我們就來(lái)創(chuàng)建一個(gè)這樣的程序。在本程序中共建立5個(gè)按鈕分別是:建立數(shù)據(jù)庫(kù),建立表,建立約束,建立存儲(chǔ)過(guò)程,顯示數(shù)據(jù)。實(shí)現(xiàn)的代碼如下:

  Public Class Form1

  Inherits System.Windows.Forms.Form

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

  Handles Button1.Click

  Dim con As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated

  Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data

  Source=.;Use Procedure for Prepare=1;Auto Translate=True;Packet

  Size=4096;Workstation ID=J;Use Encryption for Data=False;Tag with column collation

  when possible=False")

  con.Open()

  Dim cmd As New OleDb.OleDbCommand("create database jk", con)

  cmd.ExecuteNonQuery()

  con.Close()

  '建立數(shù)據(jù)庫(kù)

  End Sub

  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

  System.EventArgs) Handles Button2.Click

  Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use

  Encryption for Data=False;Tag with column collation when possible=False")

  con2.Open()

  Dim cmd As New OleDb.OleDbCommand("create table kk(id int identity(1,1) not

  null constraint id primary key,name char(4) not null)", con2)

  cmd.ExecuteNonQuery()

  Dim cmd2 As New OleDb.OleDbCommand("create table pp(id int not null,ads

  char(20) null)", con2)

  cmd2.ExecuteNonQuery()

  con2.Close()

  '建立2個(gè)表

  End Sub

  Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

  System.EventArgs) Handles Button3.Click

  Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use

  Encryption for Data=False;Tag with column collation when possible=False")

  con2.Open()

  Dim com As New OleDb.OleDbCommand("alter table pp add primary key (id)",

  con2)

  com.ExecuteNonQuery()

  con2.Close()

  '建立約束

  End Sub

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As

  System.EventArgs) Handles Button4.Click

  Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use

  Encryption for Data=False;Tag with column collation when possible=False")

  con2.Open()  

  Dim com As New OleDb.OleDbCommand("create proc procname as select * from

  kk", con2)

  com.ExecuteNonQuery()

  con2.Close()

  '建立存儲(chǔ)過(guò)程

  End Sub

  Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As

  System.EventArgs) Handles Button5.Click

   Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use

  Encryption for Data=False;Tag with column collation when possible=False")

  Dim com As New OleDb.OleDbCommand("procname", con2)

  Dim da As New OleDb.OleDbDataAdapter()

  da.SelectCommand = com

  Dim ds As New DataSet()

  da.Fill(ds)

  DataGrid1.DataSource = ds

  '顯示數(shù)據(jù)

  End Sub

  End Class

  (未完)
  在Button1_Click中,連接對(duì)象的連接字符串和其他Button_Click中的連接字符串不同。因?yàn)槲议T要?jiǎng)?chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)jk,但是這個(gè)數(shù)據(jù)庫(kù)并不存在,所以要通過(guò)這個(gè)連接讓它連接到一個(gè)sql server中已有的數(shù)據(jù)庫(kù),獲得對(duì)整個(gè)sql server的的訪問(wèn)控制權(quán)限,再建立jk數(shù)據(jù)庫(kù)。而其它的Button_Click直接連接到j(luò)k數(shù)據(jù)庫(kù)。因?yàn)槲覀円趈k數(shù)據(jù)庫(kù)中建立表,存儲(chǔ)過(guò)程,約束,顯示數(shù)據(jù)。

  程序中Button2_Click建立了兩個(gè)表,kk和pp。其中kk包括一個(gè)種子列并且設(shè)定為主鍵。Pp是一個(gè)一般的表,在Button3_Click中建立它的主鍵約束。當(dāng)然我們也可以建立其它的約束,只要改變t-sql語(yǔ)句就可以了。

  Button_Click的存儲(chǔ)過(guò)程是查詢kk表中數(shù)據(jù),由于沒(méi)有輸入到kk表中的數(shù)據(jù),所以運(yùn)行后將會(huì)看見kk表是空的(如圖)。但是這并不重要,因?yàn)閷?duì)于ERP來(lái)說(shuō),所有的數(shù)據(jù)都是可以在客戶端輸入的,要的只是數(shù)據(jù)庫(kù)框架。

  


  細(xì)心的讀者一定會(huì)發(fā)現(xiàn)我沒(méi)有建立表的關(guān)系,其實(shí)大家想一下在sql server中雖然提供了可視工具來(lái)創(chuàng)建表的關(guān)系,但是說(shuō)到底還是用的t-sql語(yǔ)句來(lái)建立,不信的話大家可以打開腳本文件來(lái)看看,如果你有微軟的sql server的培訓(xùn)教材,打開實(shí)驗(yàn)部分看看就會(huì)發(fā)現(xiàn),表的關(guān)系是用t-sql語(yǔ)句來(lái)寫的,你只要將本文的存儲(chǔ)過(guò)程的語(yǔ)句變成相應(yīng)的關(guān)系語(yǔ)句就可以了。對(duì)于視圖也是一樣。

  在測(cè)試這個(gè)程序時(shí)請(qǐng)大家按照Button1,Button2,Button3, Button4,Button5的順序來(lái)單擊,這樣就可以完成建立數(shù)據(jù)庫(kù)框架的功能,你也可以把前4個(gè)部分寫到一個(gè)模塊中。由于每一臺(tái)計(jì)算機(jī)的數(shù)據(jù)庫(kù)服務(wù)器的名字不一樣,所以在測(cè)試代碼時(shí)要將連接字符串中的服務(wù)器指定為當(dāng)前的數(shù)據(jù)庫(kù)服務(wù)器名字。

  本文所介紹的實(shí)例在vb.net ,win2000 sp2, sql server 2000中驗(yàn)證通過(guò)。(完)

相關(guān)頻道: eNews

您對(duì)本文或本站有任何意見,請(qǐng)?jiān)谙路教峤?,謝謝!

投稿信箱:tougao@enet16.com