Results 1 to 5 of 5

Thread: restricted names in Access met Firedac

  1. #1
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    393

    restricted names in Access met Firedac

    Hi,


    Bij het updaten van een specifieke tabel in een Access database via een constructie fdconnection=> fdquery => datasetprovider => clientdataset=> ApplyUpdates gaat er iets mis: Het veranderen van velden in een bestaand record gaat prima maar het toevoegen van een nieuw record geeft een foutmelding.

    Het blijkt uiteindelijk te liggen aan het gebruik van oa. de veldnaam "container". Zolang de updates in de query niet betrekking hebben op het veld container (in dit geval) is gaat het updaten goed.
    In Access is container een "reserved term" die moet worden omgeven met vierkante haken of quotes. Die zijn in een losse query (fdCommand oid) makkelijk toe te voegen maar in de automatisch gegenereerde query via ApplyUpdates werkt dit niet

    Weet iemand of er een manier is om dit te tackelen? Is er iets van een instelling voor een lijstje "deze velden escapen" , of "alle veldnamen omgeven met quotes" oid?
    of is bv. de gegenereerde sql-tekst af te vangen en te aan te passen voordat die wordt uitgevoerd?

    Het makkelijkste is natuurlijk dit soort veldnamen gewoon te vermijden maar het gaat om losse externe databases waarin de namen niet zomaar kunnen worden aangepast.

    groet, Willem

    [edit] .. Ik dacht dat dit een Firedac dingetje was ( ben ik een beetje nieuw in) maar het ligt aan clientdataset. Ook in dbGo (ADO) gaat het om dezelfde reden mis.
    desalniettemin zou een oplossing wel leuk zijn.
    Last edited by Willem; 11-Jan-21 at 14:04.

  2. #2
    Is dit misschien iets?
    FireDAC.Stan.Option.TFDFormatOptions.QuoteIdentifi ers

    Ik gebruik (nog) geen Firedac, dus heb het niet getest.

  3. #3
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    393
    Luigi Dank! Dit werkt inderdaad!.

    Uiteindelijk heeft het toch niet (direct) te maken met beperkingen van de tClientdataset maar met die van de brondataset. Ik heb voor het werken via een AdoConnectie nog geen oplossing gevonden, een Clientdataset weigert onder Ado een applyupdates als er een reserverd term wordt gebruikt.

    Ik was (ook) nog niet heel diep in Firedac gedoken en ging uit van een functionaliteit vergelijkbaar met dbGO. De nadruk lag vooral op het het updaten van een bestaande applicatie naar een model met clientdatasets. Bij het exploreren van de opties van Firedac bekruipt me het gevoel dat een deel van de functionalteit van een Clientdataset al in Firedac zit en nog wel wat meer.
    Genoeg om van voorzichtig pootjebaden over te gaan tot een eerste zwempoging.
    Nogmaals dank!

  4. #4
    Probeer eens om `ResolveToDataSet`op True te zetten in de DataSetProvider. Volgens mij zorgt dat ervoor dat de ADODataset de update doet, i.p.v. dat de provider zelf een update statement genereert.
    1+1=b

  5. #5
    Senior Member
    Join Date
    Mar 2002
    Location
    Edam
    Posts
    393
    @Goleztrol: helaas, dat werkt (bij mij) ook onder dbGO niet.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •