首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
ASP | ASP.NET | JSP | PHP | AJAX | XML | Java script | HTML/CSS | 服务器类
各大城市软件开发培训、软件人才免费咨询热线:400-700-5807
 您现在的位置: 中国IT实验室 >> WEB开发 >> WEB开发 >> 正文
初探ERP软件中的数据库框架
ChinaItLab  2004-12-23  保存本文    收藏本站


  在ERP的软件中,数据库是它的灵魂。每一个ERP软件都有自己的数据库,而这些数据库中最关键的是数据库框架。那么什么是数据库框架?他的作用是什么?为什么要在安装时搭建数据库框架?本文就来解答这些问题。
  
  在编写ERP,MIS,S/B等数据库的应用程序时,首先要做的一件事就是建立数据库框架,它至少包括:数据库和数据库中的表,当然还有视图、存储过程等,这就是数据库框架(不含具体的数据)。然后是使用vb,vc,vfp,pb等编程语言开发用户界面,接受用户对数据库的操作。当你成功的开发了一个ERP软件后,你需要将它打包,最后交给客户安装并使用。这时就有一个问题,当你打包的时候,不可以将sql server打包到安装程序中,所以用户在使用时就必须先建立数据库框架,而用户并不知道数据库的框架结构,ERP软件又必须访问特定的数据库框架才可以成功运行,这时我们就需要有一个可以自动生成数据库框架的程序。举个例:当开发一个人力资源管理系统时,需要一个数据库框架,这最起码在数据库包含一个表,表中包含姓名,年龄,工资等信息,然后通过客户端来访问这个表。如果没有这个表,程序就不可能成功的运行。现在大家清楚了什么是数据库框架和他的作用了吧!
  
  现在的ERP软件中都带有自动生成数据库框架的功能,不同软件的实现方法不同,总结一下,大约有3种:
  
  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
  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()
  '建立数据库
  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个表
  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()
  '建立存储过程
  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
  '显示数据
  End Sub
  End Class
  
  在Button1_Click中,连接对象的连接字符串和其他Button_Click中的连接字符串不同。因为我门要创建一个新的数据库jk,但是这个数据库并不存在,所以要通过这个连接让它连接到一个sql server中已有的数据库,获得对整个sql server的的访问控制权限,再建立jk数据库。而其它的Button_Click直接连接到jk数据库。因为我们要在jk数据库中建立表,存储过程,约束,显示数据。
  
  程序中Button2_Click建立了两个表,kk和pp。其中kk包括一个种子列并且设定为主键。Pp是一个一般的表,在Button3_Click中建立它的主键约束。当然我们也可以建立其它的约束,只要改变t-sql语句就可以了。
  
  Button_Click的存储过程是查询kk表中数据,由于没有输入到kk表中的数据,所以运行后将会看见kk表是空的。但是这并不重要,因为对于ERP来说,所有的数据都是可以在客户端输入的,要的只是数据库框架。
  
  细心的读者一定会发现我没有建立表的关系,其实大家想一下在sql server中虽然提供了可视工具来创建表的关系,但是说到底还是用的t-sql语句来建立,不信的话大家可以打开脚本文件来看看,如果你有微软的sql server的培训教材,打开实验部分看看就会发现,表的关系是用t-sql语句来写的,你只要将本文的存储过程的语句变成相应的关系语句就可以了。对于视图也是一样。
  
  在测试这个程序时请大家按照Button1,Button2,Button3, Button4,Button5的顺序来单击,这样就可以完成建立数据库框架的功能,你也可以把前4个部分写到一个模块中。由于每一台计算机的数据库服务器的名字不一样,所以在测试代码时要将连接字符串中的服务器指定为当前的数据库服务器名字。
  
  本文所介绍的实例在win2000 sp2, sql server 2000中验证通过。
中国IT教育热线咨询
相关文章
Flash+PHP+Mysql简单留言本制作实例教程
基础知识:Java Web三层架构的配置详解
使用AJAX技术构建更优秀的Web应用程序
ASP应用程序设计的Web状态管理分析
Ajax驱动的Web站点
最新文章
·Ajax光环背后的隐患
·Windows操作系统下JSP程序开发环
·如何在Java程序中实现FTP的上传下
·Java应用:编写高级JavaScript应
·初学者学习java第一步——JDK环境
 文章评论

 精彩友情推荐
·Asp源码 PHP源码
·CGI源码 JSP源码
·建站书籍教程
·服务器软件 .net源码
·建站工具软件
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
ASP.NET ASP PHP JSP
·ASP.NET开发中的八个最佳实践09-21
·ASP.NET开发中的验证码技术09-18
·控件开发asp.net处理标签间内容09-18
·程序员成为成为编程高手的二十二条军规09-18
·VS 2005和ASP.NET 2.0中处理CSS样式表09-17
·如何有效监控.NET应用程序09-16
·浅析ASP.NET 2.0 Client Callback09-16
·探讨ASP.NETMVC框架内置AJAX支持编程技术09-15
·ASP.NET2.0的URL映射的实现方法09-13
·Java\.net\PHP比较 程序员眼中的.Net世界09-12
·asp.net中实现观察者设计模式09-12
·谈JSP与XML的交互09-01
·ASP连接11种数据库语法总结09-01
·如何利用ASP实现邮箱访问09-01
·ASP随机数的应用技术09-01
·定时使用DWRUtil.addRow生成表格08-27
·ASP申请单动态添加实现方法及代码08-27
·关于ASP中脚本执行顺序的讲解08-25
·ASP程序实现网页伪静态页源代码08-25
·ASP如何调用webservice08-22
·ASP实例:读取xml文件的程序08-14
·Asp组件检测函数08-11
·Linux系统下让PHP提高性能的工具APC05-06
·一个完整、安全的PHP用户登录系统11-14
·Apache+PHP+MySQL建立数据库驱动的动态网站08-24
·用SSH与PHP相连接 确保数据传输的安全性08-23
·PHP5手动最简安装方法08-03
·PHP程序加速探索之服务器负载测试07-11
·完全讲解PHP+MySQL的分页显示示例分析05-30
·用Suhosin加强PHP脚本语言安全性05-26
·初学入门 PHP 和 MySQL05-17
·传奇的诞生 PHP三位创始人简介05-10
·大型系统上PHP令人不爽的九大原因05-10
·JSTL中fn表达式的使用说明09-18
·JSP Web框架研究:Struts09-16
·JSF在GlassFish管理控制台中的应用09-12
·介绍JSP程序动态网站环境搭建的详细步骤09-12
·Jsp页面中文参数传递get和post方法分析09-12
·Java\.net\PHP比较 程序员眼中的.Net世界09-11
·JavaScript最常用的55个经典技巧09-08
·Windows操作系统下JSP程序开发环境配置09-03
·JSF点滴积累--权限验证09-03
·小小分页帮助程序08-29
·经验分享全过程JSP程序员完全蜕变手册08-27
  培训中心
人才交流中心 技术交流中心
  ITLab技术交流平台: