David Emerson
davide at dalyn.co.nz
Sun Jul 4 17:12:43 CDT 2004
OK - getting closer.
I have a procedure in my FE like this -
Dim cmd As ADODB.Command, strCurrentUser As String, rst As ADODB.Recordset
'This returns the user (eg egas\david)
Set cmd = basGetCommand("dbo.spGetCurrentUser", adCmdStoredProc)
cmd.Parameters.Append cmd.CreateParameter("@CurrUser", adVarChar,
adParamOutput, 100)
cmd.Execute
strCurrentUser = cmd.Parameters("@CurrUser")
Set cmd = basGetCommand("master..xp_logininfo", adCmdStoredProc)
cmd.Parameters.Append cmd.CreateParameter("@acctname", adVarChar,
adParamInput, 100, strCurrentUser)
Set rst = cmd.Execute
basGetCurrentRole = ""
If Not (rst.BOF Or rst.EOF) Then 'Record exist <= Error occurs
here
rst.MoveFirst
While Not rst.EOF
'Users should only belong to 1 login group
If Not IsNull(rst![Permission Path]) Then basGetCurrentRole =
rst![Permission Path]
rst.MoveNext
Wend
End If
When this is run I get an error on the line above where indicated. The
number is 3704 - Operation is not allowed when object is closed. Why
should it be closed when I have just opened it?
Billy's code below works ok if run from Query Analyzer. I have given the
users permissions to execute master..xp_logininfo.
David
At 4/07/2004, you wrote:
>xp_logininfo sproc is in master db... so try...
>
>/* -- cut here */
>DECLARE @sys_usr varchar(100)
>SET @sys_usr = SYSTEM_USER
>SELECT @sys_usr
>EXEC master..xp_logininfo @sys_usr
>/* -- cut here */
>
>be aware of the execute permissions of this sproc...from bol, it reads:
>
>Execute permissions for xp_logininfo default to members of the db_owner
>fixed database role in the master database and members of the sysadmin
>fixed server role, but can be granted to other users.
>
>HTH
>
>Billy