MSSQL - Jak pobrac wartosc pola Identity podczas Append?

0

Mam nastepujacy problem: Jest sobie tabela na serwerze MSSQL. W tabeli znajduje sie pole ID z ustawionym Identity (autoincrement). Otwieram tabele w trybie dodawania (append). Jak przed wyslaniem zmian w rekordzie na serwer (Post) pobrac wartosc tego pola? Za kazdym razem dostaje NULL. Cala operacja jest objeta transakcja. Uzywam ADO (standadowe komponenty z zakladki dbGo)? Jest mi bardzo potrzebne i bede bardzo wdzieczny za kazda sugestie.

0

You can use @@IDENTITY - see Books Online. Assuming you have MSSQL 2000,
there are also SCOPE_IDENTITY(), and IDENT_CURRENT(), but the functionality
is slightly different in each case. To get the new value while in the stored
procedure you would use SCOPE_IDENTITY() instead.

cytat z grup - powinien Cię naprowadzić :P

0

Hmm... SCOPE_IDENTITY bylo by idealne, ale zadziala dopiero po Post. Dla odmiany IDENT_CURRENT dziala przed Post ale olewa sesje i jak odpale aplikacje na kilku kompach i userzy otworza ta sama formatke to dostana ta sama wartosc. Widac trzeba sobie jakas proteze dorobic.

// EDIT

OK, wymusilem po prostu wypelnienie czesci formularza na poczatku, dzieki czemu moge zrobic Post i odczytac to Identity. W razie rezygnacji z wypelniaia calosci i tak robi sie Rollback, takze po sprawie. Delikatnie zmienilo obsluge, ale moze byc. Dzieki za pomoc.

0

A nie możesz po prostu zrobić w onBeforePost:

SELECT max(ID) from tabela

I tak dostaniesz ostatnie ID(nie wiem, czy o to Ci chodzi)

?

0
Juhas napisał(a)

A nie możesz po prostu zrobić w onBeforePost:

SELECT max(ID) from tabela

I tak dostaniesz ostatnie ID(nie wiem, czy o to Ci chodzi)

wartość Identity i wartość ostatniego ID nie muszą się pokrywać - wystarczy usunąć ostatni rekord i już są inne

1 użytkowników online, w tym zalogowanych: 0, gości: 1