» 网友学堂 » MSSQL教程 » 快速搭建ERP的数据库框架 -> 查看 2007年02月20日 更新
快速搭建ERP的数据库框架
作者:问天 发表时间:2007-2-20 11:55 阅读:273次 在百度搜索相关内容

(本文以sql server为数据库服务器,t-sql是标准sql语言的扩充。)在ERP的软件中,数据库是它的灵魂。每一个ERP软件都有自己的数据库,而这些数据库中最关键的是数据库框架。那么什么是数据库框架?他的
作用是什么?为什么要在安装时搭建数据库框架?本文就来解答这些问题。
  在编写ERP,MIS,S/B等数据库的应用程序时,首先要做的一件事就是建立数据库框架,它至少包括:数据库和数据库中的表,当然还有视图、存储过程等,这就是数据库框架(不含具体的数据)。然后是使用vb,vc,vfp,pb等编程语言开发用户界面,接受用户对数据库的操作。当你成功的开发了一个ERP软件后,你需要将它打包,最后交给客户安装并使用。这时就有一个问题,当你打包的时候,不可以将sql server打包到安装程序中,所以用户在使用时就必须先建立数据库框架,而用户并不知道数据库的框架结构,ERP软件又必须访问特定的数据库框架才可以成功运行,这时我们就需要有一个可以自动生成数据库框架的程序。举个例:当开发一个人力资源管理系统时,需要一个数据库框架,这最起码在数据库包含一个表,表中包含姓名,年龄,工资等信息,然后通过客户端来访问这个表。如果没有这个表,程序就不可能成功的运行。现在大家清楚了什么是数据库框架和他的作用了吧!
  现在的ERP软件中都带有自动生成数据库框架的功能,不同软件的实现方法不同,总结一下,大约有3种:
[color=#FFFFFF'][/color]

  1.以向导的形式出现;
  2.在安装时以配置系统的形式出现;
  3.集成在主程序中,当主程序第一次运行的时候自动生成数据库框架。
  不论是那种方式,他们的用途都是一样。    
    如果大家有《管家婆》的ERP,可以安装来看看。它要求先安装sql server ,安装完后打开sql server你会发现sql server数据库中只有它默认的几个数据库,并没什么不同。接着开始安装《管家婆》,安装完后随便用一下他的功能,再大开sql server你会发现,数据库已不同了,增加了一些数据库(增加的数据库因使用的功能和《管家婆》的版本不同而不同)。这些增加的数据库就是为了使用数据库框架自动生成。
  那么,如何用程序实现自动生成数据库框架?现在,我们就来创建一个这样的程序。在本程序中共建立5个按钮分别是:建立数据库,建立表,建立约束,建立存储过程,显示数据。实现的代码如下:
  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
[color=#FFFFFF'][/color]

  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")
[color=#FFFFFF'][/color]

  con.Open()
  Dim cmd As New OleDb.OleDbCommand("create database jk", con)
  cmd.ExecuteNonQuery()
[color=#FFFFFF'][/color]

  con.Close()
  '建立数据库
  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
[color=#FFFFFF'][/color]

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use
[color=#FFFFFF'][/color]

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use
[color=#FFFFFF'][/color]

  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()
[color=#FFFFFF'][/color]

  Dim cmd2 As New OleDb.OleDbCommand("create table pp(id int not null,ads
  char(20) null)", con2)
  cmd2.ExecuteNonQuery()
  con2.Close()
[color=#FFFFFF'][/color]


'建立2个表
  End Sub
[color=#FFFFFF'][/color]

  Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
  System.EventArgs) Handles Button3.Click
[color=#FFFFFF'][/color]

  Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
[color=#FFFFFF'][/color]

  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()
[color=#FFFFFF'][/color]

  '建立约束
  End Sub
[color=#FFFFFF'][/color]

  Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
[color=#FFFFFF'][/color]

  System.EventArgs) Handles Button4.Click
  Dim con2 As New OleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
[color=#FFFFFF'][/color]

  Security=SSPI;Persist Security Info=False;Initial Catalog=jk;Data Source=.;Use
[color=#FFFFFF'][/color]

  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()
[color=#FFFFFF'][/color]

  '建立存储过程
  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
[color=#FFFFFF'][/color]

  Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=J;Use
[color=#FFFFFF'][/color]

  Encryption for Data=False;Tag with column collation when possible=False")
  Dim com As New OleDb.OleDbCommand("procname", con2)
[color=#FFFFFF'][/color]

  Dim da As New OleDb.OleDbDataAdapter()
[color=#FFFFFF'][/color]

  da.SelectCommand = com
  Dim ds As New DataSet()
  da.Fill(ds)
  DataGrid1.DataSource = ds
  '显示数据
  End Sub
  End Class

#Advertisement