问题:如何做浏览局域网内其它电脑目录结构的目录选择框?在 SQL Server 中,用“企业管理器”做“备份/恢复”时,选择文件位置时会出现一个目录选择框。这个选择框与普通目录选择不一样的地方,就是它里面浏览的是 SQL server 所安装的那台电脑的目录,而不是安装“企业管理器”这台电脑的目录。比如:A电脑安装了 sql server,B电脑上做备份,B上浏览的目录是 A 电脑上的。要知道,安装 SQL Server 的电脑并没有共享任何目录,但从客户端电脑却可以看到它的所有目录及文件,这是如何实现的?高手们都来探讨一下,用VB有没有实现的可能。
解决方案 »
- VB全屏问题
- 为什么最多只能散100分呢?难道我等级不够!!!
- 在wql中关联的问题
- setupfactory的卸载问题:我程序运行时在%Appdir%里面生成了一些新文件,但卸载时无法使用?
- 本程序很简单,分为客户端和服务端两个部分
- 急请教:VB中使用ADO对象获取MSSQLSERVER2000存储过程返回的记录集
- 高分求教:把double型数转化为16进制怎么转?
- 问一个非常简单的问题。解决立即给分。
- Datagrid控件问题
- 数据库连接等待中……如何让鼠标变化显示?
- VB6寫的ActiveX控件無法下載,急急急!!
- 我用Excel录下来了刚才画统计图的宏,那怎么吧他转成VB代码呢~~~请教啊...
你确认完全没有共享吗?比如说有ADMIN$共享吗?你先关闭A电脑的ADMIN$共享,重起后,再试试在B上浏览如果关闭A电脑的ADMIN$共享后,在B电脑仍然能浏览A电脑上的文件夹的话,请跟帖
哈哈,不是吹的,看了你的留言我還真去試了呢
我把A電腦上的ADMIN$停止共享後依舊能A電腦上的目錄結構
在 google 也没找到相关资料。
还不如自己写个程序传送
是的,要浏览其它电脑的目录,如果不使用服务端,显然不现实。
我提出此问题并非实际需要,而是作为一种技术探讨,希望能找到类似 sql server 实现的方法,看看有没有捷径。
现在正在研究,看看能不能独立调用到那个目录选择窗。网上关于 SQLNamespace 的资料真是少之又下,无头绪中...以下代码可以调用到“企业管理器”的备份窗:'------------------------------------
' 调用 SQLNamesapce 备份数据库
'------------------------------------
Function SQLBackup(ByVal sServerName As String, ByVal sDBName As String, ByVal sUid As String, ByVal sPwd As String, ByVal hWnd As Long) As BooleanOn Error GoTo aErr Dim objSQLNS As New SQLNS.SQLNamespace 'SQLNS命名空间
Dim objSQLNSObj As SQLNS.SQLNamespaceObject 'SQLNS命名空间对象
Dim objSQLNSCom As SQLNS.SQLNamespaceCommand 'SQLNS命名空间命令对象
Dim hItem As Long '句柄
objSQLNS.Initialize "Backup Database;", SQLNSRootType_Database, "Server=" & sServerName & ";UID=" & sUid & ";PWD=" & sPwd & ";Database=" & sDBName & ";", hWnd
hItem = objSQLNS.GetRootItem '生成SQLNS命名空间对象
Set objSQLNSObj = objSQLNS.GetSQLNamespaceObject(hItem)
'显示 Enterprist Manager 备份界面
Set objSQLNSCom = objSQLNSObj.Commands(10)
objSQLNSCom.Execute hWnd, SQLNamespace_PreferModal SQLBackup = True
aErr:
Set objSQLNS = Nothing
Set objSQLNSObj = Nothing
Set objSQLNSCom = Nothing
End Function
根據您的思路我查看了一下objSQLNSObj.Commands(10)中不同常數的意義
'1 : 刪除資料庫--DataBaseName 界面
'2 : 某數據庫的屬性 界面
'3 : 無
'4 : DTS 匯入/匯出精靈 界面(匯入)
'5 : DTS 匯入/匯出精靈 界面(匯出)
'6 : 建立發行集精靈 界面
'7 : 正在連線...(太快看不清)
'8 : 提取訂閱精靈 界面
'9 : SQL Server 安全性 界面
'10: 備份 界面
'11: 還原 界面
'12: 壓縮資料庫 界面
'13: 產生SQL指令碼 界面
從14開始好像沒有了,不知對不對
运行以下代码,可以得到 SQLNS.commands 支持的操作:Dim i As Integer
For i = 1 To objSQLNSObj.Commands.Count
Debug.Print i & "," & objSQLNSObj.Commands(i).Name
Next结果:
1,删除
2,属性
3,数据库维护计划
4,数据导入
5,数据导出
6,新建发布
7,解决冲突
8,新建请求订阅
9,管理 SQL Server 安全性
10,备份数据库
11,还原数据库
12,收缩数据库
13,生成脚本
真要研究,很复杂。比如仅 SQLNS_CmdID 一种参数,就有好几十个。看下面一段代码,可以查看某个表的属性页:
'----------------------------------------
' 调用 MS SQL Enterprist Manager 功能,
' 显示 Table 属性页
'----------------------------------------
Function SQLNSExecute(ByVal strSQLSvr As String, ByVal strSQLUid As String, ByVal strSQLPwd As String, _
ByVal strSQLDatabase As String, ByVal strTableName As String, ByVal hWnd As Long) As BooleanOn Error GoTo aErr Dim oSQLNS As New SQLNamespace
Dim objSQLNSObj As SQLNS.SQLNamespaceObject
Dim eSQLNSRootType As Long, hRootItem As Long
Dim hDatabases As Long, hDatabase As Long
Dim hTables As Long, hTable As Long
eSQLNSRootType = SQLNSRootType_Server
oSQLNS.Initialize "SQLNS Application;", eSQLNSRootType, "Server=" & strSQLSvr & ";UID=" & strSQLUid & ";pwd=;" & strSQLPwd, hWnd
hRootItem = oSQLNS.GetRootItem
hDatabases = oSQLNS.GetFirstChildItem(hRootItem, SQLNSOBJECTTYPE_DATABASES)
hDatabase = oSQLNS.GetFirstChildItem(hDatabases, SQLNSOBJECTTYPE_DATABASE, strSQLDatabase)
hTables = oSQLNS.GetFirstChildItem(hDatabase, SQLNSOBJECTTYPE_DATABASE_TABLES)
hTable = oSQLNS.GetFirstChildItem(hTables, SQLNSOBJECTTYPE_DATABASE_TABLE, strTableName)
Set objSQLNSObj = oSQLNS.GetSQLNamespaceObject(hTable)
objSQLNSObj.ExecuteCommandByID SQLNS_CmdID_PROPERTIES, hWnd, SQLNamespace_PreferModal
SQLNSExecute = True
aErr:
Set oSQLNS = Nothing
Set objSQLNSObj = NothingEnd Function