SQL server 2005连接字符串中为什么加1433就通,不加就连接不上,怎么回事???请高手指教,代码如下
Set conn_user = New ADODB.Connection
conn_user.ConnectionString = "Provider=sqloledb;Data Source=192.168.1.51,1433;(此IP后加1433后就能连接上服务器,不加1433后就连接不上,请高手指教,我要怎样做就不要加1433,直接用IP能连接,不胜感激!!)Initial Catalog=数据库名;User Id=sa;Password=123456;"conn_user.ConnectionTimeout = 30
conn_user.Open
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from XYZ ", conn_user, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rs
追问:谢谢你的回答
答案:sqlserver占用机器的1433端口
连接的时候势必要告诉程序到哪个端口能与数据库进行通信 所以没办法 必须得写。即便你在开发机器上通过配置而直接写IP,到应用服务器上也许就没那么方便了
其他:写三个函数
'获得打开的数据库连接对象
Function OpenConn()
dim connString,conn
connString="driver={SQLServer};server=localhost;uid=sa;pwd=;database=northwind"
set conn = Server.CreateObject("ADODB.Connection")
'打开连接
conn.open connString
set OpenConn=conn
End Function
'关闭结果集
Sub CloseRecordSet(rs)
rs.close
set rs=nothing
End Sub
'关闭连接
Sub CloseConn(conn)
conn.close
set conn=nothing
End Sub
以上是写的函数,调用时如下
dim sql
sql = "sqlString" '写sql语句
dim conn,rs
set conn = OpenConn
'set rs = conn.Execute(sql)
'下面两句代码等同于上面一行代码
'set rs = Server.CreateObject("ADODB.RecordSet")
'rs.Open sql,conn,0,1 '不支持分页
set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open sql,conn,1,3 '支持分页
以上三种获得rs结果集的方法都行,最后,处理完之后不要忘了关闭结果集和连接
CloseRecordSet rs '调用函数
CloseConn conn
在ASP中一般采用这种方法连接.把连接字符串中的localhost改为IP地址,就可以访问此IP地址上的数据库.
还有就是,每个程序/服务都会有自己的端口号,sqlserver占用的是1433端口.所以你这种写法需要加上1433,否则电脑就不可以确定是哪个服务了.等你系统的学习sqlserver后就知道什么是1433了.
上一个:SQL Server 2008 Management Studio 添加外键问题
下一个:我在朋友那拷贝并安装了sql server 2005 但是使用时只有 mysql 5.5 command line client,找不到图形界面