Jump to content
  • 0

Dupliceren en importeren van records


Luc De Groote

Question

Posted

Hallo,

 

Nog maar eens een vraag van een amateur:

 

Ik heb een database met gerelateerde records. Dat laatste doet wellicht (voorlopig) weinig terzake voor deze vraag.

Ik vereenvoudig een beetje voor het gemak van de vraagstelling: Soms gebeurt het dat de gegevens in één record identiek zijn aan die in een (nieuw aan te maken) ander record. Daarom wil ik het record dupliceren. Tot daar geen probleem.

 

Omdat dezelfde toepassing door meerdere mensen offline gebruikt wordt, moeten de gegevens nu en dan geïmporteerd worden.

Omdat de primaire sleutel (een combinatie van gebruikersnaam en record ID) van de geïmporteerde bestanden niet mag veranderen en er bij het importeren dus geen nieuwe primaire sleutel mag aangemaakt worden heb ik voor de aanmaak van die sleutel aangevinkt dat die niet mag veranderen als er al een waarde in dat veld staat.

 

En daar zit ik nu in een pat-stelling: Ik kan niet dupliceren omdat de primaire sleutel niet verandert en die sleutel mag niet veranderen in principe omdat ik anders bij het importeren nieuwe sleutels aanmaak en het verband met het offline bestand verloren gaat.

 

Iemand een suggestie?

5 answers to this question

Recommended Posts

  • 0
Posted

Meer dan 100 slimme en heel slimme mensen hebben mijn vraag bekeken en geen suggesties; ik dacht "mijn vraag zal dus wel niet duidelijk zijn". Daarom wou ik een voorbeeldbestandje maken om de vraag te illustreren. Door dat te doen kom ik nu tot de vaststelling dat de primaire sleutel van het te importeren bestand integraal geïmporteerd wordt en er helemaal geen nieuwe sleutel wordt aangemaakt (wat eigenlijk wel raar is?). Blijkbaar was ik dus té voorzichtig door te stellen dat mijn sleutel niet mocht veranderd worden als er al een waarde aanwezig was. Mijn vraag was dus een non-vraag maar alleen al door ze te stellen hebben jullie mij dus het antwoord gegeven ... Hoe niet antwoorden, ook een antwoord kan zijn dus ...

 

Volgende probleem; hoe kan ik mijn gerelateerde records mee dupliceren? Ik vond al iets op Clarify maar het is niet erg duidelijk. Ga eerst zelf een beetje foefelen vooraleer ik opnieuw een domme vraag stel :-)

  • 0
Posted

Volgende probleem; hoe kan ik mijn gerelateerde records mee dupliceren?

 

Niet zo eenvoudig maar wel doenbaar.

 

We gebruiken een techniek die steunt op indirection en de Set Field by Name functie.

Het is dus enkel bruikbaar vanaf FM 10.

 

Je hebt een soort van Utility TO nodig om de linken naar alle mogelijke onderliggende TOs bij te houden en een globaal veld om alle veldnamen bij te houden van alle velden de gedupliceerd moeten worden in de volledige hierarchy.

We kunnen dus verschillende relaties diep gaan.

 

Dan ga je het hele process scripten.

Eerst breng je de relaties in kaart en drop de waardes in variables.

Die pik je op aan het einde van het script als multi parameter.

 

Het tweede script gebruikt de parameters om in elke opgevangen TO de juiste data te droppen.

 

Het is dus zaak om, als je multi-tier moet werken, alle onderliggende relaties in de juiste volgorde te bepalen en bij te houden.

Je data model en database model zal je die informatie zonder problemen geven/laten zien.

  • 0
Posted

Sorry, ik twijfel er niet aan dat je post zeker en vast goed bedoeld is maar bovenstaande is een uitleg waar een beginner totaal geen boodschap aan heeft... het staat vol onverstaanbare afkortingen, gebruikt uitdrukkingen zonder ze uit te leggen enz... en zegt eigenlijk alleen dat het hééél moeilijk is.

Intussen heb ik zelf na lang zoeken een oplossing gevonden die ik gepost heb op het advanced forum. Die werkt in het voorbeeld en ik probeer ze nu ook te laten werken in mijn toepassing; zonder succes voorlopig :cry: wellicht omdat mijn primaire sleutel berekend wordt en daardoor niet wordt aangepast.

 

(Nu ben ik zelf onverstaanbaar bezig doordat ik in één link over een andere praat :oops: )

  • 0
Posted
wellicht omdat mijn primaire sleutel berekend wordt en daardoor niet wordt aangepast.

 

 

Het werkt niet omdat je juist je primary key wilt veranderen/aanpassen.

Je dupliceert een record met de onderliggende tier, maar je moet je primary key niet meenemen.

Laat FM een primary key aanmaken.

 

In je voorbeeld file loop je door een aantal relaties warbij je de loop handmatig moet aanmaken.

Wat als er een tier bijkomt?

 

Laat FM door de relaties loopen en de tiers bijhouden.

Als je er eentje bijmaakt zal dat ontdekt worden en meegenomen worden in de lijst.

 

Het tweede script loopt de aangemaakte lijst omgekeerd af en maakt de nodige records aan, terwijl de relatie automatisch wordt aangemaakt.

 

Het geheel werkt als een pivot table, maar dan voor het aanmaken van records.

 

En ik zie geen enkele vreemde afkorting noch uitdrukking.

Allemaal normale database definities.

  • 0
Posted

Jean, bedankt voor je reactie. Om het allemaal wat eenvoudiger te maken; kunnen we deze thread verder zetten via mijn post op het advanced forum? Nu zitten we te paard op 2 verschillende posts en niemand kan wellicht nog volgen. Zie ik je daar?

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...