Delphi Gebruikersgroep

 

Home    Up

Records verwijderen dmv van ADOQuery geeft update probleem

Het probleem wat zit voor doet is dat wanneer 2 opzich zelf staande programma's naar dezelfde gegevens kijken dmv een ADOQuery, bij het verwijderen van een record in de ene en bij een refresh in het andere programma wordt er een error geven en daarna de records bijwerkt. 
De errormelding is alsvolgt: 

"EOleException with message 'De sleutelwaarde voor deze rij is gewijzigd of verwijderd bij de gegevensopslag. De lokale rij wordt nu verwijderd'" 

Opzich heel logisch maar mijn vraag is hoe ik de refresh kan automatiseren en dat alle clients geupdate worden en dat de EOleExeption wordt onder drukt of netter afgehandeld. 

Alle ideeen zijn welkom...

--

Volgens mij moet je bij die Access bagger iets instellen om multiuser gebruik mogelijk te maken (was in ieder geval zo in access 97). 

Als ik je goed begrijp, is je probleem dat programma 1 een rij wil verwijderen met sleutel x, terwijl programma 2 in die zelfde regel aan het editen is. Als dat zo is, lijkt het me handig als je op zijn minst een of andere vorm van Locking gaat gebruiken. Ik weet niet hoe dat in ado moet, maar zoek anders eens naar adoset.lock of adoset.recordlock ofzo. 

Het afvangen van die foutmelding kun je volgens mij doen met een try except. 

Dus 
Try 
adoset.refresh; 
except 
een of andere melding of je gooit je melding weg 
end 

Ik denk echter dat je probleem meer het ontwerp van je database of systeem is, dan het afvangen van de exception (die je als het goed is alleen in een uitzonderingssituatie zou moeten krijgen). 

Benno