前一阵子给我朋友做了个工具,在我机器上用着好好的,到了他那里就各种报错,后来检查根本原因是因为数据库没有连接上。导致中间的变量为空出错。
但是我们都在一个内网,连接的都是相同的SQLServer服务器,为什么我能连他不能连?我们唯一的区别就是我的系统是win7、他的系统是xp。找了其他的xp系统测试了一下,的确也是用不了。又找了台win8的系统跟win7一样是可以连的,现在锁定问题到系统上,翻来覆去的搞了一段时间,一直没有结果。
正好今天我们运营的同志们需要使用这个工具,而他那里也运行不起来,实在不行了,就看了一下open数据库时的返回值,看看到底是因为什么连接不上的。这一看返回值不要紧,发现就加了一条语句,不能连接的机器竟然能连接上了。非常奇怪…………代码如下:
连接不上的代码:
Global $Server = "192.168.3.157\SQLEXPRESS" ;SQL主机名称
Global $ID = "sa" ; 登入数据库主机的账号 一般都会用sa
Global $pw = "1365664****" ;登入数据库主机的密码
Global $DataName = "Data" ;数据库名称
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open("driver={SQL Server};server=" & $Server & ";uid=" & $ID & ";pwd=" & $pw & ";database=" & $DataName)
$RS.ActiveConnection = $conn
可以连接上的代码:
Global $Server = "192.168.3.157\SQLEXPRESS" ;SQL主机名称
Global $ID = "sa" ; 登入数据库主机的账号 一般都会用sa
Global $pw = "1365664****" ;登入数据库主机的密码
Global $DataName = "Data" ;数据库名称
If Not @error Then
MsgBox(0, '', '连接数据库成功')
Else
MsgBox(0, '', '连接数据库失败')
Exit
EndIf
$conn = ObjCreate("ADODB.Connection")
$RS = ObjCreate("ADODB.Recordset")
$conn.Open("driver={SQL Server};server=" & $Server & ";uid=" & $ID & ";pwd=" & $pw & ";database=" & $DataName)
$RS.ActiveConnection = $conn
|