Is there a trick to updating an expired password? I catch the error easily enough (28001) and prompt for a new password, but when I call OraSession.ChangePassword it throws the OCI_INVALID_HANDLE error and doesn't update the password.
My research showed (from the bug fix history) that there was a bug a while back that was supposed to have been fixed, but I seem to be hitting it again:
- Bug with TOraSession.ChangePassword when the user password is expired fixed (3442)
OCI_INVALID_HANDLE error when changing expired password
So there is a trick...
Thanks for confirming that it works. After dinking around with it for a while longer I found my problem.
I was trying to change the password from the OraSessionError handler directly. Once I figured out that I had to catch the expired password error after the call to Connect, everything worked fine.
Along the way, I tried to use the built in login dialog (ConnectPrompt) and the ConnectDialog component, but couldn't control the flow well enough. I finally decided to write my own login dialog and process.
I was trying to change the password from the OraSessionError handler directly. Once I figured out that I had to catch the expired password error after the call to Connect, everything worked fine.
Along the way, I tried to use the built in login dialog (ConnectPrompt) and the ConnectDialog component, but couldn't control the flow well enough. I finally decided to write my own login dialog and process.