关于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数据库?

...全文
95 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没人看呀?

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧