Jump to content
  • 0

Nieuw record Hoogste ID +1 Direct uit database niet dataset


Dynare

Question

Posted

Zoals de titel al zegt. is dit mogelijk?

 

Ik ben druk bezig geweest hiermee maar ben er nog niet helemaal uit. jullie hebben mij vorige keer geholpe met Hoogste ID + 1 met

x relatie en een berekening.

Alleen werkt dat met een dataset en ik wil dat die direct uit de database haalt.

 

Toen heb ik gekeken naar SQl uitvoeren dat werkte wel direct op de database allen werkt het dan weer neit van de iPad af.

 

Weet iemand een oplossing?

16 answers to this question

Recommended Posts

  • 0
Posted

Ik zou hem vast "klaar zetten" in een global bij het aanmaken van een record. Bij het aanmaken van een nieuwe kan hij dit nummer dan gelijk in het veld plaatsen om hem vervolgens weer op te hogen.

 

Bedoelde je dit?

 

groet,

  • 0
Posted

Misschien een optie:

 

Aanmaken nieuw venster,

Laat alle records zien

Bekijken hoogste nummer

Opslaan in een $$variabele of globaal veld

Venster sluiten, je komt dan weer in het oorspronkelijke venster met de gevonden set

 

Zoiets?

  • 0
Posted

@ ari

volgens mij heb ik dat al geprobeert.bedoel je een x relatie en dan op het ID veld berekening Max + 1 ?

 

@superwimmie

Dit zou ik wel kunnen proberen. heb alleen even beginnetje nodig waar moet ik beginnen?

 

@the_ies

Ik begrijp niet helemaal wat je bedoelt. zou je anders kunnen uitleggen?

 

 

Allemaal alvast bedankt voor jullie hulp. :)

  • 0
Posted

Wat ik bedoel:

 

maak een script die het volgende doet:

 

new record

vul veld record ID met de inhoud van global last recordID

vul veld globals record ID met inhoud record ID +1

 

Zo staat het nieuwe nummer al klaar bij het aanmaken van de volgende

 

Snappie?

  • 0
Posted

Ik snap deels wat je bedoelt

 

maar zoals jij het zegt. haalt die dat direct de gegevens van veld ID aan de MySQl databas of haalt die het uit de data set van de MySQl database.

 

Want zodra ik er met meerdere mensen vanaf Ipad records ga aanmaken gaat het fout dan krijg je meerdere keren records met hetzelfde id

  • 0
Posted

Met auto increment Pakt die niet automatisch het hoogste nummer bijvoorbeeld

je hebt:

1, 2, 3, 4, 5, 6, 7,

 

Je verandert bijvoorbeeld 7 in 10 dat gaat auto increment gewoon verder met tellen bij 8 en niet 10

  • 0
Posted

Je laat best de auto incremental over aan FileMaker en plaatst de ID capture afzonderlijk.

 

Op die manier kun je testen of er ergens een missing number is, dus niet alleen "het laatste" of "het hoogste".

 

Bij het aanmaken van een nieuw record test je eerst of er een missing number is in de data range, en dan neem je eerst dat nummer.

 

Is er geen missing nummer, dan pas neem je het aanwezige hoogste + 1.

 

Het geheel kan gemakkelijk in 1 script gegoten worden.

  • 0
Posted

Je bepaalt de begin range en de end range, die waarde zet je elk in een variable.

 

Dan loop je door al de records en isoleert de missing nummers. Dat gaat gewoon door het parrallel laten meelopen van een counter.

 

De missing numbers zet je in een globaal veld of in een variable, afhankelijk hoe je verder wilt werken.

 

Wil je zelf bepalen welk het volgende nummer is, kies je eentje uit de lijst om het volgende record aan te maken.

 

Kies je voor "het eerste missing", laat je FM het eerste van de lijst nemen om het volgende record aan te maken.

 

Zijn er geen missing numbers, laat je FM het laatste in de variable nemen + 1 om het volgende record aan te maken.

 

Het dynamische aan dit systeem is dat je zelf een reeks kunt instellen.

 

Stel dat 100000+ records hebt en je weet dat er in de reeks van 99500 tot 100000 missing nummers zijn. Dan laat je het systeem gewoon zoeken in de reeks 99500 tot 100000.

 

Om dat mogelijk te maken gebruik je een Custom Function die de nummers in een reeks gaat plaatsen.

Een resultaat in de aard van: 12, 14, 20 to 35, 38, 50 tot 68 etc...

Daarmee krijg je een visual op de nummers die in gebruik zijn en kun je de zoekreeks bepalen.

Dat scheelt dan weer enorm in zoektijd.

FileMaker hoeft niet doorheen 100000+ records te lopen, een beperkte reeks is voldoende, en die stel je zelf in.

  • 0
Posted

Een voorbeeld dan maar.

 

Geef wel een waarde in dicht tegen een veelvoud van 100000, zoals 399990, of het geheel is weg voor een half uur of meer.

Het is gemaakt voor kleine reeksen. Als je een grote reeks ingeeft zal het ook wel werken, maar het vraagt meer tijd.

 

Of pas de vermenigvuldigings factor aan in veld zc_checkStartingRange_cn.

MissingserialfinderTest.fp7

  • 0
Posted

Ik gebruik voor het nummer van bv. fakturen een aparte tabel met maar 1 veld => het laatst gegeven faktuurnummer.

Wanneer er een nieuw record wordt aangemaakt, verhoog ik deze waarde met 1 en plak deze in het echte record.

Moet ik een een reeks verhogen (bv van 2010... naar 2011....) dan pas ik dit veld aan.

Dit heeft als voordeel dat filemaker niet een hele reeks records hoeft door te rekenen of een foundset opnieuw moet worden terug gezet. Je vindt hiermee geen overgeslagen nummers terug. Verder moet je wel zorgen dat de scripstappen ook gelijk de waarde opslaat (dus niet een record actief houden) anders kan dit problemen geven voor een 2de gebruiker. Het systeem is ook niet helemaal waterdicht als er heel veel nummers worden gevenen in een korte tijd zal deze functie niet waterdicht zijn.

Met globaalvelden vindt ik het altijd gevaarlijk dat hier voor elke gebruiker een andere waarde in kan staan.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...