用类来编写数据库程序

2016-02-19 18:11 14 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的用类来编写数据库程序,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

类模块使VB编程更为简洁。通过封装技术将复杂的代码同程序的其它部分分隔开,并通过方法和属性同程序的其它部分对话。对于类的种种好处,相信大家都非常清楚了。本文主要介绍类在数据库编程方面的应用。
  
  通过类模块的封装,你可以只需要书写一次那些冗长繁人的SQL查询语句,并能方便地同他人分享你的代码。本文向你介绍如何利用类模块创建SQL查询对象。本文用到Northwind数据库。数据访问技术用的是DAO。
  
  工程目的
  本工程的目的是要建立一个查询,该查询将从Northwind数据库中返回Beverage供应商的信息。这些信息包括哪种饮料是由哪些供应商供应的。看上去很简单,但你得对三个表进行操作,这三个表分别是Suppliers,Categories和Products,因此你需要写一串很长的SQL查询语句,所以你只希望写一次就够了。
  设计类模块
  首先确认你已添加了对MicrosoftDAO3.5ObjectLibrary的引用。接下来在工程中添加一个类模块。将该类模块重命名为ClsSQL。让我们先为这个类创建两个新的公共属性,代码如下:
  
  PublicCompanyNameAsString'Objectproperty
  PublicCategoryNameAsString'Objectproperty
  
  添加一个公用变量,名为strMsg。该变量用来保存对象返回给用户的信息。
  PublicCompanyNameAsString'Objectproperty
  PublicCategoryNameAsString'Objectproperty
  
  PublicstrMsgAsString
  
  现在为这个类编写RunQuery方法。
  SubRunQuery()
  
  DimstrSQLAsString
  DimdbAsDatabase
  DimqdfTempAsQueryDef
  DimrsResultsAsRecordset
  
  'ConstructtheSQLstring
  strSQL="SELECTDISTINCTROWSuppliers.CompanyName,"&"Products.ProductNameFROMSuppliersINNERJOIN"&"(CategoriesINNERJOINProductsONCategories.CategoryID="&"Products.CategoryID)"&"ONSuppliers.SupplierID=Products.SupplierID"&"WHERE(((Suppliers.CompanyName)='"&CompanyName&"')AND"&"((Categories.CategoryName)='"&CategoryName&"'))"
  
  Setdb=OpenDatabase("C:MSOfficeAccessSamplesNorthwind.mdb")
  
  SetqdfTemp=db.CreateQueryDef("")
  qdfTemp.SQL=strSQL
  
  SetrsResults=qdfTemp.OpenRecordset(dbOpenSnapshot)
  rsResults.MoveFirst
  
  'Enumeratetherecordset
  WithrsResults
  DoWhileNot.EOF
  Debug.Print.Fields(0);"";.Fields(1)
  strMsg=strMsg&.Fields(1)&vbCrLf
  .MoveNext
  Loop
  EndWith
  
  rsResults.Close
  qdfTemp.Close
  
  EndSub
  
  现在让我们来简单地分析一下上面的代码。在上面的代码中数据库的路径是用的绝对路径。如果Northwind数据库的路径同你机器上的不同,你需要修改这个路径,以便程序能找到这个数据库。
  SQL代码是在Access中建立好然后粘贴到程序中来的。这样做不仅免去你书写代码的麻烦,而且还不容易出错。在粘贴完之后,将原来在SQL代码中的"BigfootBreweries"和"Beverages"用公共变量CompanyName和CategoryName替换掉。
  
  在定义了QueryDef之后,程序枚举记录集。记录集的信息不仅在立即窗口中显示出来,同时被写入strMsg变量中。
  
  在结束对类模块的编码之前,我们还需要对类模块的Terminate事件编写代码。将下面的代码放到该事件中。
  
  PrivateSubClass_Terminate()
  
  MsgBoxstrMsg,Title:="BeverageResultsfor"&CompanyName,buttons:=vbExclamation
  
  EndSub
  
  
  现在我们已结束了对类模块的编程。接下来在窗体中添加一个命令按钮。将该命令按钮的Caption属性设置为&RunQuery。将下面的代码放在命令按钮的鼠标单击事件中。
  PrivateSubCommand1_Click()
  
  DimobjSQLAsClsSQL
  
  'Settheobjectvariable
  SetobjSQL=NewClsSQL
  
  'Setpropertiesofthenewobject
  WithobjSQL
  .CompanyName="BigfootBreweries"
  .CategoryName="Beverages"
  EndWith
  
  'Retrievetheproperties
  Debug.PrintobjSQL.CompanyName
  Debug.PrintobjSQL.CategoryName
  
  'Callamethodoftheobject
  objSQL.RunQuery
  
  'Destroytheobject
  SetobjSQL=Nothing
  
  EndSub
  
  
  在上面的语句中,我们首先定义了一个对象变量,接下来将这个对象变量初始化为我们刚建立的类的一个实例。我们也可以用下面这一条语句来实现。
  DimobjSQLAsNewClsSQL
  
  紧接着我们设置该对象的属性。CompanyName="BigfootBreweries"和CategoryName="Beverages",将这两个值在立即窗口中显示出来。这样做仅仅为了验证而已。然后调用对象的RunQuery方法。
  objSQL.RunQuery
  
  最后释放该对象,触发对象的Terminate事件,弹出消息框,显示查询结果。
  MsgBoxstrMsg,Title:="BeverageResultsfor"&CompanyName,buttons:=
  vbExclamation
  
  结论
  现在你已对用类模块进行数据库编程的好处有了初步的认识。当然你也可以用标准模块来实现同样的功能。但是用标准模块远不如用类模块简洁。用类模块,你可以为每个查询初始化一个新的对象,而复杂的SQL代码则被封装在类中。用标准模块,你必须将控制权交给模块。最后,类模块更易于移植。->

来源:http://www.tulaoshi.com/n/20160219/1616976.html

延伸阅读
第一步:编写服务器的应用程序 首先在Delphi的IDE中选择File|New|Other,然后在WebServices页面中选择Soap Server Application图标。 然后在New Soap Server Application对话框中选择Web App Debugger executable。 点击OK按钮之后,Delphi会自动生成一个WebModule,在这个Module中会包含三个WebServices的控件。 然后然...
数据库的 sql 参数封装类的编写 代码如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System...
我把数据库操作类整理了一下,它包含了常用的数据库操作,由三种方式:简单的SQL拼接字符串的形式,SQL语句使用参数的形式和存储过程的形式,每种形式均有五个方法,并且都有事务.,可以直接调用.代码如下: 1//====================================================================== 2// 3// Copyright (C) 2007-2008 三月软件工...
/** * @Purpose: Mysql数据库访问类 * @Package: * @Author: lisen@sellingclub.cn * @Modifications: * @See: * @Time: 2008.10.10 */ class DB_MYSQL { //============================================================ private $Host = 'localhost'; private $Database = 'db_name'; private $User = 'user'; private $Passwo...
1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec)  2、创建一个数据库abccs mysql CREATE DATABASE abccs; 注意不同操作系统对大小写的敏感。 3、选择你所创建的数据库...

经验教程

879

收藏

100
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部