webForumDet fria alternativet

@@IDENTITY vid olika conn-objekt

11 svar · 230 visningar · startad av OveRRidE

OveRRidEMedlem sedan feb. 200112 078 inlägg
#1

@@IDENTITY i Access är beroende av att man använder samma connection-objekt som vid uppdateringen, um?

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jao.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#3

Tackar. :)

Då har jag ett problem.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Läckert.

På vilket sätt?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#5

Jag använder två funktioner i applikationen, som jag alltid gör om jag inte bygger komponent:

  • getConn
  • execSQL

getConn instansieras på nytt varje gång jag kör något genom execSQL, vilket innebär att den även förstörs när execSQL är klar.

There is your problem. ;)

@ndersMedlem sedan juni 200032 969 inlägg
#6

Kan du se till att ha ett unikt id för varje session som gör insert, så lagra det i tabellen. Sedan kan du plocka fram med SELECT MAX det räknarvärde som är högst, där sessions-id är korrekt.

Mvh,

OveRRidEMedlem sedan feb. 200112 078 inlägg
#7

Jo, jag vet att man kan göra så, men jag vill vara 100% säker på att det inte blir inkonsistens (?) om någon mikklar i databasen på annat håll samtidigt.

Jag kör en 'SELECT TOP 1 .... ORDER BY id DESC' just nu.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Kan du inte bara slänga med någon sorts sessionsid?

/me fails to see problem.

OveRRidEMedlem sedan feb. 200112 078 inlägg
#9

Jo, men id är givetvis en räknare.

Problemet är att (visserligen ganska liten) någon uppdaterar precis innan en annan användare har hunnit få tillbaks sitt id från databasen. Då får denna fel id, eftersom hans då ju inte är sist längre. Du måste ju känna igen det.

Vad menar du med att slänga med sessionsid? I tabellen då eller och jämföra med vid hämtningen av id:t?

@ndersMedlem sedan juni 200032 969 inlägg
#10

Det jag menar:

mittSessionsidEllerLiknande = Session.SessionID
ExecSQL ("Insert into tabell (bla, bla2, ControlID) values ('bla', 'bla', " & mittSessionsidEllerLiknande)
set rs = ExecSQL("Select top 1 id from tabell where ControlID = " & mittSessionsidEllerLiknande)
insertid = rs(0)

Missförstår vi varandra? Även om någon hinner med en insert emellan, så spelar inte det någon roll, eftersom de har olika kontrollsiffror.

Mvh,

OveRRidEMedlem sedan feb. 200112 078 inlägg
#11

Jo, jag fattade vad du menade. ;) Nu fattar jag mer.

Det är en lösning, faktiskt. Tackar. :D

@ndersMedlem sedan juni 200032 969 inlägg
#12

Sure thing.

Glad att du förstod min ful-pseudo. ;)

Mvh,

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)