Du kan evt. bruge en temporær tabel med en auto_increment, og rent faktisk indsætte en record og hente værdien med insert_id() - Når du så skal gemme den rigtigt indsætter du bare denne id ind i den rigtige tabel...
Det er fordi jeg er ved at lave et system til indkøb af vare som skal snakke sammen med C5. Her bliver en bruger præsenteret for en liste med vare der skal indkøbes, når denne så ringer til leverandøren skal jeg forud kunne vise en indkøbs id inden selve indkøbet foretages og dermed er der ikke oprettet nogle records ;o)
Det er altså den liste med vare, som skal indkøbes, der skal have et ID. Og når man har snakket med leverandøren, bliver der oprette en indkøbsordre (som så skal have det omtalte ID). Er det rigtig opfattet?
1. Kan der være flere indkøbslister af gangen eller kun en? 2. Hvis flere, bliver de så nødvendigvis til ordre i samme rækkefølge, som de blev til lister? 3. Kan en liste bliver til flere forskellige ordre? 4. Er det kun når man snakker med lev at man til sidst skal kunne oplyse et ordreID til dem, så de har en refference af en slags?
Løsninger afhængig af svar på tidligere: Som coderdk forslog, med et flag i tabellen, som fortæller at det er en ordre eller liste.
Arbejde med to ID'er. Et listeID og ordreID. På ordren vil man så kunne se hvilken listeID, den er lavet ud fra.
Knap som viser forventet ID (men det er ikke nødvendigvis det ID som bliver tildelt).
Funktionalitet som gør, at når man begynder på at lave en liste til en ordre (ringer til lev), bliver listen til en ordre automatisk, også modificere/redigere man ordren mens man snakker med lev.
Dette er kun et par af de senarier jeg kan se, men de afhænger af arbejdsmetoden. Andre arbejdsrutiner vil resultere i andre løsninger.
Nej det var jeg ikke klar over da jeg for det meste benytter Ms-Sql og coder i vb/c# ligger det mere lige for at benytte den, men tak for oplysningen ;o)
SELECT IDENT_CURRENT('tabelnavn') goer noget helt andet end de andre
@@IDENTITY er nok den mest almindelige, men det er primaert fordi at den ogsaa virker i Access, Sybase og aeldre versioner af MS SQLServer, men er man paa en rimelig ny MS SQLServer (2000 eller 2005) er SCOPE_IDENTY() med stor sandsynlighed hvad man vil foretraekke (forskellen paa SCOPE_IDENTY() og @@IDENTITY er meget lille, men er der forskel vil man helst have SCOPE_IDENTY())
bruger selv ofte @@IDENTITY men SQLServer 6.5 og 7.0 er ved at vaere lidt sjaeldne ...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.