Fråga : Transaktionsproblem

Detta är tar fram 2007 lagerför systemet med en SQLServer 2005 backend. Jag har ett rutinmässigt som gör multipelutnämningar in i lagerförasystemet. Jag har dubegged det och har fått det funktionsdugligt. Så jag avgjorde att göra det all mer robustt, genom att använda en transaktion som kunde rullas tillbaka, om ett problem occurs.

Shortly, når det har gjort .BeginTransen mig, öppnar 2 ADODB-recordsets. Förmiddag som I finner att ett fel uppstår nu, som understödjarecordseten öppnas. Jag bytte mitt kodifierar omkring, så att understödjarecordseten öppnas först. Så nu felet uppstår när det försök att öppna den annan recordseten. Med andra ord felet uppstår på, vilkendera recordset öppnas understöder. Det gångna tillbaka felet är -2147467259

I kunde skriva om mitt kodifierar, så att recordsets inte öppnas under en transaktion, men jag skulle föredrar att vara kompetent att lämna mitt för att kodifiera, som den is.

Why kan mig öppnar en recordset lyckat och har därefter ett fel på understödja?

" klar "

Svar : Transaktionsproblem

Using kodifiera i det släkt posta, betrakta vad händer, när adjacent_find överför left= (22, A) och right= (22, A) till isDistEqual (). Distanserar matchen, men deltagareLEGITIMATIONEN matchar inte och så
       left.studentName! = right.studentName
är falskt. Så detta parar hoppas over av adjacent_find.

Så du ska vet inte ens från adjacent_find som där var även två tillträden = (22, A). Så du måste inte att oroa om att få 22 fot: A A, C, D efter 22, A ska ses endast en gång.
Andra lösningar  
 
programming4us programming4us