我有VB编写了一个软件。想直接利用SQL SERVER2000进行远程的数据访问。以实现客户端和服务器端的连接。但是只有在安装了SQL SERVER2000的电脑上才能正常登陆软件。没有安装SQL SERVER2000的电脑上就不能执行我的软件。是不是没有装SQL SERVER2000的电脑缺少相应的文件?缺的是那个文件?是不是将此文件考入没有安装SQL SERVER2000的电脑中就能运行我的软件了?请各位对SQL SERVER2000比较了解的朋友多多指教。比较着急,谢谢!
调试欢乐多
或者打包没有把相关的引用打进去
AdoCon.Open "Provider=sqloledb;Data Source='" & Trim(Text3.Text) & " ' ;Initial Catalog='" & Trim(Text4.Text) & " ';User Id=sa;Password="
我是这样连接的数据库。
看看我的..
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=SFData_jxc;Data Source=
Professional不能直接访问服务器的SQL的,要利用WIN2000的IPC才能访问。(好象Win 2003也有这个问题,真晕的),上MicroSoft去下个补丁[Win2000 Professional的补丁]可以解决这个问题。另外偶一向习惯判断一下客户端的操作系统(Environ),然后发现是Win2000 Professional,就先登陆一下服务器:
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
pLocalName As Long
pRemoteName As String 'Long
pComment As Long
pProvider As Long
End Type
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
On Error Resume Next
Dim LL As NETRESOURCE
With LL
.pRemoteName = "\\" & ServerName'为SQL服务器所在的目录
.dwType = 0
End With
WNetAddConnection2 LL, PassWord, UserName, 0'为SQL服务器所在机器的登陆名和密码
End Sub不过呢,偶还是建议你不要这样做的好,还是作成C/S的比较好啦,至于C/S怎么做,在VB版块里查查啦。
这样吧,也不要你弄那么清楚了。来个简单点的办法。
1、在你的工程里加一个模块,里边的内容就是:
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
pLocalName As Long
pRemoteName As String 'Long
pComment As Long
pProvider As Long
End Type
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
On Error Resume Next
Dim LL As NETRESOURCE
With LL
.pRemoteName = "\\" & ServerName'为SQL服务器所在的机器名或者IP
.dwType = 0
End With
WNetAddConnection2 LL, PassWord, UserName, 0'为SQL服务器所在机器的登陆名和密码
End Sub
2、然后在你的整个程序开始的地方,执行[只要执行这一次]:
ConnectServerShare 192.168.0.1[SQL数据库所在的机器名或IP],Administrator[服务器登陆用户名,只要服务器开放的用户都可以,Guest都行],123456[前面那个用户名对应的密码]这样后面的SQL连接就能建立成功了,不用管客户端是否打过补丁[要不你每个客户端都要去打补丁,烦也烦死你]。
Private Sub cmdLogin_Click()
ConnectServerShare "计算机名", "计算机登陆名", "计算机登陆密码"模块部分
Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
pLocalName As Long
pRemoteName As String 'Long
pComment As Long
pProvider As Long
End Type
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As LongPublic Sub ConnectServerShare(ServerName As String, UserName As String, PassWord As String) '对于一些必须连接一次服务器才能连接的的计算机采用先用程序连一次的方法
On Error Resume Next
Dim LL As NETRESOURCE
With LL
.pRemoteName = "\\" & ServerName '为SQL服务器所在的机器名或者IP
.dwType = 0
End With
WNetAddConnection2 LL, PassWord, UserName, 0 '为SQL服务器所在机器的登陆名和密码*************************************************************************
我按照你的方法把上述代码放入了程序中,但是有没有安装过SQL的电脑都不能访问了。而我自己的电脑却能登陆,求救阿!!
——————————————————
Set AdoCon = New ADODB.Connection
AdoCon.Open "Provider=sqloledb;Data Source='" & Trim(Text3.Text) & " ' ;Initial Catalog='" & Trim(Text4.Text) & " ';User Id=sa;Password="
我是这样连接的数据库。
————————————
这个写法好象也不妥当。
你QQ我,我发一段程序给你参考。