Showing posts with label changing. Show all posts
Showing posts with label changing. Show all posts

Wednesday, March 21, 2012

Help on changing the PW on SQL2000

Hi, all,
I got a problem to change the users' password from the VB
side. It is almost same as one from SQL7, and it works on
SQL7 but I have problem on SQL2000. It is ok when I run it
from QA, what's wrong? Do I need set ANSI NULLS?
Any one can help? Thanks you very much and have a good one
Abchawk
Here is the Stored procedure i wrote if it is sysadmin
to change others PW, the login will be the person who PW
will be changed, otherwise, the person changes his own PW,
in this case, login will be ' ')
CREATE PROCEDURE I_USER_CHANGE_PASSWORD_SP
(
@.LOGIN NVARCHAR(10)=' ',
@.OLDPASSWD NVARCHAR(10),
@.NEWPASSWD NVARCHAR(10)
) AS
DECLARE @.OUT INT
IF @.LOGIN <>' ' BEGIN
EXEC @.OUT = sp_password NULL ,
@.NEWPASSWD,@.LOGIN
END
ELSE BEGIN
EXEC @.OUT = sp_password
@.OLDPASSWD,@.NEWPASSWD
END
RETURN @.OUT
GO
****************************************
**************
The VB side code like this:
Set adoCommand = CreateObject("ADODB.Command")
mySQL = "I_USER_CHANGE_PASSWORD_SP "
With adoCommand
.ActiveConnection = strCnn
.CommandText = mySQL
.CommandTimeout = 100
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("RETURN",
adInteger, adParamReturnValue)
If SecurityLevel < 2 Or Trim(Me.txtLogin) =
userName Then
.Parameters.Append .CreateParameter
("Login", adWChar, adParamInput, 10, " ")
.Parameters.Append .CreateParameter
("OldPasswd", adWChar, adParamInput, 10, Trim
(Me.txtOldPassword))
Else
.Parameters.Append .CreateParameter
("Login", adWChar, adParamInput, 10, Trim(Me.txtLogin))
.Parameters.Append .CreateParameter
("OldPasswd", adWChar, adParamInput, 10, Null)
End If
.Parameters.Append .CreateParameter
("NewPasswd", adWChar, adParamInput, 10, Trim
(Me.txtNewPassword))
End With
adoCommand.Execute
OUT = adoCommand(0)
If OUT <> 1 Then
MsgBox "Change password successfully",
vbInformation
Else
MsgBox "Sorry,Changing password failured",
vbInformation
End If
Set adoCommand = Nothing
****************************************
******************Below is a VBScript code snippet that shows how to execute a proc with
parameters. This way, you don't have to build the SQL with properly quoted
strings.
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = connection
cmd.CommandType = 'adCmdStoredProcedure
cmd.CommandText = "sp_addlogin"
Set pReturnCode = cmd.CreateParameter("@.RETURN_CODE")
pReturnCode.Type = adInteger
pReturnCode.Direction = 4 'adParamReturnValue
cmd.Parameters.Append pReturnCode
Set pLoginName = cmd.CreateParameter("@.loginame")
pLoginName.Type = adVarWChar
pLoginName.Direction = adParamInput
pLoginName.Size = 128
pLoginName.Value = "MyLogin"
cmd.Parameters.Append pLoginName
Set pLoginName = cmd.CreateParameter("@.passwd")
pLoginName.Type = adVarWChar
pLoginName.Direction = adParamInput
pLoginName.Size = 128
pLoginName.Value = "MyLoginPassword"
cmd.Parameters.Append pLoginName
cmd.Execute
'display return code
MsgBox cmd.Parameters(0).Name & "=" & cmd.Parameters(0).Value
connection.Close
Hope this helps.
Dan Guzman
SQL Server MVP
"abchawk" <anonymous@.discussions.microsoft.com> wrote in message
news:005d01c4d72f$1c866120$a601280a@.phx.gbl...
> Hi, All,
> I think I found the reason that cause the problem. It is
> the single quota ('). If I run SQL statement in VB
> like "sp_password '" & strOldPW & "','" & strNewPW & "'"
> it is not problem at all, but how can I do samething in VB
> using ado command? Does anyone know it?
> Samething for sp_addlogin, I create the login but can not
> access the DB because of Password. Using SQL statement
> like above, it is fine. just becasue the data type is
> sysname? For SQL 7 , double quota works fine, but not in
> SQL 2000
> Thanks and have a great day.
> hawk

Wednesday, March 7, 2012

Help modifying MDX - Allow for Ownership Change in Team System

I am asking for your help solving a problem. I am very new to MDX and OLAP in general.

Here is my statement of the problem: Changing ownership of Bugs in Team System results in incorrect reporting of Completed Work.

I have crafted the following MDX , which works fine if Ownership of a Bug or Work Item is not changed.

=================================================================================

WITH

MEMBER [Measures].[Completed Work On Period Start] AS

(

(STRTOMember(@.prmStartDate)),

[Measures].[Microsoft_VSTS_Scheduling_CompletedWork]

)

MEMBER [Measures].[Completed Work On Period End] AS

(

(STRTOMember(@.prmEndDate)),

[Measures].[Microsoft_VSTS_Scheduling_CompletedWork]

)

MEMBER [Measures].[Completed_Work] AS

(

[Measures].[Completed Work On Period End] - [Measures].[Completed Work On Period Start]

)

SELECT NON EMPTY

(

FILTER

(

NONEMPTYCROSSJOIN

(

[Assigned To].[Person].[Person],

[Work Item].[System_Id].[System_Id],

[Work Item].[System_Title].[System_Title],

[Work Item].[System_WorkItemType].[System_WorkItemType],

[Measures].[Current Work Item Count],

4

),

[Measures].[Completed_Work] > 0

)

)

ON ROWS,

NON EMPTY

{

[Measures].[Work Item Url],

[Measures].[Completed_Work]

}

ON COLUMNS

FROM

[Team System]

=================================================================================

The problem arises when anyone changes ownership of a bug (or work item).

I have used [Changed By].[Person].[Person] and [Assigned To].[Person].[Person] as the first element in the NONEMPTYCROSSJOIN, and neither return the proper result.

BTW: I know that NONEMPTYCROSSJOIN is depreciated, but I am unsure how to replace it.

Thanks in advance.

Hi Doug:

At first glance your MDX look sound. No obvious reason why changing Work Item ownership results in the wrong answer. Which leads me to think the issue is in the dimensional model, or fact table. Not in the MDX of your query. As an aside, you asked how to emulate the NONEMPTYCROSSJOIN with a different statement. I created an example below with two equivalent statements. One uses the NONEMPTYCROSSJOIN, and the other uses a FILTER() with a CROSSJOIN to give the same results. The samples work on the Adventure Works database.

To help track down the root of your changing ownership problem it will help to see the sample fact table and query result before the problem is created and after the problem is created.

Hope this helps - PGoldy

SELECT

{[Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount]} ON COLUMNS

,NONEMPTYCROSSJOIN([Customer].[Customer Geography].[France].Children

,

{[Date].[Calendar].[Calendar Year].&[2004]}, [Measures].[Internet Sales Amount], 2)

ON ROWS

FROM [Adventure Works]

WHERE (

[Product].[Product Categories].[Category].&[3]

)

////

SELECT

{[Measures].[Internet Sales Amount], [Measures].[Internet Tax Amount]} ON COLUMNS

,FILTER(CROSSJOIN([Customer].[Customer Geography].[France].Children

,

{[Date].[Calendar].[Calendar Year].&[2004]}), [Measures].[Internet Sales Amount] <> 0)

ON ROWS

FROM [Adventure Works]

WHERE (

[Product].[Product Categories].[Category].&[3]

)