Dag,
Ik heb geleerd om te werken met een Dataset. Je leest dus eerst je bestand (MS Access) in een tabel (de dataset) en later ga je de mutaties via de DataAdapter daadwerkelijk in de database aanbrengen (daUpdate).
Maar wanneer er een "exception" plaatsvindt ten tijde van de mutatie op de database( bv de Primary Key bestaat al bij een insert row) dan is de 'foute rij' inmiddels al wél opgenomen in de dataset. En loopt iedere andere mutatie fout omdat VB steeds opnieuw zal proberen deze rij te muteren.
Ik heb het voorlopig opgelost door ingeval van een "exception" op de database. de dataset eerst leeg te maken ds.clear() en daarna weer opnieuw te vullen (da.fill)
Maar dit lijkt me een omslachtige methode.
Kan dat niet handiger?
Daarnaast: is het werken met een dataset bij een MSAccess database persé nodig? Kan je niet rechtstreeks op de database werken?
Een nadeel van een dataset kan mi al gauw een nadeel zijn bij een groot bestand. Het bestand wordt eerst "ingelezen" in de dataset. Er is dan geen primary key meer en zal je bij bewerkingen steeds de hele database moeten doorlopen om een record op te zoeken en te muteren. Bij een bestand van ca 30.000 records kan dat de zaak wel eens heel traag maken vermoed ik. (los van het feit dat je het ook nog eens in je werkgeheugen plaatst.)
Of doe ik iets verkeerd?
Bavelt
Ik heb geleerd om te werken met een Dataset. Je leest dus eerst je bestand (MS Access) in een tabel (de dataset) en later ga je de mutaties via de DataAdapter daadwerkelijk in de database aanbrengen (daUpdate).
Maar wanneer er een "exception" plaatsvindt ten tijde van de mutatie op de database( bv de Primary Key bestaat al bij een insert row) dan is de 'foute rij' inmiddels al wél opgenomen in de dataset. En loopt iedere andere mutatie fout omdat VB steeds opnieuw zal proberen deze rij te muteren.
Ik heb het voorlopig opgelost door ingeval van een "exception" op de database. de dataset eerst leeg te maken ds.clear() en daarna weer opnieuw te vullen (da.fill)
Maar dit lijkt me een omslachtige methode.
Kan dat niet handiger?
Daarnaast: is het werken met een dataset bij een MSAccess database persé nodig? Kan je niet rechtstreeks op de database werken?
Een nadeel van een dataset kan mi al gauw een nadeel zijn bij een groot bestand. Het bestand wordt eerst "ingelezen" in de dataset. Er is dan geen primary key meer en zal je bij bewerkingen steeds de hele database moeten doorlopen om een record op te zoeken en te muteren. Bij een bestand van ca 30.000 records kan dat de zaak wel eens heel traag maken vermoed ik. (los van het feit dat je het ook nog eens in je werkgeheugen plaatst.)
Of doe ik iets verkeerd?
Bavelt