注册 登录
编程论坛 VFP论坛

是不是装上sqlserver,才能用CREATEOBJECT("SQLDMO.Application")

lcdhdt 发布于 2023-08-29 12:20, 733 次点击
是不是装上sqlserver,才能用CREATEOBJECT("SQLDMO.Application"),这个语句。
17 回复
#2
sam_jiang2023-08-29 12:25
那必须的
#3
csyx2023-08-29 12:35
注册了 sqldmo.dll 就行,只是这个 COM 还需要其他几个文件
参见:
https://www.
https://www.
https://blog.
https://www.
...

[此贴子已经被作者于2023-8-29 12:42编辑过]

#4
lcdhdt2023-08-30 17:37
回复 2楼 sam_jiang
安装后是不是也得注册一下,好长时间了没用了都忘了。
#5
sam_jiang2023-08-30 17:38
回复 4楼 lcdhdt
安装好就注册好了,直接使用就可以了
#6
lcdhdt2023-08-30 20:11
以下是引用sam_jiang在2023-8-30 17:38:47的发言:

安装好就注册好了,直接使用就可以了

装的2012,提示还是找不到
#7
csyx2023-08-30 20:29
DMO 早就被废弃了,2005版开始改为 SMO

https://learn.(v=sql.100)
https://learn.

[此贴子已经被作者于2023-8-30 20:33编辑过]

#8
lcdhdt2023-08-30 22:00
回复 7楼 csyx
那应该怎么办?有相应创建对象的方法吗?CREATEOBJECT("SQLDMO.Application")这句话就用不了?

[此贴子已经被作者于2023-8-30 23:19编辑过]

#9
csyx2023-08-30 23:13
SMO 是基于 .Net 的,vfp 没法直接使用。关键是你安装是 2005 以后的版本,为啥还要用已被废弃的 DMO,需要用它实现什么功能?

[此贴子已经被作者于2023-8-30 23:16编辑过]

#10
lcdhdt2023-08-31 00:40
回复 9楼 csyx
显示数据服务器列表,是不是可以用api也可实现这一功能,能间接用smo吗?dmo是基于com的吗?像多了解下,谢谢。

[此贴子已经被作者于2023-8-31 00:42编辑过]

#11
csyx2023-08-31 15:56
这么说吧,DMO 也好,ODBC api 也罢,全都用处不大
我这本本上安装并启动了三个不同版本 sql server 实例,但是,无论是使用 DMO, 还是 api,或者管理工具中的 odbc 数据源配置,都只列出了一个实例

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

#12
lcdhdt2023-08-31 18:37
回复 11楼 csyx
少了dmo这个利器,那和sql的联系和操作怎么实现呢?你这装的还是2000吧,dmo能用。另外,三个版本版主是怎么装上的,我这删不干净就装不上。

[此贴子已经被作者于2023-8-31 19:15编辑过]

#13
csyx2023-08-31 21:47
以下是引用lcdhdt在2023-8-31 18:37:11的发言:

少了dmo这个利器,那和sql的联系和操作怎么实现呢?你这装的还是2000吧,dmo能用。另外,三个版本版主是怎么装上的,我这删不干净就装不上。


我装的三个版本分别是 2000、2008、2019
2000是免安装版的 miniSQL2k,其余两个都正常安装的
#14
lcdhdt2023-08-31 21:58
回复 13楼 csyx
那现在用什么工具和sql发生关系呢
#15
csyx2023-08-31 22:10
以下是引用lcdhdt在2023-8-31 21:58:38的发言:

那现在用什么工具和sql发生关系呢


管理 sql server 自然是用自带的 SQL Server Management Studio (SSMS)

DMO 是编程用的组件,跟平时的管理维护没一毛钱关系
至于你需要的取服务器列表这种功能,我不需要,任何应用都只连接指定的 mssql 实例,连接字符串都是已知的
#16
lcdhdt2023-08-31 22:12
回复 15楼 csyx
我指的是在vfp中,如果需要编程设计这方面,因dmo不能用了,现在主要用spt来构设功能吗

[此贴子已经被作者于2023-8-31 22:14编辑过]

#17
csyx2023-08-31 22:34
dmo 不是不能用,只要安装注册好的就可以用,所以一开始我问你用它是想实现什么功能,但是11楼我已经截图给你看了,用来取 sql server 所有实例列表的话,不靠谱
除了端口扫描这类暴力方法外,应该也没有完全靠谱的办法,就像路由器可以配置成不广播自己一样,sql server 也可以不对外广播自己的存在

15楼我也说了,像取服务器列表这样的功能,只有做管理 sql server 的工具软件才需要,做数据库应用的软件不需要,应用软件只要使用已知的连接串连接到指定的数据库,之后就是常规的查询/修改/删除操作,这些 ca、spt、。。。都能简单完成,你爱用哪种就用哪种,都跟 dmo 没一毛钱关系。唯一可能需要的备份/还原操作,这也不是非 dmo 不可,直接用 spt 方式发送 backup/restore 命令给数据库就行

我的结论是,DMO 基本没啥用,它的取服务器列表不靠谱,其实也不是这个 com 组件的问题,是通过 odbc32 这个 api 来取 sql server 列表的方式不靠谱,直接调用 odbc32.dll 和在配置 ODBC 数据源工具中都能看到,DMO、ODBC配置工具应该也都是通过调用 odbc32.dll 来取服务器列表的。总之,dmo 能做到的事,都有其他可替代的方法

[此贴子已经被作者于2023-8-31 22:51编辑过]

#18
lcdhdt2023-08-31 23:07
回复 17楼 csyx
虽然不完全懂,但谢谢你。起码知道dmo也是调用api进行的查询。

[此贴子已经被作者于2023-8-31 23:08编辑过]

1