🇪🇺 pro Europa!
insert into ... select ...;
if gelukt
delete ...;
commit;
else
rollback;
end;
en dat had je vast zelf wel kunnen bedenken.
Doorgaans zijn tabellen overigens zo ontworpen dat er geen twee tabellen zijn waartussen het logisch/wenselijk/mogelijk is records te verplaatsen...
Btw, volgende keer graag wat meer, duidelijker en beter uitleggen wat je precies wilt. Want datgene wat je wilt is waarschijnlijk fout als je twee identieke tabellen hebt
[ Voor 23% gewijzigd door ACM op 22-12-2002 22:58 ]
Nu wil ik dus records kunnen verplaatsen (m.b.v. ASP.NET)
Maar er is ds geen move commando ofzo? In ieder geval bedankt
🇪🇺 pro Europa!
En zelf een simpele procedure schrijven is ook weer niet zo moeilijk natuurlijk
Wat alleen niet handig is als je je product-id als primary key neemt (erg gebruikelijk) en je van elk product meerdere geschiedenisvarianten wilt bijhouden (prijswijzigingen, etc).
Maar als dat soort dingen geen bezwaar is valt er zeker wel wat voor te zeggen
[ Voor 26% gewijzigd door ACM op 22-12-2002 23:03 ]
Als je een complete geschiedenis wilt bewaren, heeft het bovendien de voorkeur om met triggers op de database te werken voor dit soort acties, ipv het in je code te vangen. Triggers werken sneller, en ook als je eventueel een andere client voor je database gaat schrijven.
So much fun, it's a miracle it isn't declared illegal: driving a motorcycle
Anders moet je misschien voor elke actie mbt het product iets in de geschiedenis tabel plaatsen.
En wat voor gegevens wil je in je geschiedenis tabel plaatsen?
Wanneer hoort een record tot de geschiedenis?
ALs ik de status zet op "uitgeleverd" dan moet deze cverplaatst worden naar de tabel "geschiedenis".
1 record bestaat uit meerdere velden o.a. Ordernummer, datumstatuswijzizing etc etc.
Dus die datum zit allemaal al goed. Het enige wat ik niet voor elkaar krijg is het records verplaatsen naar de tabel "geschiedenis"
🇪🇺 pro Europa!
Waarom zou je hem dan nog willen verplaatsen?
Anders moet je inderdaad na het 'op uitgeleverd' zetten een INSERT doen in de geschiedenis tabel en dan daarna een DELETE op de Products tabel.
Dit kan ook met een trigger?
Maar waarom zou je dan nog een veld uitgeleverd bijhouden?
er zijn btw wel meerdere statussen mogelijk, uitgelever, geblokkeerd en nog een paar. vandaar dat statusveld.
Iig bedankt.
[ Voor 48% gewijzigd door Rhapsody op 23-12-2002 12:10 ]
🇪🇺 pro Europa!
Het verplaatsen is eigenlijk helemaal niet nodig, je kunt gewoon alles in 1 tabel mikken, zodra je een wijziging aan je product doorvoert voeg je een record in met de nieuwe gegevens. Bij de oude zet je de flag history op1, en kan je bijvoorbeeld info opslaan over wanneer deze geschiedenis is geworden.Anders moet je misschien voor elke actie mbt het product iets in de geschiedenis tabel plaatsen.
Als je het op deze manier doet kan je later ook nog bijv oude offertes bekijken met de toen geldende prijzen, dat kan soms enorm handig zijn omdat je anders met andere gegevens werkt als de mensen die een ofefrte op papier hebben die al een tijdje oud is.