关于ASP与VB操作Sybase Adaptive Server Anywhere数据库的问题探讨
小弟目前正在搞一个项目,数据库用的是Sybase Adaptive Server Anywhere6.0,无奈本人对其一无所知,还望各位多多指教!
先看看现象:
首先,我用Sysbase Central创建了一个数据库ITRIP,然后在ODBC数据源中添加了一个系统DSN,名称为ITRIP.
1.用VB连接
Option Explicit
Private Sub Command1_Click()
Test
End Sub
Sub Test()
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "DSN=ITRIP"
Print "Connected<br>"
Print cn.State & "<br>"
'cn.Close
'Print "DisConnected<br>"
'Set cn = Nothing
End Sub
点击Command1,将启动Adaptive Server Anywhere的数据库服务程序,连接成功,然后自动关闭退出。以上程序注释部分加不加都一样,也就是说,在子程序或过程中的局部变量VB自动将其释放。
如果将连接对象Cn声明为窗体级的变量,将Dim cn As ADODB.Connection放在Option Explicit下面,改为
Option Explicit
Dim cn As ADODB.Connection
Private Sub Command1_Click()
Test
End Sub
Sub Test()
Set cn = New ADODB.Connection
cn.Open "DSN=ITRIP"
Print "Connected<br>"
Print cn.State & "<br>"
'cn.Close
'Print "DisConnected<br>"
'Set cn = Nothing
End Sub
点击Command1,将启动Adaptive Server Anywhere的数据库服务程序,连接成功,数据库服务程序不会关闭。只有让以上程序注释执行,数据库服务程序才会关闭。
以上现象都一切正常,无须多想
但是,将这些代码移植到ASP中执行,将出现不同的效果,请看
<%@ Language=VBScript %>
<%
Sub Test()
Set Cn=Server.CreateObject("ADODB.Connection")
Cn.Open "DSN=ITRIP"
Response.Write "Connected<br>"
Response.Write Cn.State & "<br>"
Cn.Close
Response.Write "DisConnected<br>"
Set Cn=Nothing
End Sub
Test
%>
在IE中执行此程序,将启动Adaptive Server Anywhere的数据库服务程序,连接成功,数据库服务程序不会关闭,但是程序中用了Cn.Close , Set Cn=Nothing也无济于事。
将Cn改为模块级
<%@ Language=VBScript %>
<%
Dim Cn
Sub Test()
Set Cn=Server.CreateObject("ADODB.Connection")
Cn.Open "DSN=ITRIP"
Response.Write "Connected<br>"
Response.Write Cn.State & "<br>"
Cn.Close
Response.Write "DisConnected<br>"
Set Cn=Nothing
End Sub
Test
%>
效果和开始一样
问题出现了,ASP和VB操作Adaptive Server Anywhere数据库存在这样的区别吗?
如何正确操作Adaptive Server Anywhere数据库?