Questione : Problema di transazione

Ciò è sistema di riserva di accesso 2007 con un'estremità posteriore di SQLServer 2005. Ho una procedura che fa gli invii multipli nel sistema di riserva. Dubegged esso e la ho ottenuta che funziona. Così ho deciso di renderlo tutto il più robusta usando una transazione che potrebbe essere rotolata indietro se un problema occurs.

subito dopo fare il .BeginTrans io apre 2 recordsets di ADODB. Sto trovando che un errore ora accade mentre il secondo recordset è aperto. Ho scambiato il mio codice intorno in moda da aprire il secondo recordset in primo luogo. Così ora l'errore accade quando prova ad aprire l'altro recordset. Cioè l'errore si presenta su quale recordset è aperto in secondo luogo. L'errore restituito è -2147467259

I potrebbe riscrivere il mio codice in moda da non aprire i recordsets durante la transazione, ma preferirei essere in grado di lasciare il mio codice come is.

Why può io apre un recordset con successo ed allora ha un errore sul secondo?

class= del

Risposta : Problema di transazione

Using il codice nell'alberino relativo, considerare che cosa accade quando il adjacent_find trasmette il left= (22, A) e il right= (22, A) a isDistEqual (). Le distanze abbinano, ma l'identificazione dell'allievo non abbina e così
       left.studentName! = right.studentName
è falso. Così questo accoppiamento è saltato da adjacent_find.

Così, neppure non saprete da adjacent_find che là persino era due voci = (22, A). Così, non dovete preoccuparti per ottenere 22 piedi: A, A, C, D da 22, A sarà veduto soltanto una volta.
Altre soluzioni  
 
programming4us programming4us