Hej Hej igen, skall jag tolka bristen på svar som att ingen vet ;) ? Orkar inte läsa igenom nu, sorry... =) Jag ställde en liknande fråga för ganska länge sedan men lyckades Det finns olika sätt att lösa detta på, som är mer eller mindre komplicerade. Jag skulle satsa på SQLite, den är hyffsat enkel... Exempelprojekt finns på: http://www.freevbcode.com/ShowCode.asp?ID=6893 sqlite eller ado får det bli, förutsatt att ado har detta inbyggt (skall kolla på´t).vb6, databas låsning
tänkte göra ett program som loggar anvnamn, programnamn och "antal ggr körda".
syftet är att jag vill kolla vem och hur ofta samt vilket program som användarna har kört.
först tänkte jag bara göra en textfil som loggar, ngn scripting object historia. sen kom jag på att om 2 el fler precis samtidigt råkar köra ngt program så kommer filen vara låst och bara en anv kommer kunna uppdatera.
så, hur löser jag problemet med låsning?
skall jag använda ngn databas, i så fall hur (program exempel)
ms access har jag inte, så nåt annat än det får det bli.
strukturen skall vara nåt i stil med
USERNAME PROGRAM AMT CALLS LAST USED
-----------------------------------------------------------------------------------------------
kalle k qtcf calculator 344 11 DEC 05
gurra g qtcb calculator 50 12 DEC 05
berra b statcalc 501 9 AUG 04
kalle k statlab 34 22 SEPT 05
och, om nu kalle och gurra skulle köra samma program samtidigt, låt säga att båda kör qtcf calculator,
så blir det ju problem då filen är låst (skrivs av) den som var lite före. således missar jag statistik
ideér och konkreta exempel mottages varmt, misstänker att ngn databas som kan "spara transaktioner"
och utföra dem sekventiellt fortast möjligt, om efter ev låsning.
själva nyckeln är programnamnet och användarnamnet tillsammans.
Sv: vb6, databas låsning
Detta måste ju vara den mest klassiska databasfrågan alla kategorier, alla tider (fast jag kan inte svaret själv tydligen).
Om 2 el fler anv är inne i samma tabell, eller på samma record..hur hanterar man låsningen?Sv:vb6, databas låsning
Tänkte bara ge ett tips på en databas du kan använda: SQLite. Den ska vara hyfsad prestandamässigt, inte kräva någon installation, spara allt i en enda fil, osv.
Kolla på det, så kanske du får något uppslag?Sv: vb6, databas låsning
inte få till det med dom svar jag fick. Du kanske har nytta av dom.
http://www.pellesoft.se/communicate/forum/view.aspx?msgid=125274
Mvh/OlofSv: vb6, databas låsning
Snyggaste är väl något av COM+singleton, queued components, eller msmq,
En fullösning är att försöka skriva till filen, fånga felet och försöka igen slumpmässigt efter någonting mellan 20ms och 300ms, och att försöka göra det 15 ggr innan man ger upp. I Jet4 Access finns detta inkapslat i ADO. Och du måste inte ha MS Access installerat för att använda en Access-databas (men det kan vara lite krångligt att skapa en databas utan det förstås..)
Tiita på Jet OLEDB:Lock Retry m.m. här
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdrefjetprovspec.aspSv:vb6, databas låsning
Sv: vb6, databas låsning
om jag nu gör en egen vblösning, som jobbar mot en textfil...hur gör jag för att loopa programmet (att ligga och känna av : nu är filen låst, nu är filen låst, nu är filen inte låst - skriver till fil) så att det inte äter upp all processorkraft? visst - man kan ju göra en enkel vbsnurra som har doevents etc, men finns ngt snyggt sätt att sätta låg prioritet på tråden så den inte tar windows hela processorkraft för en såpass enkel funktion som detta ändå är?
det gäller alltså vb6.