我对SQLDMO很不了解,不知道该怎么用。
写了下面一段代码,用来判断SQL Server 状态并做相应处理,运行有问题,请大虾指正,非常感谢:
long ll_status
oleobject lmss
lmss = create oleobject
lmss.connectToNewObject("SQLDMO.sqlserver")
//lmss.LoginTimeOut = 10 //执行到这里时报属性LoginTimeOut找不到
lmss.connect("192.168.252.32", "sa", "") //执行到这里时报方法connect找不到(见备注1)
ll_status = lmss.status
choose case ll_status
.........
备注1:
Error:Name not found calling external object function connect at line 10
------解决方案--------------------
regsvr32 sqldmo.dll即可显示成功注册
------解决方案--------------------
//判断SQL Server是否已经启动,如果没有启动则做相应处理
st_status.text='判断SQL Server是否已经启动 ...'
OLEObject PBObject
long ll_status
PBObject = CREATE OLEObject
ll_status = PBObject.ConnectToNewObject ("SQLDMO.SQLserver")
string ls_serverName
integer li_Return
string ls_UserName
String ls_Password
Constant Integer SQLDMOSVC_Unknown =0//未知状态
Constant Integer SQLDMOSVC_Running =1//已经启动
Constant Integer SQLDMOSVC_Paused =2//SQL Server为暂停状态
Constant Integer SQLDMOS
VC_Stopped =3//SQL Server为停止状态
Constant Integer SQLDMOSVC_Starting =4//SQLSERVER正在启动(关闭-->启动)
Constant Integer SQLDMOSVC_Stopping =5//SQLSERVER正在关闭
Constant integer SQLDMOSVC_Continuing=6//SQLSERVER正在启动(暂停-->启动)
Constant Integer SQLDMOSVC_Pausing =7//SQLSERVER正在暂停(启动-->暂停)
ls_ServerName='218.71.42.229'
ls_UserName='sa'
ls_password='
IF ll_status = 0 THEN //连接成功
PBObject.name = ls_servername
PBObject.logintimeout=10
PBObject.LoginSecure = True //以NT方式连接
//PBObject.LoginSecure = false //以SQL Server方式连接
IF isNull(PBObject) Then Return
Try
li_return = PBObject.Status
Catch(RunTimeError rte)
Messagebox("提示","没有安装SQLServer",StopSign!)
End try
Choose cASE li_return
cASE 1 //已经启动
st_Status.text=ls_ServerName+'已经启动SQLSERVER服务器'
//PBObject.stop()//停止SQLSERVER
cASE 2 //SQL Server为暂停状态
st_status.text = '启动' + ls_servername + '上的SQL Server ...(暂停-->启动)'
BObject.Continue()
cASE 3 //SQL Server为停止状态
st_status.text = '启动'+ ls_servername + '上的SQL Server ...(停止-->启动)'
PBObject.Start(false,ls_servername,ls_username,ls_password)//启动SQL Server
cASE 4 //SQLSERVER正在启动(关闭-->启动)
st_status.text = ls_servername + '上的SQL Server 正在启动(关闭-->启动)'
PBObject.start(false,'sa',')//停止SQLSERVER
cASE 5 //SQLSERVER正在关闭
st_status.text = ls_servername + '上的SQL Server 正在关闭'
cASE 6 //SQLSERVER正在启动(暂停-->启动)
BObject.Continue()
cASE 3 //SQL Server为停止状态
st_status.text = '启动'+ ls_servername + '上的SQL Server ...(停止-->启动)'
PBObject.Start(false,ls_servername,ls_username,ls_password)//启动SQL Server
cASE 4 //SQLSERVER正在启动(关闭-->启动)
st_status.text = ls_servername + '上的SQL Server 正在启动(关闭-->启动)'
PBObject.start(false,'sa',')//停止SQLSERVER
cASE 5 //SQLSERVER正在关闭
st_status.text = ls_servername + '上的SQL Server 正在关闭'
cASE 6 //SQLSERVER正在启动(暂停-->启动)
st_status.text = ls_servername + '上的SQL Server 正在启动(暂停-->启动)'
cASE 7 //SQLSERVER正在暂停(启动-->暂停)
st_status.text = ls_servername + '上的SQL Server 正在暂停'
cASE 0 //未知状态
st_status.text = '未知'+ls_servername + '上的SQL Server 状态'
End Choose
ELSE
messagebox("系统提示","数据库连接失败!~n请检查输入的用户名和口令是否正确"
return
end if
Destroy(PBObject)