JWColby
jwcolby at colbyconsulting.com
Sun Apr 1 12:24:42 CDT 2007
Francisco, >I also would avoid your coding from the client end to add the record, instead I'd setup parameters and pass them to a sproc (stored procedure) and allow the sproc to return a value (scope_identity()) Of course that is true. Unfortunately my client is now entering the third week of the database corrupting 6 times per day. I am doing an emergency port to SQL Server to get THAT problem stabilized. I just want my APPLICATION to run, tweaks can follow. For now, I have the code shown below and need to change it, 'cause it don't work no more. Dim RS As ADODB.Recordset If mlngUserID = 0 Then Exit Function Set RS = New ADODB.Recordset With RS .Open "usystbllwsLog", gcnn, adOpenKeyset, adLockPessimistic 'build a logout record. .AddNew !LWSL_IDLWSU = mlngUserID !LWSL_FE = CurrentProject.name !LWSL_Login = blnLogIn !LWSL_WorkstationID = CurrentMachineName() mlngLogID = !LWSL_ID .Update .Close End With Set RS = Nothing The code mlngLogID = !LWSL_ID Fails because mlngLogID is a long int which cannot contain a null, and !LWSL_ID returns a null. Thus I need an emergency fix that gives me back my new ID. John W. Colby Colby Consulting www.ColbyConsulting.com -----Original Message----- From: dba-sqlserver-bounces at databaseadvisors.com [mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of Francisco Tapia Sent: Sunday, April 01, 2007 1:06 PM To: dba-sqlserver at databaseadvisors.com Subject: Re: [dba-SQLServer] Getting the PK of a SQL Server table you always want to use scope_identity(), because you never know if you will introduce code in the future that may write at the same time when your code is executing, thus providing you w/ a false @@identity I also would avoid your coding from the client end to add the record, instead I'd setup parameters and pass them to a sproc (stored procedure) and allow the sproc to return a value (scope_identity())