首先,找个地方去下载VB,这个东西以前上学的时候还挺喜欢,经常搞搞,有段时间没弄了。网上搜下"VB精简板",有很多连接,我是在华军上下的。
Public Sub OnStartPage(mysc As ScriptingContext)
Public Sub OnEndPage()
Public Sub helloworld()
Dim gCon_Data
Const connstr = "Provider=SQLOLEDB.1;Password=cshgcl;Persist Security Info=False;User ID=cshgcl;Data Source=127.0.0.1;Initial Catalog=CSHGCL"
Private Sub Class_Initialize()
'功能:类初始化
'参数:无
'返回:无
Call ConnectToServer(connstr)
End Sub
Public Function ConnectToServer(str As String)
Dim Con_Data
Set Con_Data = New ADODB.Connection
Con_Data.Open connstr
Set gCon_Data = Con_Data
End Function
Public Function DisConnect()
On Error Resume Next
Con_Data.Close
Public Function RunSQLSearch(pStr_Sql, pRec_Data)
接着做个简单例子试一下,
(1)启动你的VB,选择ActiveX图标.这个图标可以在新建工程找到!VB会提供一个默认的工程名(project1)和类名( class1).我们会将这两个名字都改掉。在改名之前,请首先确认我们拥有Microsoft Active Server Pages Object Library,它在我们的程序非常有用.从菜单中选择"工程",然后在其中选择"引用",就会出现"引用"窗口从中选择Microsoft Active Server Pages ObjectLibrary。
(2)给工程和类命名,现在我们来根据自己的爱好来为project1和class1来命名吧!给它们命名也是很重要的,我们以后会用这个工程名和类名 来创建这个组件的实例!后面详细介绍。如何改名,我就不想多说了!我们的工程名改为test,类名为helloworld。
(3)在类中输入以下代码:
Option Explicit
Dim rp As Response
Dim rp As Response
Dim rq As Request
Dim ap As Application
Dim sr As Server
Dim sn As Session
Public Event OnStartPage()
Public Event OnEndPage()
Public Event OnEndPage()
Public Sub OnStartPage(mysc As ScriptingContext)
''进行对象的实例化
Set rp = mysc.Response
Set rq = mysc.Request
Set sr = mysc.Server
Set ap = mysc.Application
Set sn = mysc.Session
rp.Write "<br>ActiveX DLL组件已经被创建了!<br>"
End Sub
Public Sub OnEndPage()
rp.Write "<br>ActiveX DLL组件已经被销毁!<br>"
''销毁对象
Set rp = Nothing
Set rq = Nothing
Set sr = Nothing
Set ap = Nothing
Set sn = Nothing
End Sub
Public Sub helloworld()
rp.Write "<H1>Hello,World!</H1>"
End Sub
现在一个小型的组件编写完成,剩下的工作就是编译这个组件,在"工程"菜单中保存它,取什么名字都可以,我们用test.vbp吧!然后就用在“文件”菜单中选择“生成 test.dll”,将其编译成DLL文件.一个组件就真正完成了!
(4)生成好组件,下面需要注册组件。注册组件可以从“开始-运行”里面,输入“Regsvr32 E:/test/test.dll”路径当让是用自己的路径啦。
(5)编写asp页面,新建一个test.asp页面,输入以下代码:
<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY>
<%
Set ObjReference=Server.CreateObject("test.helloworld")
ObjReference.helloworld
%>
Set ObjReference=Server.CreateObject("test.helloworld")
ObjReference.helloworld
%>
</BODY>
</HTML>
</HTML>
(6)发布到IIS下面,访问一下就可以看到效果啦。
上面这个小例子如果能调通的话,其他的就依葫芦花瓢好了。在我们系统里,我主要把数据库操作的部分封装了一下。在VB中,首先要把Microsoft Activex Data Object 2.5 Library引用到当前工程中,之后新建一个DB.class类,代码如下:
Dim gCon_Data
Const connstr = "Provider=SQLOLEDB.1;Password=cshgcl;Persist Security Info=False;User ID=cshgcl;Data Source=127.0.0.1;Initial Catalog=CSHGCL"
Private Sub Class_Initialize()
'功能:类初始化
'参数:无
'返回:无
Call ConnectToServer(connstr)
End Sub
Public Function ConnectToServer(str As String)
Dim Con_Data
Set Con_Data = New ADODB.Connection
Con_Data.Open connstr
Set gCon_Data = Con_Data
End Function
Public Function DisConnect()
On Error Resume Next
Con_Data.Close
End Function
Public Function RunSQLSearch(pStr_Sql, pRec_Data)
'查询数据库
'pRec_Data 作为返回值
Dim Rec_Data
Dim connstr
Dim Con_Data
Set Rec_Data = New ADODB.Recordset
Rec_Data.Open pStr_Sql, gCon_Data, 3, 1
If RunError Then
Set pRec_Data = Nothing
RunSQLSearch = False
Else
Set pRec_Data = Rec_Data
RunSQLSearch = True
End If
Dim connstr
Dim Con_Data
Set Rec_Data = New ADODB.Recordset
Rec_Data.Open pStr_Sql, gCon_Data, 3, 1
If RunError Then
Set pRec_Data = Nothing
RunSQLSearch = False
Else
Set pRec_Data = Rec_Data
RunSQLSearch = True
End If
End Function
Function ExecuteSQL(pStr_Sql)
Function ExecuteSQL(pStr_Sql)
'增,删,改 数据库
On Error Resume Next
gCon_Data.Execute pStr_Sql
If RunError Then
ExecuteSQL = False
Else
ExecuteSQL = True
End If
End Function
Function RunError()
'功能:存储错误信息
'参数:无
On Error Resume Next
gCon_Data.Execute pStr_Sql
If RunError Then
ExecuteSQL = False
Else
ExecuteSQL = True
End If
End Function
Function RunError()
'功能:存储错误信息
'参数:无
Dim Str_Error
Dim insert_str As String
RunError = False
If Err.Number <> 0 Then
Dim insert_str As String
RunError = False
If Err.Number <> 0 Then
Str_Error = "(" + CStr(Err.Number) + ")" + Trim(Err.Description)
insert_str = "Insert into ErrLog (ErrTime,ErrMsg) values (getdate(),'" + Str_Error + "')"
gCon_Data.Execute insert_str
RunError = True
End If
End Function
insert_str = "Insert into ErrLog (ErrTime,ErrMsg) values (getdate(),'" + Str_Error + "')"
gCon_Data.Execute insert_str
RunError = True
End If
End Function