找回密码
 加入
搜索
查看: 6566|回复: 7

[网络通信] 个别系统环境下连接SQLServer数据库失败的一个案例

  [复制链接]
发表于 2012-10-19 13:05:45 | 显示全部楼层 |阅读模式
前一阵子给我朋友做了个工具,在我机器上用着好好的,到了他那里就各种报错,后来检查根本原因是因为数据库没有连接上。导致中间的变量为空出错。

但是我们都在一个内网,连接的都是相同的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
发表于 2012-10-19 14:10:47 | 显示全部楼层
本帖最后由 kk_lee69 于 2012-10-19 14:11 编辑

回复 1# nmgwddj

我個人覺得不是 加了那語法的問題吧.....

而且 加在那邊怪怪的吧  都還沒連接 怎麼會有錯誤 可以判斷  有沒有連線成功??

另外請教.......
  
$Server = "192.168.3.157\SQLEXPRESS" ;SQL主机名称

為何主機名稱 還有路徑??  主機名稱 不就是一個名稱 或者 IP 嗎??
能不能改成.... $Server = "192.168.3.157"

這樣就好 去連接呢  是看看是不是就都可以用了
 楼主| 发表于 2012-10-19 14:29:06 | 显示全部楼层
回复 2# kk_lee69


    就说后面的\SQLEXPRESS是SQLServer一个学习版,其实一台机器可以装专业版、学习版等好几个版本。如果装了多个版本就需要这个实例名来连接了。我测试去掉这个实例名是连接不上的。

    @error错误的问题,在连接失败的时候的确@error=1,成功@error=0
发表于 2012-10-20 00:19:14 | 显示全部楼层
学习一下~看看啥事
发表于 2012-10-20 01:48:00 | 显示全部楼层
server 就用ip就可以了
发表于 2012-10-20 01:57:45 | 显示全部楼层
是不是之前有什么错误未清空啊?
发表于 2012-10-20 06:43:30 | 显示全部楼层
回复 3# nmgwddj
数据库的问题都是很怪异的,你那个@error的判断语句在那个位置能行?
另外能否帮我看看我的数据库问题http://www.autoitx.com/thread-35528-1-1.html
谢谢了!
 楼主| 发表于 2012-10-20 22:41:39 | 显示全部楼层
回复 6# drunk


    之前没什么代码的。就声明了几个变量。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-2 22:30 , Processed in 0.075034 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表