关于ASP与VB操作Sybase Adaptive Server Anywhere数据库的问题探讨

griefforyou 软件开发  2003-04-03 10:12:41
小弟目前正在搞一个项目,数据库用的是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数据库?

...全文
49 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
griefforyou 2003-04-07
怎么样才能Close数据库?

已经使用了Cn.Close,但是关不了呀
回复
griefforme 2003-04-07







--------
__ __
__ \ / __
/ \ | / \
\|/
_,.---v---._
/\__/\ / \
\_ _/ / \
\ \_| @ __|
\ \_
\ ,__/ /
~~~`~~~~~~~~~~~~~~/~~~~:)
回复
你可以试试无源连接
按5/6下刷新按钮,将出错
就是因为数据库没有close连接数太多
回复
griefforyou 2003-04-07
如能解决,这里还有100分
http://expert.csdn.net/Expert/topic/1626/1626832.xml?temp=.5944788
回复
griefforyou 2003-04-07
多谢。。。。
回复
chenyu5188 2003-04-07
呵呵

帮你UP
回复
griefforyou 2003-04-07
再顶。。。

唉。。。。。
回复
aodlyf 2003-04-07
怎麼解決的呀/
回复
griefforyou 2003-04-07
唉。。。

自已搞定了。。。

分给谁呢?
回复
griefforyou 2003-04-05
没有人知道呀?
回复
griefforyou 2003-04-04
顶!
回复
griefforyou 2003-04-03
另外,以上ASP程序,连接按5/6下刷新按钮,将出错

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e4d'

[Sybase][ODBC Driver][Adaptive Server Anywhere]Database server rejected connection: too many connections to database

/testasa.asp, 行6
回复
honye2000 2003-04-03
使用dbsrv6.exe啟動一個數據庫報務試試看
具體用法可在提示符下輸入dbsrv6 /help

另外ASP與VB存取數據庫應是不同的模式
(c/s﹑b/s﹐我不知ASP也不知VB^_^)
回复
fengzeng 2003-04-03
关注!!!
回复
griefforyou 2003-04-03
多谢!
回复
tchatcha 2003-04-03
关注,帮你顶
回复
griefforyou 2003-04-03
没人看呀?
回复
griefforyou 2003-04-03
没人看呀?
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2003-04-03 10:12
社区公告
暂无公告