login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[vb.net] access probje

Offline cloudstrife - 22/02/2006 19:15
Avatar van cloudstrifePHP beginner Stel je hebt in een access database 5 records waarvan de primaire sleutel een autonummering is, je verwijderd deze alle 5, je voegt een nieuwe record toe, deze krijgt dan als primaire sleute de waarde 6. Probleem is nu dat ik voor dat de record wordt toegevoegd al de id van die record moet weten, nu als er al 1 record staat is dit simpel dan haal je de id op en doe je + 1, maar wat als er geen record is? Weet iemand hoe je dit kan oplossen?

7 antwoorden

Gesponsorde links
Offline vinTage - 22/02/2006 19:16
Avatar van vinTage Nieuw lid je tabel niet leegmaken door rijen te deleten, maar door je tabel te legen 
Offline cloudstrife - 22/02/2006 19:21
Avatar van cloudstrife PHP beginner Ja probleem is dat niet gans de tabel geleegd mag worden, maar de gebruiker kan in het programma records verwijderen dus de kans dat hij ze allemaal verwijderd is er.
Offline Ontani - 22/02/2006 19:24
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
waarom moet je het nieuwe id nummer weten?
als je gewoon een record toevoegd en je laat het id nummer leeg maakt daar acces zelf wel een 6 van.
Offline cloudstrife - 22/02/2006 19:28
Avatar van cloudstrife PHP beginner Omdat er nog andere records in tabellen zitten worden opgeslagen voor die record en die hebben de id van de record die nog moet worden opgeslagen nodig.
Offline nemesiskoen - 22/02/2006 20:41 (laatste wijziging 22/02/2006 20:42)
Avatar van nemesiskoen Gouden medaille

PHP expert
Ik begrijp je probleem en het is vrijwel onmogelijk. Op max(id)+1 controleren is geen optie. Daarom moet je dus een query uitvoeren die enkel een nieuw record aanmaakt. "INSERT into data () VALUES ()"
Nu kan je wel het max(id) uitlezen en met dit werken.
Je update dan de lege data die overeenkomt met je id.
Offline cloudstrife - 22/02/2006 21:18
Avatar van cloudstrife PHP beginner Dus gewoon bij het laden van het formulier een lege record aanmaken en die id gebruiken.

Waar ik ook aan zat te denken is gewoon de autonummering achterwege laten en zelf voor een soort autonummering zorgen, dus telkens de max(id) lezen en die +1 doen en dan bij de insert query zelf de id meegeven. Zou dit een goede oplossing zijn? Die van die lege record zal ook werken maar nadeel is dat je dan een groot aantal waarden gaat overslaan en dit is waarschijnlijk ergens wel beperkt, of is die beperking te verwaarlozen?
Offline xSc - 23/02/2006 12:24 (laatste wijziging 23/02/2006 12:26)
Avatar van xSc Onbekend Je zou dat moeten afvangen.

Als je tabellen gekoppeld hebt, moet je wat doen wanneer het hoofdrecord verwijderd gaat worden. Bijv. met 1 van 3 onderstaande oplossingen:

- Je koppelt bijv. de bijbehorende records uit de andere tabellen aan een ander (reserve?)-id o.i.d., zodat de gegevens in ieder geval 'bereikbaar' zijn.
- Je kunt het verwijderen ook verbieden, zolang er in andere tabellen nog bijbehorende records aanwezig zijn.
- Je verwijdert alle bijbehorende gegevens, wanneer de gebruiker voor verwijderen kiest.

Citaat:
autonummering achterwege laten en zelf voor een soort autonummering zorgen


Dat lijkt me gevaarlijk. Er hoeft maar 1 keer iets mis te gaan en je krijgt vreemde resultaten.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s