Jak jsem vyřešil použití sql metod při práci v Transakci

Při ladění webu Ggdag jsem narazil na zajímavý problém. Totiž v něm používám transakce a používal jsem v něm metody z třídy MSStoredProceduresI.

A když jsem se snažil získat počet řádků v tabulce, tam mi to vyhodilo tuto chybu: “ExecuteNonQuery requires the command to have a transaction when the connection assigned to the command is in a pending local transaction.

The Transaction property of the command has not been initialized.” což v překladu znamená že SqlCommand musí mít nastavenou transakci.

Zatím ještě nevím zda to nějak kontroluje na kontext nebo pokud v DB právě v tento čas probíhá být jen jediná transakce, tak musím u všech příkazů které do ní během této doby posílat i transakci, třeba i v null.

A teď k tomu jak jsem se nakonec rozhodl to vyřešit. Možnosti jsem měl jako vždy několik.

  1. Nepoužívat transakce – to se mi zdálo jako nejméně vhodné, protože transakce ačkoliv je zatím moc nepotřebuji(a i zde bych se bez nich obešel), tak to neznamená, že v budoucnu je nevyužiju naplno.
  2. Použít transakce všude – to se mi zdálo jako docela rozumné řešení, ale na druhou stranu bych musel skoro všude uvádět null, a musel bych veškeré volání metod MSStoredProceduresI upravit.
  3. Udělat 1 třídu pro transakce, s tím že pro transakce by například ty metody končili “T” – Toto byl jeden vážný kandidát, ale nakonec jsem se rozhodl pro bod 4)
  4. Udělat 2 třídy a ve 2. mít metody, které využívám v transakcích. – Tuto možnost jsem si vybral, nejtěžší pro mě bylo vybrat název této druhé třídy ale nakonec jsem si zvolil MSTSP(velmi často pojmenovávám třídy akronymy)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *