我的vb+sql2000 c/s程序,为何只要没有数据库操作,就会断开连接呢?
我写的连接串如下:
connstring = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=dbserver;Password=000000;"这个程序用了几年了,没有问题,但是最近在一台个别的机器上出现问题,表现在,如果操作者连接进行数据库操作,不会断网,但是如果有2分种不动机器,再操作时,就会断开连接,我一直找不到原因。但是如果操作者连接操作,多长时间也不会断,如果断开数据库连接后,又需要退出程序,重新登录一次才行。
另外,上互联网始终正常,就是连接数据库存在问题。
我的程序是,登录时创建与数据库的连接,然后所有操作共享这个连接。还有一个线索,就是假如我运行两个程序,两个exe,用户在一个程序中连接操作,另一个程序的数据库连接也不会断。
我写的连接串如下:
connstring = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=dbserver;Password=000000;"这个程序用了几年了,没有问题,但是最近在一台个别的机器上出现问题,表现在,如果操作者连接进行数据库操作,不会断网,但是如果有2分种不动机器,再操作时,就会断开连接,我一直找不到原因。但是如果操作者连接操作,多长时间也不会断,如果断开数据库连接后,又需要退出程序,重新登录一次才行。
另外,上互联网始终正常,就是连接数据库存在问题。
我的程序是,登录时创建与数据库的连接,然后所有操作共享这个连接。还有一个线索,就是假如我运行两个程序,两个exe,用户在一个程序中连接操作,另一个程序的数据库连接也不会断。
解决方案 »
- vb通过注册表修改文件属性
- 请教,一个关于VB报表打印的问题
- 请问,WebBrower 中,如何修改 JS里的变量?
- 怎样能让image既是透明的,里面的图片又能随着它的大小而缩放?
- 简单的小问题 关于fso
- 问listview的一些属性
- 怎样在picture上面用编程实现写字?????
- 图形旋转90度的方法
- 怎样用16 进制读取 二进制文件内容,并且能用16进制对该文件进行操作
- 象IE浏览器一样在地址栏中输入的网址可以记住,是怎么实现的呢?立马加高分!
- 为什么没有从事"计算机语言比较学"呢?菜鸟们最需要这个了.弄半天才知道delphi里的"组件"其实就是"控件"
- vb6 想寻一段动态连ORACLE数据库的代码
'功能:获取连接
'--------------------------------------
Public Sub getConn() '获取连接子程序,在主窗体的load事件中调用该函数
'如果不处于连接状态,则进行连接
On Error GoTo gherr
If conn.State <> adStateOpen Then
'MsgBox "link ..."
With conn
.ConnectionString = connstring
.ConnectionTimeout = 60
.CursorLocation = adUseClient
.Open '连接
End With
End If
Exit Sub
gherr:
MsgBox "执行getconn时出错!" & vbCrLf & Err.Description
End Sub
'连接数据库,正常时返回真
Public Function getlink() As Boolean '连接数据库,正常返回真
'如果不处于连接状态,则进行连接
'conn是全局对象
On Error GoTo gherr
If conn.State <> adStateOpen Then
With conn
.ConnectionString = connstring
.ConnectionTimeout = 60
.Open '连接
End With
End If
If conn.State = adStateOpen Then
getlink = True
Else
getlink = False
End If
Exit Function
gherr:
getlink = False
MsgBox "执行getLink时出错!" & vbCrLf & Err.Description
End Function
如果中断时间是相对固定的话,而又找不出原因,又不想重做系统,
只能在窗体中加一个timer控件 每隔1分钟执行一次查询操作
conn.Execute "SELECT GETDATE()"
最好的建议就是写一个公用的连接数据库的方法,即用即连即关。