使用VB6编写组件隐藏数据库的连接字符串

转载 2004年08月31日 19:17:00

使用VB6编写组件隐藏数据库的连接字符串<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

海南省商贸信息服务中心  温大文

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 


如今,开发WEB应用程序绝大多数都是使用Browser/Server模式,而在B/S 应用程序开发领域中,微软公司的IIS/ASP组合以其强大的功能、良好的扩展能力及与其它微软产品良好的兼容性,迅速地流行起来。ASP以其简单易学、功能强大而博得广大程序员的喜爱,国内的大部分网站都是利用ASP架构的。当我们使用ADO访问数据库时,有时是把连接字符串显式的写在.ASP文件中,这样做显然不太安全,很容易被别有用心的人获取密码、数据库名等信息。为了数据的安全,我们可以自己编写组件来封装访问数据库的字符串,然后再在global.asa文件或.asp也面上调用即可。

一、下面我们就来一步一步的创建组件:

启动vb6.0新建-->ActiveX dll工程。单击"工程"-->引用,选择"microsoft active server pages object library""microsoft activeX data objects 2.1 library"两项。将类模块的名称改为WenConnection.将工程的名称改为WenADODB.保存工程文件WenADODB.vbp和类文件WenConnection.cls。具体做法:1)选择“工程”—>“引用”进入引用用户选择界面如图1所示,在“可用的引用”复选框选择"microsoft active server pages object library""microsoft activeX data objects 2.1 library"两项。

CSDN_Dev_Image_2003-7-11657100.png

                           1

2)选择“工程”—>“工程属性”进入工程属性设置界面,选“通用”页,在“工程类型”的下拉框中选择“ActiveX DLL”,在工程名输入框中输入工程名为“WenADODB”,如图2所示。

 

                               

3)再选择“编译”页,选中“代码大小优化”一项,如图3所示。

CSDN_Dev_Image_2003-7-11657104.png

                              3

至此,我们对新建的工程的属性、引用等基本设置完成。

二、接下来我们就在类WenConnection.cls中写入代码:

1)首先要申明变量:

Private WenScriptingContext   As ScriptingContext

Private WenApplication   As Application

Private WenRequest   As Request

Private WenResponse   As Response

Private WenServer   As Server

Private WenSession   As Session

2)为了在WenConnection类中使用ASP的内建对象,必须在此类中写一个OnStartPage子函数。那是因为无论什么时候用户访问一个带有本组件的ASP文件,IIS就会把ScriptingContext传送给我们的对象请我们使用。这个ScriptingContext包括了全部的ASP方法和属性,这使得我们有能力访问所有ASP的对象。

Public Sub OnStartPage (PassedScriptingContext As ScriptingContext)

Set WenScriptingContext = PassedScriptingContext

Set WenApplication = WenScriptingContext.Application

Set WenRequest = WenScriptingContext.Request

Set WenResponse = WenScriptingContext.Response

Set WenServer = WenScriptingContext.Server

Set WenSession = WenScriptingContext.Session

End Sub

我们既然用OnStartPage函数来创建对象,那么我们这里就用OnEndPage子函数来释放对象:

Public Sub  OnEndPage()

Set WenScriptingContext = Nothing

Set WenApplication = Nothing

Set WenRequest = Nothing

Set WenResponse = Nothing

Set WenServer = Nothing

Set WenSession = Nothing

End Sub

接下来定义两个函数RsResult()DataSource()

Public Function Rs(strsql As String) As Recordset

Dim oConn   As Connection

Dim oRs   As Recordset

Dim strconnstring   As String

strconnstring = "driver={sql  server};server=ServerName;uid=sa;pwd=;" & _

                "database=DataBaseName"

oConn.Open strconnstring

oRs.ActiveConnection = oConn

strsql="Select * From tableName"

oRs.Open strsql, oConn, 1, 3

Set Rs = oRs

End Function

 

Public Function DataSourceConnection() As Variant

DataSourceConnection = "driver={sql server};server=ServerName;uid=sa;pwd=;database=DataBaseName"

End Function

三、  存工程名为WenADODB.vbp和保存类名为WenConnection.cls,然后点击“文件”—>“生成WenADODB.DLL”编译成动态连接库文件。VB在编译好动态连接库文件的同时也将该组件注册到注册表里了,要是想在另外一台机器上注册该组件的话,请用以下指令注册或反注册:

Regsvr32  x:/路径/WenADODB.dll             x:/路径/WenADODB.dll文件存放的盘符和路径

Regsvr32  /u  x:/路径/WenADODB.dll          参数U为反注册

四、 ASP文件中调用WenADODB.dll组件的例子。

<%

Set Conn=Server.CreateObject("WenADODB.WenConnection") 调用组件创建对象实例

    objConn=Conn.DataSourceConnection()

    application("strconn")=objConn

 

set Rs=Server.CreateObject("ADODB.Recordset")

    sql="select * from TableName order by ID DESC"

    Rs.open sql,application("strconn"),1,3

%>

<Table align="center" border="1">

  <%   

if Rs.Bof and Rs.Eof then

   Response.Write "暂时还没有任何数据。"

else

Do while not Rs.Eof  

%>

  <tr width=100%>

    <td width=50%><%=Rs("Field1")%></td><td width=50%><%=Rs("Field2")%></td>

  </tr>

<%

Rs.MoveNext

Loop

end if

Rs.Close;Set Rs=Nothing

%>

</Table>

五、 小结

我们这里只是编写了一个连接数据库的简单的动态连接库文件,利用VB的强大组件编写功能还可以写出功能更加强大跟齐全的组件,来完成更加实用的任务。


SQLite嵌入VB.net开发快速入门教程

【声明:阿连原创技术文章,转载请注明出处】 很长时间以来一直想寻觅研究一个能嵌入VB.net做单机带数据库的开发方案,终于有机会研究了一下SQLite数据库的应用,把方法记录一下跟大家分享一下,同时...
  • lpwmm
  • lpwmm
  • 2017年05月27日 09:31
  • 693

在VB6.0中设置ADO控件属性连接Microsoft ACCESS 2007数据库

在VB6.0中设置ADO控件属性连接Microsoft ACCESS 2007数据库        使用VB6.0一般支持.mdb格式的数据库,为了能够使VB6.0能连接.accdb格式的数据库,需要...
  • ttpage
  • ttpage
  • 2013年06月24日 13:55
  • 2315

VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步

同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9455721。连接数据库与SQL语句的Select语句初步。这一章将介绍...
  • JiLuoXingRen
  • JiLuoXingRen
  • 2013年07月27日 03:40
  • 15314

VB6 用ODBC连接数据库

遇到的问题一:调用Dim hdbc As Long '连接句柄 rc = SQLAllocConnect(henv, hdbc) '获取连接句柄 MsgBox rc If rc 0 Th...
  • cf643487053
  • cf643487053
  • 2017年01月12日 16:13
  • 630

总结:数据库连接字符串的使用方法

综述    什么是数据库连接字符串? 连接字符串的格式是一个以分号为界,划分键/值参数对的列表。连接字符串包含一个由一些属性名/值对组成的集合。每一个属性/值对都由分号隔开。 ...
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2015年12月14日 22:19
  • 242

VB6基本数据库应用(一):数据库基础

这是本套教程的第一课,讲述的是数据库结构的基础。学好数据库就必须了解清楚数据库的结构,其实并不困难。本套教程将从最基础的开始来讲述VB6的基础数据库操作。...
  • JiLuoXingRen
  • JiLuoXingRen
  • 2013年07月24日 17:14
  • 9806

【ASP.NET】将数据库连接字符串写在Web.config

每一个ASP.NET解决方案都有一个Web.config,这货相当于jsp的web.xml。同样,可以将数据库连接字符串等一些核心信息,藏在这个文件里面。 具体做法如下,对没有任何属性的connec...
  • yongh701
  • yongh701
  • 2016年01月11日 11:10
  • 1527

数据库连接字符串

转载自 http://www.cnblogs.com/liuhaorain/archive/2012/02/12/2347914.html 目录 什么是连接字符串?...
  • skh429170331
  • skh429170331
  • 2015年01月23日 20:53
  • 3847

如何将数据库连接字符串保存在配置文件中并读取

Why如果直接将连接字符串放在程序中,当要修改连接字符串时,就要修改相关代码,如果项目中多次使用该连接字符串,则可能需要多次修改相关代码。这种重复性的工作会给以后代码的修改带来极大的不便,因此最好的办...
  • GongchuangSu
  • GongchuangSu
  • 2015年09月25日 22:06
  • 1869

数据库连接字符串加密

在项目开发中,将自己的系统提高自己系统的安全性能!
  • happyniceyq
  • happyniceyq
  • 2016年08月21日 22:12
  • 999
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用VB6编写组件隐藏数据库的连接字符串
举报原因:
原因补充:

(最多只允许输入30个字)