RAS连接后通过ODBC连接的问题。

monkst 2003-01-10 05:55:56
远程的SQL SERVER服务使用与NT相同的认证,我用RAS拔号连接后,通过ODBC进行数据访问,ODBC总时连接不上,但我通过网上邻居访问,输入用户名与密码后,ODBC马上就能通,此后RAS连接断开,再连接,ODBC马上就好,请问是什么原故,编程如何能实现输入网上邻居的用户与密码的过程?
还有一个问题,用ODBC访问数据库,常常要访问,是不定地重新连接好,还是cn.open后一直到程序关闭时才cn.close好?
...全文
30 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
monkst 2003-02-17
  • 打赏
  • 举报
回复
谢谢,等了这么久,总算有人给我一点帮助了,我试一下.如能通这些分就是你的了.
FreshAir 2003-02-14
  • 打赏
  • 举报
回复
参考以下API函数。

'常量及结构:
Private Const RESOURCE_CONNECTED As Long = &H1&
Private Const RESOURCE_GLOBALNET As Long = &H2&
Private Const RESOURCE_REMEMBERED As Long = &H3&
Private Const RESOURCEDISPLAYTYPE_DIRECTORY& = &H9
Private Const RESOURCEDISPLAYTYPE_DOMAIN& = &H1
Private Const RESOURCEDISPLAYTYPE_FILE& = &H4
Private Const RESOURCEDISPLAYTYPE_GENERIC& = &H0
Private Const RESOURCEDISPLAYTYPE_GROUP& = &H5
Private Const RESOURCEDISPLAYTYPE_NETWORK& = &H6
Private Const RESOURCEDISPLAYTYPE_ROOT& = &H7
Private Const RESOURCEDISPLAYTYPE_SERVER& = &H2
Private Const RESOURCEDISPLAYTYPE_SHARE& = &H3
Private Const RESOURCEDISPLAYTYPE_SHAREADMIN& = &H8
Private Const RESOURCETYPE_ANY As Long = &H0&
Private Const RESOURCETYPE_DISK As Long = &H1&
Private Const RESOURCETYPE_PRINT As Long = &H2&
Private Const RESOURCETYPE_UNKNOWN As Long = &HFFFF&
Private Const RESOURCEUSAGE_ALL As Long = &H0&
Private Const RESOURCEUSAGE_CONNECTABLE As Long = &H1&
Private Const RESOURCEUSAGE_CONTAINER As Long = &H2&
Private Const RESOURCEUSAGE_RESERVED As Long = &H80000000
Private Const NO_ERROR = 0
Private Const ERROR_MORE_DATA = 234
Private Const RESOURCE_ENUM_ALL As Long = &HFFFF

Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
pLocalName As Long
pRemoteName As Long
pComment As Long
pProvider As Long
End Type

'API

Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
"WNetAddConnection2A" (lpNetResource As NETRESOURCE, _
ByVal lpPassword As String, ByVal lpUserName As String, _
ByVal dwFlags As Long) As Long

说明
创建同一个网络资源的连接
返回值
Long,零表示成功。会设置GetLastError。
如GetLastError是ERROR_EXTENDED_ERROR,
则可用WNetGetLastError取得额外的错误信息
参数 类型及说明
lpNetResource NETRESOURCE,在这个结构中设置了下述字段,
对要连接的网络资源进行了定义:dwType,
lpLocalName (可为 vbNullString), lpRemoteName,
lpProvider (设为 vbNullString 表示用默认提供者)。
该结构的其他所有变量都会被忽略
lpPassword String,可选的一个密码。如为vbNullString,
表示采用当前用户的默认密码。如为一个空字串,则不用任何密码
lpUserName String,用于连接的用户名。如为vbNullString,
表示使用当前用户
dwFlags Long,设为零;或指定常数CONNECT_UPDATE_PROFILE,
表示创建永久性连接

Declare Function WNetCancelConnection2 Lib "mpr.dll" _
Alias "WNetCancelConnection2A" (ByVal lpName As String, _
ByVal dwFlags As Long, ByVal fForce As Long) As Long

说明
结束一个网络连接
返回值
Long,零表示成功。
参数 类型及说明
lpszName String,已连接资源的远程名称或本地名称
dwFlags Long,设为零或CONNECT_UPDATE_PROFILE。
如为零,而且建立的是永久性连接,则在windows下次重新启动时
仍会重新连接
fForce Long,如为TRUE,表示强制断开连接(即使连接的资源上正有
打开的文件或作业)


monkst 2003-02-10
  • 打赏
  • 举报
回复
看来是没有人知道如何编程输入密码访问网上邻居了,真的没有人能帮我吗?
monkst 2003-01-22
  • 打赏
  • 举报
回复
为什么没有给我一个完满的回答。
monkst 2003-01-13
  • 打赏
  • 举报
回复
这个用户是有权限的,只不知为什么连接后还要通过\\server 访问一次,再输入用户与密码,访问它的共享文件夹,这时ODBC就能通了,此后断开连接,再拔号,ODBC照通不误,但只要本机注消,再进入系统后拔号,连接后用ODBC又不通了,只有重复上一次的操作,它又正常了。
FreshAir 2003-01-13
  • 打赏
  • 举报
回复
1.RAS拔号连接认证时,需要输入用户、密码和域名。
如果这个用户没有对SQL SERVER服务器的访问权,
则不能通过ODBC进行数据访问。

2.重新连接比较慢,一般采用一直连着的方式,以保证
响应速度。
nik_Amis 2003-01-13
  • 打赏
  • 举报
回复
我认为用全局 连接字符串比较好
nik_Amis 2003-01-13
  • 打赏
  • 举报
回复
@_@

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧