仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 596|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL网页编程之疾速搭建ERP的数据库框架

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:21:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我们分析上面的两个操作,都有一个“删除数据”的过程。(本文以sqlserver为数据库服务器,t-sql是尺度sql言语的扩大。)在ERP的软件中,数据库是它的魂灵。每个ERP软件都有本人的数据库,而这些数据库中最关头的是数据库框架。那末甚么是数据库框架?他的感化是甚么?为何要在安装时搭建数据库框架?本文就来解答这些成绩。
  在编写ERP,MIS,S/B等数据库的使用程序时,起首要做的一件事就是创建数据库框架,它最少包含:数据库和数据库中的表,固然另有视图、存储历程等,这就是数据库框架(不含详细的数据)。然后是利用vb,vc,vfp,pb等编程言语开辟用户界面,承受用户对数据库的操纵。当你乐成的开辟了一个ERP软件后,你必要将它打包,最初交给客户安装并利用。这时候就有一个成绩,当你打包的时分,不成以将sqlserver打包到安装程序中,以是用户在利用时就必需先创建数据库框架,而用户其实不晓得数据库的框架布局,ERP软件又必需会见特定的数据库框架才能够乐成运转,这时候我们就必要有一个能够主动天生数据库框架的程序。举个例:当开辟一团体力资本办理体系时,必要一个数据库框架,这最最少在数据库包括一个表,表中包括姓名,岁数,人为等信息,然后经由过程客户端来会见这个表。假如没有这个表,程序就不成能乐成的运转。如今人人分明了甚么是数据库框架和他的感化了吧!
  如今的ERP软件中都带有主动天生数据库框架的功效,分歧软件的完成办法分歧,总结一下,约莫有3种:
  1.以导游的情势呈现;
  2.在安装时以设置体系的情势呈现;
  3.集成在主程序中,当主程序第一次运转的时分主动天生数据库框架。
  不管是那种体例,他们的用处都是一样。   
    假如人人有《管家婆》的ERP,能够安装来看看。它请求先安装sqlserver,安装完后翻开sqlserver你会发明sqlserver数据库中只要它默许的几个数据库,并没甚么分歧。接着入手下手安装《管家婆》,安装完后任意用一下他的功效,再年夜开sqlserver你会发明,数据库已分歧了,增添了一些数据库(增添的数据库因利用的功效和《管家婆》的版本分歧而分歧)。这些增添的数据库就是为了利用数据库框架主动天生。
  那末,怎样用程序完成主动天生数据库框架?如今,我们就来创立一个如许的程序。在本程序中共创建5个按钮分离是:创建数据库,创建表,创建束缚,创建存储历程,显现数据。完成的代码以下:
  PublicClassForm1
  InheritsSystem.Windows.Forms.Form
  PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)
  HandlesButton1.Click
  DimconAsNewOleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
  Security=SSPI;PersistSecurityInfo=False;InitialCatalog=Northwind;Data
  Source=.;UseProcedureforPrepare=1;AutoTranslate=True;Packet
  Size=4096;WorkstationID=J;UseEncryptionforData=False;Tagwithcolumncollation
  whenpossible=False")
  con.Open()
  DimcmdAsNewOleDb.OleDbCommand("createdatabasejk",con)
  cmd.ExecuteNonQuery()
  con.Close()
  创建数据库
  EndSub
  PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAs
  System.EventArgs)HandlesButton2.Click
  Dimcon2AsNewOleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
  Security=SSPI;PersistSecurityInfo=False;InitialCatalog=jk;DataSource=.;Use
  ProcedureforPrepare=1;AutoTranslate=True;PacketSize=4096;WorkstationID=J;Use
  EncryptionforData=False;Tagwithcolumncollationwhenpossible=False")
  con2.Open()
  DimcmdAsNewOleDb.OleDbCommand("createtablekk(idintidentity(1,1)not
  nullconstraintidprimarykey,namechar(4)notnull)",con2)
  cmd.ExecuteNonQuery()
  Dimcmd2AsNewOleDb.OleDbCommand("createtablepp(idintnotnull,ads
  char(20)null)",con2)
  cmd2.ExecuteNonQuery()
  con2.Close()

创建2个表
  EndSub
  PrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAs
  System.EventArgs)HandlesButton3.Click
  Dimcon2AsNewOleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
  Security=SSPI;PersistSecurityInfo=False;InitialCatalog=jk;DataSource=.;Use
  ProcedureforPrepare=1;AutoTranslate=True;PacketSize=4096;WorkstationID=J;Use
  EncryptionforData=False;Tagwithcolumncollationwhenpossible=False")
  con2.Open()
  DimcomAsNewOleDb.OleDbCommand("altertableppaddprimarykey(id)",
  con2)
  com.ExecuteNonQuery()
  con2.Close()
  创建束缚
  EndSub
  PrivateSubButton4_Click(ByValsenderAsSystem.Object,ByValeAs
  System.EventArgs)HandlesButton4.Click
  Dimcon2AsNewOleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
  Security=SSPI;PersistSecurityInfo=False;InitialCatalog=jk;DataSource=.;Use
  ProcedureforPrepare=1;AutoTranslate=True;PacketSize=4096;WorkstationID=J;Use
  EncryptionforData=False;Tagwithcolumncollationwhenpossible=False")
  con2.Open()  
  DimcomAsNewOleDb.OleDbCommand("createprocprocnameasselect*from
  kk",con2)
  com.ExecuteNonQuery()
  con2.Close()
  创建存储历程
  EndSub
  PrivateSubButton5_Click(ByValsenderAsSystem.Object,ByValeAs
  System.EventArgs)HandlesButton5.Click
  Dimcon2AsNewOleDb.OleDbConnection("Provider=SQLOLEDB.1;Integrated
  Security=SSPI;PersistSecurityInfo=False;InitialCatalog=jk;DataSource=.;Use
  ProcedureforPrepare=1;AutoTranslate=True;PacketSize=4096;WorkstationID=J;Use
  EncryptionforData=False;Tagwithcolumncollationwhenpossible=False")
  DimcomAsNewOleDb.OleDbCommand("procname",con2)
  DimdaAsNewOleDb.OleDbDataAdapter()
  da.SelectCommand=com
  DimdsAsNewDataSet()
  da.Fill(ds)
  DataGrid1.DataSource=ds
  显现数据
  EndSub
  EndClass
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码
再现理想 该用户已被删除
沙发
发表于 2015-1-19 09:15:33 | 只看该作者
可以动态传入参数,省却了动态SQL的拼写。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-24 15:18:46 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
兰色精灵 该用户已被删除
地板
发表于 2015-2-7 14:37:53 | 只看该作者
比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。
小女巫 该用户已被删除
5#
发表于 2015-2-22 10:07:26 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
因胸联盟 该用户已被删除
6#
发表于 2015-3-7 00:08:24 | 只看该作者
相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐
变相怪杰 该用户已被删除
7#
发表于 2015-3-13 23:10:43 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
蒙在股里 该用户已被删除
8#
发表于 2015-3-20 22:46:16 | 只看该作者
我们学到了什么?思考问题的时候从表的角度来思考问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 04:53

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表