使用sp_OACreate出现的怪问题
瘦身小蚂蚁 2008-12-04 07:58:29 /*
功能:将AD用户加入组
*/
CREATE PROCEDURE [dbo].[AddToGroup]
(
@Userid Varchar(30),
@GroupId VarChar(30)
)
AS
declare @i int,@intRet int,@intRetCode int,@strErr varchar (255),@strErr1 varchar (255),@CurrentLDAP varchar (200)
Declare @bitUserExists Bit
Set @bitUserExists=0
Declare @bitGroupExists Bit
Set @bitGroupExists=0
Declare @OpResult Int
Set @OpResult=0
/* 首先创建Com 实例 */
exec @intRetCode = sp_OACreate 'cmrADUse.ADUser', @i out
/* 创建成功,开始调用 */
IF (@intRetCode <> 0) goto on_error
EXEC @intRetCode = sp_OAMethod @i,'FindUser',@bitUserExists Out,@Userid /* 查找AD用户 */
If @bitUserExists=1
Begin
EXEC @intRetCode = sp_OAMethod @i,'FindUser', @bitGroupExists Out,@GroupId /* 查找AD组 */
If @bitGroupExists=1
Begin
-- 将AD用户加入组
EXEC @intRetCode = sp_OAMethod @i,'AddMemberToGroup',null,@Userid,@GroupId /* 将AD用户加入组 */
Set @OpResult=0
End
Else
Begin
Print '不存在AD组:'+@GroupId
Set @OpResult=-2
End
End
Else
Begin
Print '不存在AD用户:'+@Userid
Set @OpResult=-1
End
/* 销毁Com 实例 */
exec sp_OADestroy @i
RETURN(@OpResult)
on_error:
BEGIN
/* 错误处理 */
EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:'
PRINT @strErr + ' ' + @strErr1
EXEC sp_OADestroy @i
RETURN(1)
END
当调用这个存储过程(第一个参数为'liutao02')时,会出现提示信息:“不存在AD用户:liutao02”
[AddToGroup] 'liutao02','123456'
只有在第一个参数为'liutao02'时出现此提示,查看AD,里面有liutao02用户并且无异常状态
请问各位大侠,这是怎么回事?