快速搭建ERP的数据库框架
(本文以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